1 22013-07-15 Steve Slaven <bpk@hoopajoo.net> 3 * version bumps 4 * pull from kalev 5 * debian file updates 6 72013-07-13 Gustav Hållberg <gustav@gmail.com> 8 * stop using bzero() and check a few return values 9 102013-07-10 Kalev Lember <kalevlember@gmail.com> 11 * build: Error out if curses libraries weren't found 12 * README: Update the link to MUME 13 * wrap_print: Fix an endless loop with 0-length strings 14 152013-03-25 Kalev Lember <kalevlember@gmail.com> 16 * Enable TCP keep-alive 17 182011-10-01 Kalev Lember <kalevlember@gmail.com> 19 * Use AC_SEARCH_LIBS for libdl 20 212009-09-01 Steve Slaven <bpk@hoopajoo.net> 22 * bump 23 242009-09-01 Kalev Lember <kalev@smartlink.ee> 25 * Match prompts longer than terminal width 26 * plugtest.c: fix segmentation fault at load time 27 * Create empty ChangeLog if we build from git tree 28 292009-04-30 Steve Slaven <bpk@hoopajoo.net> 30 * Version bump 31 322009-04-22 Steve Slaven <bpk@hoopajoo.net> 33 * Changed to gpl2+ 34 352009-04-21 Steve Slaven <bpk@hoopajoo.net> 36 * Update license to gpl2+ 37 382009-04-20 Kalev Lember <kalev@smartlink.ee> 39 * Symlink powwow-movieplay to powwow-movie2ascii. 40 * Rename muc to powwow-muc. 41 * Rename movie_play to powwow-movieplay. 42 * Move "follow" and "catrw" to noinst_PROGRAMS. 43 442009-04-14 Steve Slaven <bpk@hoopajoo.net> 45 * Bump 46 * Include powwow.6.utf-8 in the dist 47 * version bump 48 492009-04-11 Steve Slaven <bpk@hoopajoo.net> 50 * Updated rcs type for mkdist 51 * This is the pre-rcs history, appended to the Changelog when 52 autogenerated 53 * This is autogenerated 54 552009-04-11 Kalev Lember <kalev@smartlink.ee> 56 * cmd.c: Fix a small memory leak in ptrdup2. 57 582009-04-08 Kalev Lember <kalev@smartlink.ee> 59 * Rename movie.c -> movie_play.c 60 * Add a configure option to select plugin directory. 61 * configure.in: Display summary at the end of configure run. 62 * cmd2.c: Move aliases/actions back to default group if it was 63 specified as '*'. 64 * Rename ChangeLog.old -> ChangeLog. 65 * Add more files to .gitignore. 66 672009-04-08 Jahara <nschimme@gmail.com> 68 * cmd2.c: Fixed setting alias/action groups back to default. 69 702009-03-25 Kalev Lember <kalev@smartlink.ee> 71 * Remove autogenerated files. 72 * autogen.sh: New script to regenerate autotools files. 73 * powwow.doc: Update IAC GA related documentation. 74 752009-01-17 Gustav Hållberg <gustav@gmail.com> 76 * fixed minor bug when running out of memory, introduced by 77 0bae10b19a62e285746e2a4aad963928018d1a53 78 * properly handle when tty writes block; fixes possible lock-up 79 introduced by 277a06dbb45f4f249bb3f09d524ae064c842b7c5 80 * bugfixed #capture together with multibyte output locales 81 such as UTF-8 82 * semi-properly handle IACs in MPI messages 83 * removed unused variable 84 * added #addstatic command 85 * added .gitignore 86 * cleaned up #option code and added '#option list' 87 * fixed formatting errors in '#help' 88 * support different man page encodings 89 * make --enable-bsd default on OS X (darwin) hosts 90 * support ./configure --disable-FEATURE 91 * minor typo fixes 92 * bugfixes for characters read from tty with high bit set 93 * disallow #rebind of key sequence which is the prefix of 94 another sequence 95 * fixed memory leak caused by 'ptr' variables not getting their 96 "signature" set 97 * set better $TITLE when viewing help texts 98 * cleaned up the man page a bit 99 * corrected spelling of Mattias Engdegård's last name 100 * bugfixed error message for '#action <some-unknown-action>' 101 * fixed tty_raw_write to take a size_t length instead of int 102 * manually buffer data written to tty with USE_LOCALE; this 103 fixes buffering problems for some platforms 104 * when compiling with GCC, use attribute((format, (printf, ...)) 105 for tty_printf 106 * fixed problem when a tcp packet ends with an unterminated 107 escape code 108 * fixed some compilation warnings 109 * renamed _cmd_init() to initialize_cmd() and added a function 110 prototype for it 111 * changed file encoding to utf-8 112 1132008-01-09 Steve Slaven <bpk@hoopajoo.net> 114 * More version bumps 115 * Version number bump 116 1172007-10-10 Steve Slaven <bpk@hoopajoo.net> 118 * Switched to using pointers to save the last space because 119 counters could be off if there were ansi sequences 120 1212007-10-09 Steve Slaven <bpk@hoopajoo.net> 122 * Version isn't a valid keyword 123 * Fix debian version numbers 124 * Version bump 125 * This should change the option +wrap to do word wrapping 126 instead of just line wrapping 127 * Don't try and load non-.so files in cmd_module 128 1292007-03-08 Steve Slaven <bpk@hoopajoo.net> 130 * This should again fix the double-free bug that was once fixed 131 in perlwow 132 1332006-12-07 Steve Slaven <bpk@hoopajoo.net> 134 * Fixed version numbers 135 1362006-11-08 Steve Slaven <bpk@hoopajoo.net> 137 * This fixed #bind and #rebind problems, patch from kalev lember 138 1392006-10-20 Steve Slaven <bpk@hoopajoo.net> 140 * More checks for building in cygwin 141 1422006-03-24 Steve Slaven <bpk@hoopajoo.net> 143 * Removed malloc.h since it's obsolete, fixed follow.c to not 144 use tty_read_fd since it looks like a copy-paste job that 145 didn't get fixed and causes brokenness on bsd 146 * Fixed maintainer line 147 1482006-02-06 Steve Slaven <bpk@hoopajoo.net> 149 * Updated debian build, bumped version 150 1512006-02-02 Steve Slaven <bpk@hoopajoo.net> 152 * Fixed up copyright symbols and display (Dain) 153 * Fixes crash if non-latin-1 character is entered before 154 connecting to a server (Dain) 155 1562006-01-31 Steve Slaven <bpk@hoopajoo.net> 157 * Fixes bugged #var $(expression). bug #1: It was possible to 158 create variables with illegal names. bug #2: Expressions like 159 "-30" or "+5" were incorrectly interpretted as named variables 160 which were then completely inaccessible. bug #3: Deletion of 161 existing named variable via #var $(expression)= caused crash. 162 (pointer to var-node was not set) 163 * Better handling of line continuation (Elestir) 164 * 1. Allows empty-line matching using regexp. E.g.: gagging of 165 all empty lines #action %empty ^$= 166 * Fixes operator . (dot) which didn't check for valid index 167 range. (Elestir) 168 * Make speedwalk execute aliases if defined instead of just 169 sending directions (Elestir) 170 * Allow configuring the group delimiter to any arbitrary string 171 * A patch that fixes a problem with not restoring the fcntl 172 flags for stdout before running a #! command. 173 1742005-11-22 Steve Slaven <bpk@hoopajoo.net> 175 * Fix for segfault when viewing a single alias from Kalev Lember 176 <kalev@smartlink.ee> 177 1782005-11-13 Steve Slaven <bpk@hoopajoo.net> 179 * This is the new config for mkdist 180 * These are autogenerated files and don't need to be tracked 181 1822005-11-11 Steve Slaven <bpk@hoopajoo.net> 183 * Updated news in preparation for release 184 1852005-10-28 Steve Slaven <bpk@hoopajoo.net> 186 * Added arch and maintainer to debian files 187 * Added #speedwalk to documentation 188 * Added #speedwalk command for using speedwalks even if you have 189 opt_speedwalk set to off 190 1912005-10-27 Steve Slaven <bpk@hoopajoo.net> 192 * Updated where to send patches/bug reports in man page 193 * Updated version numbers, added COPYING file to shared dist to 194 that #help copyright works 195 * This fixes a tiny memory leak caused by not freeing the copy 196 of a variable if used in a comparison on the left side, 197 valgrind output: 198 1992005-10-21 Steve Slaven <bpk@hoopajoo.net> 200 * Added some casts because byte is unsigned char and some 201 functions in main wanted to have signed chars, this was the 202 previous behaviour but the compiler spit out warnings, now it 203 shouldn't anymore. 204 2052005-09-16 Steve Slaven <bpk@hoopajoo.net> 206 * Fix warnings during muc compile 207 2082005-09-13 Steve Slaven <bpk@hoopajoo.net> 209 * Updated news and some debian control files 210 2112005-08-30 Steve Slaven <bpk@hoopajoo.net> 212 * Fixed initializing default completions using new command 213 structures 214 2152005-06-10 Steve Slaven <bpk@hoopajoo.net> 216 * Added #module documentation 217 2182005-06-03 Steve Slaven <bpk@hoopajoo.net> 219 * Applied patch from Michael Sterrett <mr_bones_@gentoo.org> 220 that fixes the code that locates the copyright file 221 2222005-04-05 Steve Slaven <bpk@hoopajoo.net> 223 * Changed some contact info to bpk@hoopajoo.net for bug reports 224 * Added documentation of the #group command and line 225 continuation 226 * Added line-continuation support to the #ex command 227 2282005-04-04 Steve Slaven <bpk@hoopajoo.net> 229 * Updated build-process information and updated where bugs and 230 patches should be sent to 231 2322005-03-22 Steve Slaven <bpk@hoopajoo.net> 233 * Updated news 234 * Added 1.2.8 news, fixed but in upcase/downcase word (Dain) 235 2362005-03-21 Steve Slaven <bpk@hoopajoo.net> 237 * Updated debian version, make #module loaded objects export 238 their symbols globally (needed to allow binary xs modules in 239 perl to get to each others symbols) 240 * A rough overview of module support 241 * use tty_printf since printf will not work with locales 242 * Install powwow.doc and powwow.help in $pkgdatadir/ and also 243 set POWWOW_DIR to match so that online help should be found 244 after a "make install" 245 * Added help on #module 246 * Moved #module before #movie 247 * Wide character (locale) support from Dain, changed output of 248 the compiled options line since there are more compile time 249 options now 250 * Internally renamed some option flags to match their #opt 251 counterparts: echo_int => opt_info echo_key => opt_keyecho 252 echo_ext => opt_echo 253 * Convert all `' to "" as per the powwow-1.2.6-dain patch. Note 254 I did not apply the patch since 1.2.7 has some differences to 255 1.2.5 with regard to command handling and things, so I'm 256 applying the diff parts by hand mostly 257 * Don't include dlfcn.h if no libdl 258 * Check for libdl 259 * Do not include #module support if there is no libdl 260 2612005-03-13 Steve Slaven <bpk@hoopajoo.net> 262 * Updated to include the debian build files in the make dist, 263 also regenerated some of teh automake/conf stuff 264 2652005-03-12 Steve Slaven <bpk@hoopajoo.net> 266 * Made #module print messages prefixed with #module instead 267 of #lib, also display the path to the library that was 268 loaded so that if testing new libraries you can tell which 269 one was found :p 270 * Changed #module to not require the .so extension, and added 271 some checks for _GNU_SOURCE in ptr.h so that modules compiled 272 with GNU externsions will work with powwow.h (like perl) 273 * Changed the #module command to handle searching multiple 274 (currently compiled in) library paths, and remove the 275 requirement for the .so part of the filename so that in future 276 versions we can support .dll under cygwin 277 * Initial revision 278 * New repository initialized by cvs2svn. 279 280Changes from 1.2.4 to 1.2.5 (Massimiliano Ghilardi, ...) 21 Jan 2002 281 * Added append-mode to #capture: use #capture >file-name 282 * Cleaned #spawned commands interface: text they print on 283 standard output *MUST* terminate with a newline ('\n') 284 in order for powwow to execute it. 285 * Fixed missing #include <time.h> in main.h. 286 * Fixed broken matching of #mark patterns starting with $ 287 * Added the following user-contributed patches: 288 * Put also 1-char lines into history; 289 * Do not capture/movie data coming from spawned commands; 290 * Fixed a bug in command parser. 291 292Changes from 1.2.3 to 1.2.4 (Massimiliano Ghilardi) 24 May 2000 293 * Added support for IAC GA as end-of-prompt marker. 294 * Added #request [prompt][editor][all] 295 * Fixed missing/slow prompt redrawing under some circumstances 296 if #isprompt <number> was used. 297 298Changes from 1.2.2 to 1.2.3 (Massimiliano Ghilardi) 18 Jan 2000 299 * Fixed `#spawn' command that was completely screwed up. 300 Also fixed CTRL-C not to kill spawned commands. 301 * Sending/receiving data to/from spawned commands erased the prompt 302 instead of reprinting it. Fixed. 303 (If you don't like powwow to show the prompt before executing 304 lines from spawned commands, set #option +compact) 305 306Changes from 1.2.1 to 1.2.2 (Massimiliano Ghilardi) 10 May 1999 307 * Fixed `#delim custom' to accept whatever character as delimiters. 308 Previously stopped before the first word-delimiting char (argh!) 309 * Fixed screen corruption when doing some editing functions 310 (&del-word-right, &del-word-left, &complete-word, &complete-line, 311 parentheses flashing) while data comes from the MUD. 312 * Fixed a line redrawing bug when inserting chars on terminals 313 with VT100-like wrapglitch. 314 * Fixed SEGFAULT on #send, #emulate, #exe of a numeric expression. 315 * Fixed stupid SEGFAULT when cancelling an editing session. 316 * Fixed sending/receiving latin-1 '\377' (ASCII char 255) as IAC IAC 317 to conform telnet protocol, both directly and inside MPI messages. 318 * Fixed matching #actions, #prompts and #marks on MUD data splitted 319 into multiple fragments. 320 * Fixed line length calculation when receiving '\r' in the middle 321 of a line. 322 * Fixed extra prompt redrawing in #option +compact mode. 323 * Added #option sendsize and #option autoclear. 324 Changed default not to send window size upon connecting. 325 (if the MUD asks it, the window size is sent anyway) 326 Use #option +sendsize to automatically send it when you connect. 327 * Added command #rawsend. 328 * Removed bits of ANSI code giving problems 329 with really picky non-ANSI compilers 330 331Changes from 1.2.0 to 1.2.1 (Massimiliano Ghilardi) 20 Nov 1998 332 * Fixed a typo in Makefile. 333 * Reversed order of saved #history lines. 334 * Fixed out-of-bound array accesses in tcp_find() and tcp_show() 335 which could give SEGFAULT on #connect, #snoop and #zap. 336 * Fixed buggy loop in saving #history in definition file that could 337 create a huge temporary file, filling the filesystem. 338 * Fixed sporadic SEGFAULT when hitting backspace and some other 339 editing keys. 340 * Math operator `?' could freeze due to buggy code. 341 Systems providing GNU memmem() didn't experience the problem 342 as it was used instead of my replacement code. 343 * Enhanced support for terminals with VT100-like wrapglitch: 344 on them, the rightmost character of every line is used too. 345 * Fixed wrapping in #printing strings containing ASCII chars > 127 346 when #option wrap is on. 347 * Fixed incorrect drawing of prompt and command line under some 348 circumstances. 349 * Fixed wrong wrapping of lines immediately after the prompt 350 in #option +wrap mode. 351 * Removed extra newlines sent after each line in `#send <filename' 352 and `send !command'. 353 * Fixed a few off-by-one errors causing corruption in #movie/#capture 354 and (reprint) buffers. 355 * Powwow now discards all \r received immediately before or after \n, 356 to avoid troubles when strange data comes just before the prompt. 357 * Changed MPI key to `unsigned int' because MUME uses a 32 bit 358 unsigned value for it. 359 * Cleaned up remote file editing not to leave stale files in /tmp. 360 * Cleaned up multiple connections support: 361 Fixed spurious `#too many open connections' errors. 362 Fixed prompt drawing glitches when getting data from subsidiary 363 connections. 364 365Changes from 1.1.7 to 1.2.0 (Massimiliano Ghilardi) 05 Oct 1998 366 * Copyright change. Powwow is now GPL-ed. 367 * Version number bump. I hope there aren't many bugs left. 368 If you are coming from 1.0.x versions, read this file and powwow.doc 369 carefully, many things have changed! 370 * Fixed double-newline printing after each line if #option +wrap 371 was set. 372 * Suppressed useless reprinting of files sent back to MUD 373 using MUME remote editing protocol. 374 * Updated a few details in docs. 375 * Some old compilers choked on bits of ANSI code. Fixed. 376 * Fixed extra newline after prompt in #movie and #capture 377 when #setvar buffer is not zero. 378 * Fixed extra \r at beginning of a line under rare circumstances. 379 * #delim now unescapes the custom delimeters. 380 * Added missing close() when remote host closes connection. 381 * Rewrote the code to merge lines received in two (or more) fragments. 382 * Added `#help warranty' and `#help copyright' to conform GPL :-/ 383 384Changes from 1.1.6 to 1.1.7 (Massimiliano Ghilardi) 15 Sep 1998 385 * Changed meaning and effect of #prompt and #isprompt. 386 If you used them, re-read their docs in powwow.doc! 387 * Alias names containing spaces are now rejected too. 388 Relaxed rules a little, unbalanced () {} or "" 389 now just print a warning instead of causing an error. 390 * Added #option reprint. 391 * Old #prompts were not removed on #load. fixed. 392 * Fixed SEGFAULT when chaining very long strings: 393 #("foo..." + "bar...") 394 * Fixed small compiling problems on some platforms. 395 * Fixed an off-by-one error in math operator >: 396 * Fixed math operator `=' bug on copying empty strings. 397 * Fixed a crashy bug in #reset var. 398 * Fixed some quirks in unescaping strings: 399 ending backslashes caused SEGFAULT, 400 sequences like \\\``` were unescaped incorrectly. 401 * Fixed incorrect code in #mark and #action that 402 mismatched patterns containing two or more wildcards. 403 404Changes from 1.1.5 to 1.1.6 (Massimiliano Ghilardi) 03 Sep 1998 405 * Added circular backbuffer for #capture and #movie. 406 Can be enabled/disabled/resized with #setvar buffer. 407 * Sanitized aliases: powwow now rejects alias names containing 408 unbalanced special chars ""(){} . Example: 409 #alias (=#print is illegal, while 410 #alias "("=#print is ok. 411 #alias {}=#print is ok, 412 #alias \\{=#print is ok too as it matches \{ and _not_ { 413 * Removed a redundant alias unescaping. If #alias foo=\\bar 414 then `foo' now sends `\bar' instead of `bar'. 415 * Fixed a compatibility problem when reading #binds of new savefiles 416 using old versions of powwow. 417 * Fixed some problems with #var on numbered variables. 418 * Fixed #internal error, selflookup_sortednode() failed! 419 that affected 1.1.5 420 * Fixed SEGFAULT upon #exe \; (introduced in 1.1.5). 421 * When getting data from the MUD after a prompt which set #isprompt 422 the data is now printed as a separate line even if it doesn't start 423 with a newline. Helps turning things like 424 * HP:Fine>You hit the wolf's head hard. 425 into 426 * HP:Fine> 427 You hit the wolf's head hard. 428 Anyway, such data has _always_ been considered separate 429 from the prompt if it set #isprompt, i.e. #action patterns like 430 "^You hit the wolf" already worked in the above case. 431 432Changes from 1.1.4 to 1.1.5 (Massimiliano Ghilardi) 30 Aug 1998 433 * Massive code cleanup. 434 * Finished removing size limits on strings, text lines and variables. 435 * Renamed `#settimer' as `#setvar timer' and `#lines' as `#setvar lines' 436 Added `#setvar mem' to set/edit/remove length limit on text/strings. 437 * Powwow now stops command execution after any error. 438 * #key now works also with editing keys. 439 * Added #keyedit command. "#keyedit &prev-line" runs 440 the editing function `&prev-line' and so on. 441 * Added "&insert-string <string>" editing function. 442 * Added #mark ^pattern, which matches only at line start. 443 * Decreased CPU usage when/after a lot of variables, aliases or marks 444 are created. 445 * Added `*' and `*=' math operator for strings. 446 * Fixed math operators ^^=, ||= and &&= to always return 0 or 1. 447 * Fixed SEGFAULT when creating more than 100 variables. 448 (bug introduced in 1.1.0) 449 * Fixed SEGFAULT when realloc()ing very big strings. 450 * Fixed memory leaks when running out of memory. 451 * Fixed escaping/printing of nasty strings like 452 backslash + control char. 453 * Fixed some redrawing glitches on very long input lines. 454 Input lines bigger than the whole window are still not drawn 455 correctly. Same problem on prompts longer than a line. 456 * Fixed #prompts to fully work also on prompts received inside 457 a set of newline-terminated lines. 458 * Documented #prompt, #capture and #movie to work only for 459 the main MUD connection 460 461Changes from 1.1.3 to 1.1.4 (Massimiliano Ghilardi) 23 Jul 1998 462 * Renamed `movie_play' to `movie'. Will do the replay if invoked as 463 `movie_play' and will convert to ASCII if invoked as `movie2ascii' 464 * Fixed a 1.1.1 bug that could cause a lot of missed binds. 465 * Finished adding ANSI prototypes. Renamed some files and remixed 466 some code in the process. 467 * Removed -DUSE_TERMIO. If you used it, no problem. 468 If you didn't use it, you must now add -DUSE_SGTTY. 469 * Fixed a few compiling problems on OSF1 and other systems 470 with really annoying compilers. 471 * Fixed missing sig_oneshot on systems without SA_ONESHOT 472 * Fixed input of chars with high bit set (again). 473 474Changes from 1.1.2 to 1.1.3 (Massimiliano Ghilardi) 21 Jul 1998 475 * Variable names are now expressions too. This means that 476 @("foo"+"bar") is the variable @foobar. 477 * Added `just in time' substitution: ${varname} @{varname} and #{expr} 478 Not yet implemented for regexp patterns, sorry. 479 This introduces a subtle incompatibility with older versions, 480 as now also text coming from $n substitution gets unescaped. 481 Sorry again. (see powwow.doc for details). 482 * #action and #prompt did not work when using an expression 483 as pattern. Now fixed. 484 * Fixed small bug in anonymous actions. Someone still using them? 485 * powwow_help renamed powwow.help 486 * Fixed a bug in #alias: $1..$9 all contained the first word ($1) 487 * Fixed math operators . : .? :? .< .> <. >. :< :> <: >: which 488 segfaulted on empty strings (bug introduced in 1.1.0) 489 * Made SIGINT signal handler non-permanent to allow interrupting 490 system calls like connect(). Partially reverses the change in 0.9.3 491 * Undone a change Gustav made in 0.9.3: now #connect with no args 492 always lists the open connections. To open a new connection you must 493 give at least one argument, for example #connect main. 494 * Changed edit function &redraw-line not to clear prompt. 495 Use &redraw-line-noprompt to get the old behaviour. 496 * Added #movie command to record all output from the MUD 497 and local commands to a file, adding timestamps to allow replay 498 at correct speed. Also added `movie_play' standalone program 499 to actually do the replay. 500 501Changes from 1.1.1 to 1.1.2 (Massimiliano Ghilardi) 16 Jun 1998 502 * The wildcard `$' now correctly matches single words only 503 both in #actions and in #marks. 504 It was (again!) matching also multiple words like `&' 505 * Fixed up attr and noattr math operators, which broke in 1.1.0 506 * Added workaround for buggy terminals which create empty lines with 507 coloured background when using #hilite <whatever> on <colour>. 508 Must compile with -DBUG_ANSI to enable it. 509 510Changes from 1.1.0 to 1.1.1 (Massimiliano Ghilardi) 11 Jun 1998 511 * Added some changes from 1.0.1 that didn't go in 1.1.0. 512 The 1.0.x and the 1.1.x trees are indipendent... 513 * Wrote a memmem() replacement for systems that don't have it. 514 * Decreased CPU usage when receiving lots of text from the terminal 515 (for example using cut-n-paste) 516 * Continued adding ANSI prototypes. 517 518Changes from 1.0.0 to 1.1.0 (Massimiliano Ghilardi) 20 May 1998 519 * Splitted 1.0.x and 1.1.x source trees. 520 * Started adding ANSI function prototypes. 521 Old K&R compilers still work. 522 * Removed all size limits in all strings, text lines and variables. 523 Also allowed '\0' (ASCII zero) in strings. 524 It was a _huge_ task! Probably messed up all and everything. 525 * Side effect of the above: lines of arbitrary length received from 526 the MUD should now work perfectly (at least as long as you have 527 enough memory) 528 529Changes from 1.0.0 to 1.0.1 (Massimiliano Ghilardi) 18 May 1998 530 * Changed name of some files (Changelog, Hacking, Compile.how, 531 Config.demo) 532 * Fixed #capture and #record to save text from main connection only. 533 * Fixed a buffer overrun in $last_line when receiving lines longer 534 than 1024 chars. Hopefully lines up to 4095 chars will now work. 535 * Fixed message "Creating %s" when creating a new definition file. 536 * Added `catrw' standalone mini-program for splitting powwow output 537 in multiple windows (quick tutorial in powwow.doc, section #write) 538 * Added #rebindall and #rebindALL 539 540Changes from 0.9.9 to 1.0.0 (Massimiliano Ghilardi) 13 May 1998 541 * Disabled NAGLE for tcp connections (set TCP_NODELAY option) 542 which should hopefully increase performance during lossy conditions 543 (idea and code contributed by Finne Arne Gangstad) 544 * Cleaned up error handling. Powwow tries really hard to report 545 any system call error, quitting only when there is really no hope. 546 Anyway, if you get a '#system call error' message, you should 547 seriously consider quitting as soon as possible since either 548 the connection is messed up or your system is running 549 out of resources. 550 * Removed extra newline after prompt bug when in #option -compact mode, 551 introduced in 0.9.7 552 * Fixed $last_line to contain last non-empty line from the MUD. 553 * Updated config.demo with definitions for time-inside-prompt 554 and other things. 555 556Changes from 0.9.8 to 0.9.9 (Massimiliano Ghilardi) 12 May 1998 557 * Changed rx.h to regex.h in includes 558 * Fixed behaviour on prompts and lines received in multiple packets: 559 0.9.7 and 0.9.8 sometimes print garbage. 560 * Added some flush()es in the code to cope with the new 561 terminal I/O buffering. 562 563Changes from 0.9.7 to 0.9.8 (Massimiliano Ghilardi) 11 May 1998 564 * Fixed compile problems on AIX (got out of sync). 565 * Fixed a stupid bug that caused all actions to be regexp 566 (introduced in 0.9.7) 567 * Introduced a more efficient terminal I/O buffering. 568 569Changes from 0.9.6 to 0.9.7 (Massimiliano Ghilardi) 11 May 1998 570 * Increased stability when receiving extremely long lines (>1024 bytes) 571 The fix is only partial, powwow can still crash on lines slightly 572 shorter than 4096 bytes when a lot of #marks are used. 573 * Cleaned up the names of various #defines 574 In particular, USETERMIO is now USE_TERMIO and 575 TELNETBUG is now BUG_TELNET 576 * Added #option autoprint, to automatically print lines matched 577 by #actions. 578 * Added #spawn command. 579 * Added #prompt command. Just like #action, but matches both on 580 prompts and on normal text. 581 * #actions now work differently on prompts: 582 prompts are not matched immediately against #actions, 583 but only after a \n arrives from the MUD, just in case they are 584 actually normal lines received in multiple packets and not prompts. 585 586 Thanks to the this change, powwow behaves better on lines received 587 in two (or more) packets. 588 See the file powwow.doc, section `#prompt' for the gory details. 589 590Changes from 0.9.5 to 0.9.6 591 (Gustav Hållberg, Massimiliano Ghilardi) 16 Oct 1997 592 * Fixed a nasty security hole in MPI messages 593 * Fixed handling of \; at the end of a command 594 * Fixed some other problems: 595 short messages from MUD could interfere with remote editing, 596 #bind escape sequences containing \0 were incorrectly printed/saved 597 598Changes from 0.9.4 to 0.9.5 599 (Gustav Hållberg, Massimiliano Ghilardi) 18 Sep 1997 600 * Continued code cleanup 601 * Allowed aliases starting with `#' 602 * Removed #speedwalk, #info, #echo, #keyecho, #compact and #debug 603 and turned them into #options: `#option echo' and so on. 604 For compatibility, `#echo' is aliased to `#option echo' and so on. 605 * Fixed a dangerous bug making cursor jump to start of typed text 606 when receiving a line that wraps. The bug appeared in 0.9.4, 607 so blame Gustav ;) 608 * Fixed an old bug making powwow sometimes miss a bind 609 * Made the command from a bound key appear with `#hilite' setting 610 * Made a DEFAULT_HELP_DIR define in powwow.c 611 * Changed to from ' ' to ` ' in some messages 612 613Changes from 0.9.3 to 0.9.4 (Massimiliano Ghilardi) 04 Sep 1997 614 * Included all the huge changes made by Gustav Hållberg: 615 I really have no time to double-check them all. 616 If something works in 0.9.2 but is broken in 0.9.4, 617 you know who to bother :) 618 * Small esthetic changes in the source, no effects on executable 619 * Changed identifier for regexp #actions from ']' to '%' 620 621Changes from 0.9.2 to 0.9.3 (Gustav Hållberg) 11 Aug 1997 622 * Fixed so packets ending with \r*\n\r* set promptstr to "" 623 * Made all signal handlers permanent (sig_permanent) 624 * Debugged and reinstalled #option (it was commented out for some 625 obscure reason (Massimiliano: I never finished it...)), 626 allowing storage of command history and word 627 completions in the savefile. Added the 'exit' option to allow 628 powwow to autoexit when the last connection closes 629 * #echo, #info, #wrap and #debug now get saved in the savefile 630 * Made repetitive use of &complete-word and &complete-line cycle 631 through possible completions 632 * Made a memory-safe strdup (called str_dup) 633 * When starting a child viewer/editor, that process' TITLE 634 environment variable is set to something appropriate (?) 635 * Regular expressions (Extended POSIX regexp) 636 available for actions; uses GNU rx. 637 * Actions with label "" forbidden 638 * Added the #delim command to change word delimeter mode 639 * Whenever main_conn changes permanently, linemode is set to 0 and 640 promptstr to "" 641 * Fixed a crashy bug in the >: operator 642 * Fixed the notorious extra-space-on-insert bug (both 'ic' and 'im' 643 shall NOT be sent if you want to insert something) and a VT100 644 mode bug while I was feeling creative 645 * Made the local editing protocol respect prompts (i.e. they get 646 rewritten after protocol messages are shown). After texts are sent 647 back to the mud, the output buffer is flushed (no more pressing 648 ENTER after you've stopped editing!) 649 * Fixed a few bugs in #mark; pattern "&" doesn't crash anymore. 650 Patterns with consecutive wildcards never worked, so I forbade them. 651 It could be implemented, but I hardly think it's worth it 652 * Added the ANSIBUG compiler directive to fix the bug in some terms 653 that show new lines in the current output attrib (screws #mark e.g.) 654 * Made '#connect' without parameters try to open a connection 655 titled 'main' to 'hostname' (if specified) if no conns are open. 656 The initstr from #init will be used in this case 657 * Added &transpose-words, &upcase-word and &downcase-word (defaults 658 to M-t, M-u and M-l). Repetition of the latter two changes case 659 of the whole line 660 * Changed default key names to be more emacs-like (C-b, Ret etc) 661 * Made #host get written to the savefile iff *hostname != 0, and 662 if powwow is started as 'powwow filename', without any #host in 663 the file, #init is ran immediately 664 * Fixed a bug in cmd_print() that didn't cope with $0 not being set 665 * Allowed \0 to be part of a bound key's escape sequence. New format 666 for #bind allows octal \012 be part of the string representation 667 of the esc seq (chars with high bit set get saved in octal now) 668 * Made permanent variables $last_line and $prompt 669 * Made "#var" without arguments list all defined named variables 670 671Changes from 0.9.1 to 0.9.2 (Massimiliano Ghilardi) 04 Jun 1997 672 * Added #keyecho command toggle echo of bound keys. 673 Previously, this was controlled by the generic #echo command. 674 * CTRL-C can now safely interrupt blocking commands like 675 #connect and #bind. 676 * POWWOWDIR is now used correctly in all cases: 677 not only when starting powwow with a filename but also when using 678 #load, #save or #file 679 * Changed #file syntax. Now you need = before the save-file. 680 Putting = alone undefines the save-file and disables autosave 681 when you quit. 682 * Cleaned up naming conventions: 'session' means editing session 683 while 'connection' means remote host connection. 684 * Fixed handling of 8 bit chars typed from keyboard 685 * Fixed '#reset bind' which was not reloading cursor binds 686 * Fixed remote host name spelling in files generated by #save. 687 * Fixed a bug that caused powwow to crash when failing to 688 connect to a mud. 689 690Changes from 0.9.0 to 0.9.1 (Massimiliano Ghilardi) 31 Apr 1997 691 * New connections opened with #connect are set as main connection. 692 You will have to switch back manually if you need it. 693 * Cleaned up multiple connection support. Better error handling. 694 * Cleaned up TELNETBUG support. I did not use it recently, 695 and was out of sync. 696 * Enhanced #bind syntax: now you can specify control codes 697 sent by your keyboard directly from the command line. 698 As a side effect, #exe <file now works also on files created 699 with #save 700 * Added #rebind command. Changes the control codes associated 701 to a key binding without changing its name or its effect. 702 * Added #quit command. 703 704Changes from 0.8.6 to 0.9.0 (Massimiliano Ghilardi) 29 Apr 1997 705 * Added FreeBSD support in make_it (thanks to Jaako Knuutila) 706 * Cleaned up terminal interface. 707 * #save and #load now accept a filename as argument 708 * Handle SIGQUIT as SIGINT: use to stop long or infinite loops 709 * Now can switch main connection on the fly with ##<connection-name> 710 * Allow powwow #commands also on subsidiary connections 711 712Changes from 0.8.5 to 0.8.6 (Paolo Gatti, Massimiliano Ghilardi) 28 Apr 1997 713 * Finally and definitively changed the name to powwow. 714 Previously, sometimes the program was referred to as pow-wow 715 and sometimes as powwow, generating confusion. 716 * Partial port of powwow to AmigaDOS. Incomplete, will NOT compile. 717 Paolo abandoned the project, so maybe it will just never compile. 718 * Fixed a bug causing extra new-lines on screen when powwow received 719 strange data sequences like ASCII codes 10 13 720 (on DOS, new-line is 13 10, while on UN*X is 10 only) 721 * Fixed a bug in #mark not matching correctly the wildcard $ 722 * Powwow crashed #loading files containing empty lines. Fixed 723 724Changes from 0.8.4 to 0.8.5 (Massimiliano Ghilardi) 725 * Fixed a bug introduced by updating files from cancan 2.6.0b sources 726 (happened in version 0.8.3): powwow was sendind TWO new-line chars 727 instead of one immediately after every password. 728 729Changes from 0.8.3 to 0.8.4 (Massimiliano Ghilardi) 730 * Fixed (I hope definitively) an ancient bug: 731 some lines were sometimes printed twice or not printed at all. 732 It is still the bug that appeared in version 0.4... 733 The bug was almost fixed in version 0.8b but reintroduced in 0.8.3 734 735Changes from 0.8b to 0.8.3 (Massimiliano Ghilardi) 736 * Slightly changed version numbering (0.8.3 instead of 0.8c) 737 * #save and #load are now safe even in case of errors 738 (example: `disk full') 739 * hitting a #bind-ed key now echoes the corresponding command 740 only if #echo is on 741 * updated term.c (terminal handling code) and tel.c (telnet code) 742 with files from cancan 2.6.0b (yes, I shamelessly copied them) 743 No external changes anyway (unless I introduced some bugs) 744 note: beam.c NOT updated/copied 745 * 'follow' standalone mini-program added (see README.follow) 746 * #key is now explicitly stated not to support editing keys. 747 They cannot be added cleanly without rewriting the line-editing code 748 from scratch ('#key up' and '#key return' give the biggest problems) 749 and I don't have the time for that right now 750 * blink attribute added 751 * Now can use multiple attributes in #mark, #hilite, #color 752 example: #mark *An Orc*=inverse bold blue on red 753 Note: bold, blink, underline and inverse must appear BEFORE colors 754 * fixed some bugs: 755 * changed "VERSION" to "POWWOW_VERSION" in powwow.c. 756 It seems some compilers use VERSION for internal purposes... 757 * #wrap mode was discarding lines containing only escape sequences 758 (example: color codes coming from the MUD) 759 * #hilite was restoring hilight attributes after EVERY line 760 coming from the MUD 761 * self-recursive aliases were causing crash after 100 loops instead 762 of trapping error and reporting '#error: stack overflow' 763 (not always, and not on all OS). Now they are completely safe. 764 Note: they still eat 1MB of memory (10K per loop - released 765 immediately after) 766 767Changes from 0.8a to 0.8b (Massimiliano Ghilardi) 768 * hexadecimal numbers added (and in any other base) 769 can be used only from calculator, prefix is # 770 * '#write' command added 771 * fixed a bug with #nice affecting #load 772 now #load places actions/marks in memory in the same order as 773 config file, indipendently from #nice value. 774 Also, default #nice changes from 1 (top) to 0 (bottom) 775 * fixed a bug in #save that sometimes caused crashes and destroyed 776 config file 777 * now word completion (issued with TAB key) checks 778 word completion list _before_ built-in commands 779 780Changes from 0.8 to 0.8a (Massimiliano Ghilardi) 781 * remind me NEVER to work on Sunday, because I filled version 0.8 with 782 these bugs (now fixed): 783 - some debugging stuff was not deleted from official version 784 - deleting a named variable could cause a crash 785 - creating a named variable was giving a message even while reading 786 a definition file 787 - #settimer was not working due to a change in version 0.8 788 - forgot to say that #map variable was added 789 * #rand, #map and #timer variables renamed rand, map and timer 790 (removed the #) - sorry for the change but it was necessary. 791 * removed limit of 50 named variables of each kind (numeric and string) 792 now the only limit is the memory available 793 794Changes from 0.7b to 0.8 (Massimiliano Ghilardi) 795 * #mark now accepts wildcards ($ for a single word, & for a string) 796 * named variables are now supported 797 * #assign renamed #var (I never liked the name 'assign' ...) 798 also, #var can be used to delete variables from memory 799 * #nice command added. It sets/shows priority of new actions/marks 800 801Changes from 0.7a to 0.7b (Finn Arne Gangstad) 802 * make_it now also works for sunos 5.x, irix 5.x and hpux 9.x 803 804Changes from 0.7 to 0.7a (Massimiliano Ghilardi) 805 * fixed a _HUGE_ hole in security: $n in actions was matching also ; 806 (but not spaces) so robotic actions gave a chance to other players 807 to force you (*AAARGH*) 808 * startup changed: now powwow does not clear screen when executed, 809 but jumps to the end of screen (this avoids mess in the first lines 810 you get from the mud) 811 812Changes from 0.6d to 0.7 (Massimiliano Ghilardi) 813 * finally fixed the unpleasant bug of auto-wrap making confusion when 814 receiving lines that contain escape sequences 815 (the fix in 0.6d was far from satisfactory) 816 * high-intensity colours added (for the terminals that support them) 817 * #assign can be used to put the contents of a variable on input line 818 * number of global variables raised to 50, max lenght of string 819 variables raised to 512 bytes 820 * #settimer command added, '#time' variable changed into '#timer' 821 * fixed a bug: math operator >= was wrong, worked as <= 822 823Changes from 0.6c to 0.6d (Massimiliano Ghilardi) 824 * break key now is also used to stop command-parsing. Useful to stop 825 long or infinite loops without exiting from powwow. 826 * #stop command added. It disables all active delayed commands. 827 * #mark now works also with prompts (was not implemented before) 828 * fixed an ancient bug with #action not working on lines splitted into 829 multiple data packets by telnet. 830 * fixed two other ancient bugs: 831 #mark not working on auto-wrapped words 832 and auto-wrap making confusion when receiving lines that contain 833 escape sequences (only partially fixed to be honest) 834 * Now the unescaping is performed ALSO on quoted strings, when powwow 835 evaluates them. Thus there might be to update your definition file 836 if it contains escapes placed in strings. 837 838Changes from 0.6b to 0.6c (Massimiliano Ghilardi) 839 * If you have problems with #rand, random() and srandom() (typically 840 your compiler is unable to find the functions) you can define 841 NO_RANDOM at compile time. (temporary solution) 842 * Now also editing keys can be redefined 843 * #assign command added (same syntax of #print, #send and #exe) 844 * Now you can specify start and end line of a file or output of Bourne 845 shell command when using #print, #send, #exe, #emulate or #assign 846 * #debug command added (try it in test mode...) 847 * Now #echo, #info, #speedwalk and #debug also accept 'on' or 'off' 848 849Changes from 0.6 to 0.6b (Massimiliano Ghilardi) 850 * #emulate command added (same syntax of #print, #send and #exe) 851 * now also prompts can be intercepted by #actions 852 (but cannot be 'gagged') 853 * powwow can run in test-mode without being connected to a MUD 854 855Changes from 0.5 to 0.6 (Massimiliano Ghilardi) 856 * more debug work 857 * #exe, #send and #print extended to use shell commands and files 858 Also, #send replaces #read 859 * #time variable added 860 * #rand function added 861 * #connect now supports a different remote host for each connection 862 (i.e. you can now play on different MUDs with the same invocation 863 of powwow) 864 865 Ideas coming from Cancan 2.5.1c and implemented on powwow 0.6: 866 867 * output to the remote host is buffered up and sent all at once in the 868 main loop, to reduce the number of network packets. Long aliases 869 might benefit from this, as would repeated commands (#10 buy bread). 870 * #help now works on commands. A help file is needed and provided. 871 * new command: #record, records lines you type in a file 872 * source changed so path for helpfile is taken from environment 873 variable POWWOWHELP (if this variable is not defined, powwow looks 874 in current directory) 875 * to print the message of the day, must define MOTDFILE in compiling 876 with the name (and complete path) of the file containing the message 877 * Now compiles on BSD/386 as well, automatically detected by make_it 878 879Changes from 0.4 to 0.5 (Massimiliano Ghilardi) 880 * Heavy debug work, since 0.4 was an alpha version 881 (it is not a good idea to place here the huge list of bugs fixed...) 882 * added #history to list/execute commands in history 883 Note: #history commands are not placed in history... 884 * now internal commands can be abbreviated, for example #al can be used 885 istead of #alias. However, internal commands are still completed 886 using TAB 887 888Changes from Cancan 2.5.0b to powwow 0.4 (Massimiliano Ghilardi) 889 * Inline calculator, with both global and local variables, and C-like 890 syntax 891 * added commands #(), #print, #send, #exe to use inline calculator 892 * added commands #if-#else, #for and #while. 893 * added #key, #save, #load, #save, #lines, #info, #echo, #compact, 894 #net, #clock, #time 895 * added #in and #at to define/edit delayed commands 896 * #mark and all attrib-related commands now accept also the attribute 897 'none' 898 * #marks and #actions now are not automatically sorted (to sort them, 899 define SORT in compiling). #aliases and #binds instead are always 900 sorted. 901 * #aliases can be self-recursive now (it is potentially dangerous, 902 powwow will not enter a very long - but not infinite - loop) 903 * Must not escape ';' anymore to place multiple commands in #alias, 904 #action or #bind. Instead, multiple commands must be surrounded by 905 braces, { and } 906 * #action changed syntax (not need double quotes anymore, but need one 907 of > < + - = before label) See powwow.doc for details 908 Lines matched with #action are not printed on screen automatically, 909 must use a #print to echo them 910 * #gag is suppressed (not needed anymore), and #add is now a command 911 * Escaping technique changed. Now unescaping '\\\#' gives '\\#' (i.e. 912 remove one \ each time), and you can also escape \, in this way: 913 \` gives \ alone, \`` gives \` and so on. So for example, if you 914 want to place a \ at the end of an #action pattern, you must write 915 \` , to avoid escaping the = after the pattern 916 * Some bugs of Cancan fixed (small things, expecially wrapping) 917 918Changes from 2.5.0a to 2.5.0b (Finn Arne Gangstad) 919 * Fixed bug with client aborting when window was resized. 920 921Changes from 2.5.0 to 2.5.0a (Finn Arne Gangstad) 922 * Various tweaks to make it compile on most systems. 923 924Changes from 2.4.4 to 2.5.0 (Mattias Engdegård) 925 * the length of the prompt is now correctly calculated 926 even if it contains escape sequences (for muds with coloured prompt). 927 * built-in commands are always completed with tab and aren't stored in 928 the word list 929 * #hilite and #mark now accept general attributes: ansi colours and 930 bold, underline, inverse. 931 * the #action command has changed syntax; now double quotes are 932 required around the pattern, but they can be named. Actions can be 933 turned on and off. 934 * the keydefs list contains all keyboard bindings. The #bind command 935 can define new keys. 936 * the #alias, #action, #bind and #mark commands can now put a 937 definition line in the input buffer for easy editing. 938 The keys M-p and M-n are no longer used. 939 * some new files, new source module discipline with external 940 declarations only in header files. 941 * added the file `Hacking' with some advice. 942 * mapping functions cleaned up. #map now displays ssss as 4s. 943 * the definition file is tagged with a file version, to make it easier 944 to recognize older save formats. 945 * cancan now displays a motd file whose location is set at compile 946 time (see Makefile). 947 * define TELNETBUG to work around an NCSA telnet 2.2 colour bug. 948 #stdcolour can be used to set the background colour if TELNETBUG is 949 defined. 950 951Changes from 2.4.3 to 2.4.4 (David Gay) 952 * telnet window size option supported 953 954Changes from 2.4.2 to 2.4.3 955 * added term support 956 * added #hilite to hilite user entered text 957 * added #mark and #unmark to mark special keywords... 958 * changed #identify to allow it to send alias' or commands to the 959 mud when beginning/ending an editing session. 960 * changes the Makefile a bit to support termcancan 961 962Changes from 2.4.1 to 2.4.2 963 * Added multiple-session support with following # commands: 964 '#connect', '#zap', '#snoop', '##' 965 * Added numeric keypad movement, keypad sends commands 966 n,e,s,w,u,d and exits.. (not on all systems) 967 * Easier editing of actions with meta-p and meta-n (not on all systems) 968 * Changed the 'make_it' script a bit, so that it echoes the make 969 command it executes. 970 971Changes from 2.4.1 to 2.4.1b 972 * Improved modularity of source, new files cmd.c, cmd.h 973 974Changes from 2.4.0 to 2.4.1 975 * Changed & in actions to match a single word for backward 976 compatibility. &0..&9 still match multi-worded text. 977 * Now compiles on HP-UX (at least HP-UX 9.01A ) 978 * Included a 'make_it' script that automatically compiles cancan for 979 Linux, IRIX, AIX, ULTRIX, DolphinOS, SunOS and HP-UX sytems. 980 981Changes from 2.3.6 to 2.4.0 982 * Extended param substitution for & to &0..&9. 983 * Added '&&' syntax for delayed param substitution. 984 * Added '#init' command to send initialization string on connect. 985 * Added '#speedwalk' to toggle speedwalk on and off. 986 * Added '#map' with automapping. 987 * Added '#retrace' to retrace steps. 988 * Added sorting for alias and action lists, which is disabled if 989 compiled with -DNOSORT. 990 * Added compile option -DNOSHELL to remove '#!' shell escape function. 991 992Changes from Cancan 2.3.5 to 2.3.6 993 * Fixed a bug with MUME's spinning delay bars and word wrap. 994 * & can now be escaped. This allows for aliases that create aliases, 995 and other things. 996 * Added this change log (not too early) 997 * Checks the window size after being suspended, in case it was 998 changed. 999 * Lines longer than screen width because of invisible spaces and/or 1000 trailing CR:s are not unnecessarily wrapped. 1001 1002