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