-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathChangeLog
More file actions
162 lines (159 loc) · 9.73 KB
/
ChangeLog
File metadata and controls
162 lines (159 loc) · 9.73 KB
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
* Fixed not printing a char in the first column when a line wrapped.
* Screen no longer scrolls in scrollback.
* Hook execution problems fixed. Now run() from perl gets executed
immediately, instead of being put on the command stack. (not done yet for python)
* Return values from perl properly determine fallthrough (/hook ... = /eval 1;)
* Fixed problems with things happening or being printed out of hook's priority order.
* /hook -fL is gone, in favor of properly implemented /run and /eval. Anywhere
you previously used: /hook -fL perl -t'stuff' mystuff = do_mystuff
(where do_mystuff is a perl procedure), you can now use:
/hook -t'stuff mystuff = /run -Lperl do_mystuff
and it should behave the same as -fL
* Changed /echo to use cout. Fixes (one) ordering of output problem.
* Rearranged some variables in Session.cc to enable multi-session.
* Changes to configure.in, Makefile.in for debug/optimized builds, install depends
on all, and make perl required.
* Fixed key behavior so both old/new key handling works. (Need to move
hook.run(KEYPRESS...) to TTY.cc when conversion is complete)
* Leave scrollback when at end, don't start in scrollback mode.
* Fix hook so /gagasdf doesn't work.
* Fix /status, /echo so /status doesn't print "/status" on the status line: opt.restStr()
* Changed Window to use a list<Window*> to keep track of its children. This
fixes several segfaults.
* Fixed escaping in regexes.
* Wrote doc/Escaping to describe how it works.
* Alias module added (/alias), thanks to Kurt Hutchinson!
* Renamed samples/ -> scripts/
* Fixed bug in OptionParser when an argument had an-embedded-dash.
* OptionParser now uses = as well as -- to terminate option processing.
* We no longer trigger on incompletely received lines. We gotta get a \n before
we try to trigger on it.
* Fix segfault in previous bug fix.
* Fix SEND and COMMAND type triggers so they insert new commands at the
BEGINNING of the command stack. All other hook types insert commands at
the END of the command stack. (makes a;b;c, where a is an /alias not
mess up the order of the commands)
* Python is disabled by default, fixed python checks in configure.in.
* Implemented /hook -l <name>
* Renamed several dirt hooks to be invisible to /hook -l.
* Remove alt-t restarts dirt. Just /quit and re-run it. :)
* Rewrote Session::inputReady to deal with IAC GA prompts correctly.
* Added Kurt's additions to alias/trigger/gag and new perl modules
command/keypress.
* Fix ANSI handling to more gracefully handle invalid ANSI (Session.cc).
* Fix ANSI split over packet boundary (Session.cc).
* Fix hook crash due to /enable a hook that isn't defined: /enable blah
/hook -l blah
* Made it compile and run with gcc v3 and perl 5.6.1
* Ripped out Alias, Macro, and Action. (see /alias, /keypress, and /trig
for replacements)
* Converted keys in InputLine::keypress to KeypressHookStub (not finished)
Need KeypressHookStub to handle more than one key...
* Replaced List<> in Selectable.cc
* Fixed HistorySet::loadHistory so that it doesn't segfault if the history
file contains a long line.
* Changed the behavior of hooks: If the RHS of a hook is a mud command, it is
evaluated as a quoted expression and then added to the command stack. If
it is a /command, the match is saved so that when the RHS is executed, the
perl match variables $1...$n are available (properly) in perl.
* Removed the -f and -L options from hook/alias/command/trig/keypress since
this should now work instead:
/hook -t'stuff' mystuff = /run -Lperl stuff_function
* Fixed PerlEmbeddedInterpreter::match so that it will return the correct
value match even if there is no command given.
* Action.cc and Alias.cc removed for good.
Dirt 0.60.0
* Made file release on sourceforge.
Dirt 0.53.00 (First version after fork from mcl 0.53.00)
* Replaced all cmd_ with mclcmd_ to separate client interface from server interface.
* Added player, room hooks in ThreeKingdoms.pl
* Modified hooks.pl so that new hooks get pushed onto @Hooks and show up in /show_hooks
* Made triggers eval() the body of the argument, so things like this work:
/trigger "^Irulan attacks (.*)$" kill $1
* Rewrote config.pl to use Data::Dumper and the config file Saved.pl. Config file is now
straight perl that gets 'require'ed
* Put modules in their own namespaces. Vars which must be accessed from outside should
be declared with 'use vars'.
* Added aliases for commands /trigger -> /trig, /highlight -> /hilite
* Added many more colors in main:: namespace: lower case ($red, $red_black,
$bold_red_black, etc)
* Made all basic editing keys exit the history selection box and begin editing the
highlighted item.
* Made /window display its title if it has a border (and alt-O)
* Made config file be .dirt/dirtrc (note .dirtrc is not valid anymore)
* Changed all references to "mcl" to be "dirt" (function names, etc) and it works even!
* Removed struct obsolete_options and related code in Config.cc.
* Changed some default values for new config files (.dirt/dirtrc)
* Added __WARN__ and __ERR__ signal handlers from perl, and 'use Carp' (init.pl)
for more verbose warning/error messages.
* Changed PerlEmbeddedInterpreter::load_file so that it will dump line numbers on errors.
at load-time.
* Now obeys INSTALL_ROOT as given by configure for finding perl/python files (no need
to copy samples/* to .dirt/)
* Made /load re-require files. (note: prints warnings about functions being redefined)
* Made /print scroll to the next line *after* going past the last column, to enable
writing in the last column without scrolling.
* /trigger now matches UNCOLORED string by default. (add facility later to match
colored string)
* EmbeddedInterpreter::eval (and children) now accept input arg.
* Changed all hook commands output_add -> hook_add("output") because fewer functions = better.
C code calls EmbeddedInterpreter::eval("hook_run('<hook name>')"...)
This might not be best since python handled hooks won't work.
* Added priority, fallthrough parameter for hooks.
* Made auto/mudftp.pl respect $commandCharacter.
* Changed /run (PerlEmbeddedInterpreter::run) to *not* try to load a file if it
can't find the named function. This is in the interest of predictability
(loading a file and not *knowing* you loaded a file), and avoiding namespace
pollution.
* Replaced List with STL hash_map for aliases (do Hooks, Macros, etc too)
alias lookup is now O(1) instead of O(N)
* Changed Group -> WindowGroup so that I could use Group as a class to "group"
triggers, hooks, aliases, etc.
* Changed output -> outputWindow (h/OutputWindow.h) to avoid confusion with "OUTPUT"
Hook type. (and for consistency in naming)
* Fixed typo at end of Pipe.h: outputPine -> outputPipe
* Removed hook "postoutput" -- don't know what it is, nobody uses it.
* Removed "Borg" completely.
* Interpreter rewritten. Now uses a deque (double-ended queue). expandSemicolon
and expandSpeedwalk are now hooks (SEND) that replace the command by pushing onto
the front of the deque. expandAliases, expandVariables removed (these will be
rewritten in perl -- perl needs access to variables).
* can now mix semicolons and speedwalk! : .10nwed;open door;.nnwwd
<months of work converting all the commands...>
* Help system started in doc/commands. Each file corresponds to a command.
Still need to implement the /help command.
* /complete (perl) converted to new hook system, works great.
* /window accepts negative values, which measures WRT right/bottom of screen.
* Removed /kill, /windows commands, use '/window -k' and '/window -l' instead.
* Moved hook.pl, hook.py into samples/attic, they're no longer used.
* Escaping now works. Any command which wishes to interpret a character as "special"
need only check that there are an EVEN number of backslashes in front of it.
(note zero is even). If there are an odd number, the character should not be
interpreted as special. Removing excess backslashes is done in writeMUD.
* Removed disabling of functions. (via the "hidden" command '/magic enableFunction')
Note that hooks can be enabled/disabled with the /enable and /disable commands.
* Can now specify more than one group to /hook. Checked that /enable and /disable
work too. (don't do: /disable -g "Dirt commands" ;)
* /group command: list groups belonging to a hook, and hooks belonging to a group.
* Dirt now processes commands line-by-line. That is, when a line is received
from the mud, triggers are checked against it, and any commands generated
by those triggers are run. (previous behavior would run commands after an
entire buffer -- network packet -- was processed, which could split lines,
and cause unpredictable results when using mutiple scripting languages)
* Save color/restore color ($CSave, $CRestore) now uses a FIFO queue (deque)
so that multiple $CSave's and $CRestore's may be used, and it behaves as
expected. (/highlight inside a /highlight)
* Improved perl error reporting.
* If hooks fail (there is a script error or the function is not defined),
TrigerHookStub::operator() will disable the hook and print a message (to
prevent pages of spammy repeat error messages).
* Window doesn't drop one character when wrapping anymore.
* /trig command: "simple" triggers
Overloaded /enable, /disable to keep perl data structures consistent.
* Instead of running sys/init, sys/init is loaded, and the INIT hook is called.
* MessageWindow's (/window) now scroll with the selected background color, rather
than fg_white|bg_black
* We now scroll when someone print's a \n. (i.e. /echo "")
* ctrl-L now redraws screen immediately, instead after *next* keypress.
* Fix segfault on exit
* Fix segfault from non-fallthrough, inputline-modifying hooks.