[project @ 2002-11-04 23:42:01 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
4 this breaks existing scripts, this is the unstable tree after all)
5
6 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
7
8 * source/Mask.C (match): Made Mask::match case insensitive
9
10 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
11
12 * source/Interp.C (scm_apply_wrapper): turned off locking of
13 Interp::mutex to see if this makes the bot work again...and it
14 does!
15
16 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
17
18 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
19 everything to use aclocal/automake 1.6
20
21 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
22
23 * source/DCCPerson.H (class DCCPerson): Added
24 UserCommands::DCCList as a friend (friends are better than the old
25 DCC() function at least).
26
27 * source/DCCManager.H (class DCCManager): Added
28 UserCommands::DCCList as a friend
29
30 * source/Interp.H (class Interp): Made function scm_apply_wrapper
31 a friend so it can lock Interp::mutex
32
33 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
34 MULTITHREAD is defined (it is always defined when scripting is
35 enabled) so that Sockets can be made multithreaded using
36 CommonC++.
37
38 * source/DCCPerson.H: Removed DCC method and made Bot a friend
39 Made DCCManager a friend
40
41 * source/DCCManager.H (class DCCManager): Removed MAP() method
42 and made Bot a friend of DCCManager
43
44 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
45
46 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
47 bot:dcc-chat-send.
48
49 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
50 user!nick@host instead of the correct nick!user@host).
51
52 * source/Interp.C (Startup): Register bot:DCC-chat-send
53
54 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
55
56 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
57
58 * source/String.C (String): The std::string copy constructor now
59 extracts the c_str of the std::string and then takes the strlen of
60 that before copying it. This fixes a bug with DCC where if you did
61 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
62 something like that, depending on what the last message was
63 because Socket will insert a \0 into its semi-static buffer, so
64 the len of the String will not equal the strlen of its char*.
65
66 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
67
68 * source/DCCPerson.H: Removed destructor (I = idiot)
69
70 * source/DCCConnection.H: DCCManager is now a friend of
71 DCCConnection (ugh, the bot has way too many friends).
72
73 * source/DCCPerson.H: Added DCC member that returns a const
74 DCCConnection* (the dcc connection). This isn't saved anywhere
75 because when a DCCPerson is destroyed, its connection is also
76 destroyed.
77
78 * source/Bot.H: dccConnections is now a DCCManager
79
80 * source/DCCPerson.H: Added destructor
81 Added handleInput method
82
83 * source/DCCManager.C: New file
84 (addConnection): Wrote method, add a DCCConection to the manager
85
86 * source/DCCManager.H: New file
87
88 * source/Interp.C (Startup): Register bot:DCC-chat-send
89 (Startup): Removed sendDCCChatMessage stuff
90
91 * source/ScriptCommands.C (sendDCCChatMessage): New method:
92 sendDCCChatMessage (to, message) sends message to to.
93
94 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
95 one arg: from (user!nick@host).
96
97 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
98 two args: from (user!nick@host) and line
99
100 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
101
102 * source/Interp.C (Startup): Two new Scheme values:
103 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
104 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
105
106 * source/BotInterp.H: Added two new enum values to Hook:
107 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
108 chat message hooks
109
110 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
111
112 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
113 DCC! Ack, sockets take their arguments in network byte order so
114 there is no need to convert to host...now DCC _sort of_ works.
115
116 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
117
118 * source/UserList.C (save): Increment iterator twice to get around
119 bug (see BUGS #2)
120
121 * source/ServerQueue.C: Now sends SEND_* hooks instead of
122 triggered general hooks.
123
124 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
125 (* = the new SEND_ hooks, but lowercase).
126
127 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
128 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
129
130 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
131
132 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
133 logs again.
134
135 * source/Socket.C (readLine): Now uses a static std::string that
136 starts out with 512 chars. This will never need to be resized for
137 usualy IRC messages, but might be for DCC messages
138
139 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
140
141 * scripts/bobot-utils.scm (not-from-me): New syntax.
142
143 * source/ScriptCommands.C (AddHook): Now takes another optional
144 arg--name that will name the hook (see the hooks section in the
145 manual for what this does).
146
147 * source/BotInterp.H: Added name field to Hook
148
149 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
150
151 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
152 PRIVMSGes because the IRC server doesn't echo them back to the
153 bot. This could be useful for something (e.g. log script).
154
155 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
156
157 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
158 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
159 associated with the hook when Interp::Shutdown is called (bot exit).
160
161 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
162
163 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
164 hook is greater than or less than the other hook, only the
165 priority is considered. However, if both hooks have the same
166 priority, then the fallthru-ness is considered, with fallthru
167 hooks being greater than non-fallthru hooks.
168
169 * source/BotInterp.C (hptr_lt): Added this static function to be
170 used to sort the hooks list (now hooks should be sorted using
171 Hook's operator < instead of using pointer comparision, meaning
172 the new hook system will work correctly)
173
174 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
175 map because we don't need the result of the displays (this would
176 just be a list of #<undefined> values and is a waste of memory).
177
178 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
179
180 * source/Bot.C (Bot): userFunctions is now a map for efficiency
181 (worst case search is now NlogN instead of N). This improvement is
182 not as drastic as the one gained by making the Parser functions
183 list a map (because we don't scan this map for every message), but
184 it helps to clean up the code
185
186 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
187
188 * source/Parser.H: Removed userFunctionsStruct
189
190 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
191 as bot:send-CTCP for Scheme
192
193 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
194
195 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
196
197 * source/ServerQueue.C (sendUser): Changed . . in USER command to
198 0 * (which is the Right Way to because <mode> must be a number...)
199
200 * source/Parser.C (init): New method of Parse. This initalizes the
201 functions map. functions replaces the old functions array, and
202 should yield better performance (since the functions array had to
203 be scanned for every incoming message)
204
205 * source/Parser.H: New member, functions (private)
206
207 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
208
209 * source/Interp.C (Startup): New symbols: bot:user-*
210 [none|user|trusted|friend|master] are defined in Scheme as the
211 different levels of the users.
212 (Startup): All bot-* variables are now bot:*
213
214 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
215
216 * source/Bot.H: Made some variables private because they shouldn't
217 be changed at runtime
218
219 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
220 this out to see if it works and make it work)
221
222 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
223 dir.
224
225 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
226 scripts in the user scripts dir) that made bobot++ not able to
227 load scripts from the user scripts dir
228
229 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
230
231 * source/BotInterp.C (RunHooks): Changed iterators to
232 reverse_iterators because the hooks list is sorted in ascending
233 order--higher priority and fallthrough hooks appear _after_ the
234 lower priority and non-fallthrough hooks.
235
236 * source/Main.C (print_long_help): Added function
237 (print_short_help): Renamed from printUsage
238 (namespace): Most stuff in here is now defined in an anonymouse
239 namespace so it doesn't have external linkage
240 (real_main): Uses getopt_long instead of getopt. Added several
241 command line arguments (bobotpp --help for a full list).
242
243 * scripts/bobot-utils.scm (bot-load): Function moved from
244 bobot-scheme.scm
245
246 * source/Interp.C (Startup): Autoloads
247 PREFIX/bobotpp/scripts/bobot-utils.scm now
248 (Startup): New Scheme variable: bot-sys-scripts-dir (system
249 scripts dir)
250
251 * source/bobot-scheme.scm.in: Removed
252
253 * source/Makefile.am: Removed bobot-scheme.scm compiliation
254
255 * configure.ac (PREFIX): configure.ac defined prefix now
256
257 * source/Main.C (real_main): Default configuration is now read
258 from /etc/bobotpp/default
259 * source/bobot-scheme.scm.in: Added file. This defines the
260 'bot-load' procedure which will load a file from
261 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
262 script doesn't exist in the user script dir.
263
264 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
265
266 * bobot++.texinfo: Started docs (just a skeleton right now)
267
268 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
269 args to set a hooks priority and whether or not it will
270 fallthrough. These args are optional.
271
272 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
273
274 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
275 (RunHooks): exec fallthrough hooks first.
276
277 * source/BotInterp.H: Changed Hooks to have priority
278 Added fhooksMap to BotInterp (fallthrough)
279
280 * source/UserCommands.C (AddShit): Converted to use Commands
281
282 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
283
284 * source/Commands.C (AddUser): Fixed a one-off (function call was
285 before a brace instead of after one) that caused a segfault when
286 the user mask was a wildcard
287
288 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
289
290 * all files: Updated address of the FSF
291
292 * source/UserCommands.C (AddUser): Uses Commands now instead of
293 manipulating the bot directly
294
295 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
296
297 * source/ScriptCommands.C (AddShit): Filled in function.
298
299 * source/Interp.C (Startup): Bind bot-adduser to
300 ScriptCommands::AddUser instead of Action
301 (Startup): Bind bot-addshit to ScriptCommands::AddShit
302
303 * source/ScriptCommands.C (AddUser): Filled in function
304
305 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
306 would have caused problems if you used more than one server
307
308 * source/Parser.H: Changed const char* to String in userFunctionStruct
309
310 * source/String.H: Added std::string compatibility members
311
312 * configure.ac: You can now disable Crypt and scripting
313
314 * source/*: Added #include "config.h" where needed
315
316 * configure.ac: Added AM_CONFIG_HEADER
317
318 * config.h.in: added file
319
320 * source/Queue.C: Didn't notice iostream.h here! Fixed
321
322
323 Copyright 2002 Clinton Ebadi
324 Copying and distribution of this file, with or without modification, are
325 permitted provided the copyright notice and this notice are preserved.