[project @ 2005-06-23 06:56:20 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
4 of processing).
5
6 * source/Bot.C (run): Added call to Hooks::DISCONNECT
7 (hooks/disconnect) when the bot is disconnected from the server
8
9 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
10 (Hook Types): Added hooks/disconnect argument
11
12 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
13
14 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
15 again (thanks dsmith)
16
17 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
18
19 * source/Interp.C (interp_init_helper): Added
20 bot:protection/[none|ban|kick|deop] constants to Scheme
21 (interp_init_helper): Added bot:aop/[yes|no] constants
22
23 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
24
25 * configure.ac: Release Bobot++ 2.1.7
26 Changed version to 2.18.CVS
27
28 * source/UserList.C (save): Remove workaround for BUG #2
29
30 * source/Parser.C (parse001): make realNick lowercase when doing
31 the comparison to bot->nickName to prevent pushing a second copy
32 of the bot onto the userlist (closes BUG #2)
33
34 * source/Bot.C (Bot): cleaned up constructor
35 (waitForInput): replaced gh_list with scm_list_n
36
37 * source/UserList.C: Cleaned up some formatting
38
39 * source/Main.C: Formatted code more cleanly
40 (real_main): changed a few Strings to std::strings
41
42 * source/String.C (operator): Made index signed again, it's not
43 worth fixing this warning
44
45 * source/Bot.C: Add casts to make this compile with unsigned int
46 as operator[] in String
47
48 * source/String.C (operator): Made index unsigned
49
50 * source/Utils.C: Made a few things unsigned to kill warnings
51
52 * source/Socket.C (readLine): Made pos unsigned
53
54 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
55
56 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
57
58 * source/StringTokenizer.C (count_tokens): Changed return type to
59 unsigned int
60 (more_tokens_p): Made counter unsigned
61
62 * source/StringTokenizer.H (class StringTokenizer): Made pos
63 std::string::size_type instead of int
64
65 * source/Commands.C (TBan): Returns Ok is the ban is done instead
66 of falling off the end (oops)
67
68 * source/BotInterp.H: Add general catch case (false)
69
70 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
71
72 * configure.ac: Release 2.1.6
73 Changed version to 2.1.7CVS
74
75 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
76
77 * source/Parser.C (parseLine): use map<>::find and an iterator to
78 find the IRC command instead of map<>::operator[] to avoid a
79 potential segfault
80
81 * source/Bot.C (waitForInput): Removed commented out code
82
83 * source/Socket.C (readLine): return String (buf.c_str ()) instead
84 of String (buf) so that only the buffer up to the first null is returned
85 (readLine): Added a comment explaining the usage of buf
86 (readLine): Changed type of length (std::string::size_type instead
87 of std::size_t)
88
89 * source/String.C: Reimplemented String on top of std::string to
90 fix a few bugs and potential memory leaks
91 (toLower): use Utils::to_lower
92 (toUpper): Use Utils::to_upper
93 (trim): Use Utils::trim_str
94
95 * source/String.H: removed srep, replaced it with a std::string (my_string)
96
97 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
98 <josh@stack.nl>
99 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
100 counters and substr call)
101
102 * source/StringTokenizer.C (next_token): Applied patch from Jos
103 Hulzink <josh@stack.nl> (fixes substr call)
104 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
105 substr call)
106
107 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
108
109 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
110 he is a lazy bum and never submitted the String replacing patch
111
112 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
113
114 * configure.ac: Remove CC++ test
115 Changed version to 2.1.6CVS (2.1.5 released)
116
117 * bobot++.texinfo: Updated copyright
118
119 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
120
121 * TODO (General): Added TODO items
122 (2.2): Moved a few items here from 2.4
123
124 * README (NOTE): Mention boost requirement
125
126 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
127
128 * ChangeLog Updated copryight
129
130 * source/User.H: Removed forward declaration of Utils
131
132 * source/Bot.H: Removed forward declaration of Utils
133
134 * source/ChannelList.H: Removed forward declaration of Utils
135
136 * source/UserListItem.H: Removed forward declaration of Utils
137
138 * source/Utils.H: Removed class Utils, replaced with a namspace
139 (it only contained static methods)
140
141 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
142 (he is replacing String)
143
144 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
145
146 * source/BotConfig.C (set_option_value): Put watcher calling
147 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
148 = end then there are no watchers since this is a new value and
149 references cf_iter->second segfaults)
150
151 * source/Utils.C (trim_str): Fixed bug (last non-space character
152 was being cut off)
153
154 * source/BotConfig.C (read_config): Made to use set_option_value
155 instead of manipulating options_db directly
156
157 * source/BotConfig.H (class BotConfig): Add set_option_value that
158 takes a t_value instead of t_value_list (most uss of
159 set_option_value will be to add a single value so this is very useful)
160
161 * source/BotConfig.C (set_option_value): Implemented
162
163 * source/UserList.C: Made to work with new Utils/StringTokenizer names
164
165 * source/UserCommands.C: Made to work with new
166 Utils/StringTokenizer names
167
168 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
169
170 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
171
172 * source/ShitList.C: Made to work with new StringTokenizer names
173
174 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
175
176 * source/ServerQueue.C: Made to work with new Utils names
177
178 * source/ScriptCommands.C: Made work with new Utils names
179
180 * source/Person.C (getNick): Made work with new Utils names
181
182 * source/String.H: Added substr prototypes
183
184 * source/String.C (substr): Added substr as an alias of subString
185 (for compat with std::string before the transition)
186
187 * source/Parser.C: Made to work with new Utils/StringTokenizer names
188
189 * source/DCCParser.C: Made to work with new Utils names
190
191 * source/DCCChatConnection.C: Made to work new Utils names
192
193 * source/Commands.C: Made to work with new Utils names
194
195 * source/Channel.C: Made to work with new Utils names
196
197 * source/BotInterp.C: Made to work with new Utils
198
199 * source/Bot.C: Made to work with new Utils/StringTokenizer names
200
201 * source/String.C (operator=): Unremoved operator=(std::string)
202
203 * source/String.H: Unremoved operator=(std::string)
204
205 * source/BotConfig.C (read_config): Use Utils::trim_str
206
207 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
208
209 * source/Utils.C (trim_str): Implemented
210
211 * source/Utils.H: Added tim_str (replaces String::trim)
212
213 * source/BotConfig.C: Made everything work with new
214 StringTokenizer and Utils names
215
216 * source/Utils.H: Added to_lower
217 Added to_upper
218
219 * source/StringTokenizer.C (rest): uses std::isspace instead of
220 checking st[pos] against ' ' and '\t'
221
222 * source/StringTokenizer.H: Removed CamelCasing
223 Renamed hasMoreTokens to more_tokens_p
224
225 * source/StringTokenizer.C: Converted to use std::string
226
227 * source/StringTokenizer.H: Converted to use std::string
228
229 * source/String.C: Removed operator=(std::string)
230
231 * source/String.H: Removed operator=(std::string)
232
233 * source/Utils.C: Added copyright
234 Reformatted to match GNU coding standard more closely
235 Converted everything to use std::string
236 (get_nick): Renamed from getNick
237 (get_userhost): Renamed from getUserHost
238 (get_key): Renamed from getKey
239 (IP_p): Renamed from isIP
240 (make_wildcard): Renamed from makeWildcard
241 (channel_p): Renamed from isChannel
242 (wildcard_p): Renamed from isWildcard
243 (valid_channel_name_p): Renamed from isValidChannelName
244 (valid_nickname_p): Renamed from isValidNickName
245 (get_level): Renamed from getLevel
246 (str2time): Renamed from strToTime
247 (str2time): Fixed potential buffer overflow (num[512] => std::string)
248 (level2str): Renamed from levelToStr
249 (prot2str): Renamed from protToStr
250 (bool2str): Renamed from boolToStr
251 (long2str): Implemented
252 (scm2str): Renamed from scm2String
253 (str2scm): Renamed from string2SCM
254
255 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
256
257 * source/Utils.H: Added long2str (long int -> std::string)
258
259 * source/String.H: Added 2003 copyright (the year I last modified
260 it in)
261
262 * source/String.C: Added 2002 copyright (the year I last modified
263 it in)
264
265 * source/Utils.H: Updated Copyright
266 s/String/std::string/g
267 Removed camel casing and is* = *_p
268 xToY = x2y
269
270 * source/BotConfig.C: Updated Copyright
271
272 * source/BotConfig.H: Updated copyright
273
274 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
275
276 * source/BotConfig.C (set_option_value): Take care of the case
277 where key is not already in the db
278 (add_watcher): Implemented
279 (read_config): Removed ',' token parsing (not needed)
280
281 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
282 AC_CHECK_LIB ccgnu2 (CommonC++2)
283
284 * README: Updated README (reformatted, adding info, etc.)
285
286 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
287
288 * source/BotConfig.C (set_option_value): call watcher list
289 (run_fun_): Added to support watcher list calling
290
291 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
292
293 * source/BotConfig.C (set_option_value): Fuck you STL
294 (push_back_): Reimplemented so that it doesn't need std::bind1st
295 because the STL is being stupid
296
297 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
298
299 * source/BotConfig.C (read_config): Implemented properly
300 (get_option_values): Implemented properly
301 (set_config_file): Fixed
302
303 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
304
305 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
306 list of commands
307
308 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
309
310 * source/BotConfig.C: New file (implementation of configuration database)
311
312 * source/BotConfig.H: New File (semi-generic configuration database)
313
314 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
315
316 * bobot++.texinfo (Starting the Bot): New section
317
318 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
319
320 * bobot++.texinfo (Protection): Added Section
321 (User Levels): Rewrote section to be useful
322 (bot.users): Added section
323
324 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
325
326 * source/DCCChatConnection.C (connect): Checks to make sure the
327 person initiating a DCC CHAT with the bot is at least a FRIEND of
328 the bot.
329
330 * README: Fixed a typo
331
332 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
333 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
334
335 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
336
337 * bobot++.texinfo (bot.conf): Finished section
338 (server syntax): New section, documents the bot.conf SERVER syntax
339 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
340
341 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
342
343 * source/Main.C (real_main): std::exit instead of exit
344
345 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
346
347 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
348 constructor with `n' This should fix the segfaulting.
349
350 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
351
352 * ChangeLog: Updated copyright notice
353
354 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
355
356 * source/Interp.C (interp_init_helper): Register
357 bot:change-command-level
358
359 * source/ScriptCommands.C (ChangeCommandLevel): Added
360 ChangeCommandLevel to change the level a user needs to be to run a
361 command
362
363 * source/ScriptCommands.H: Added ChangeCommandLevel
364
365 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
366
367 * source/String.H: Changed #define STRING_H to BSTRING_H
368
369 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
370
371 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
372 to see if a message was sent to the bot (this is better than
373 bot:match-to-me because the hook isn't invalidated when the bot's
374 nickname changes)
375
376 * source/DCCConnection.H: Added `nuh' back and added an
377 accessor (get_nuh)
378 Added setter `set_autoRemove(bool)'
379
380 * source/DCCConnection.H: Removed all friends
381 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
382 reveals the pointer to the bot [PRIVATE POINTER] which probably
383 isn't so nice, but there isn't much to be done about it with the
384 current design of the bot)
385
386 * source/DCCChatConnection.H: Removed all friends
387
388 * source/DCCConnection.H: DCCConnection is now a pure virtual
389 class with the subclass DCCChatConnection
390
391 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
392
393 * source/Socket.C (connect): log errors to the bot log instead of
394 printing to stderr
395
396 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
397
398 * source/Parser.C (parseMessage): use the find method of std::map
399 to find the command to call instead of [] and then extract the
400 pointer to the userFunction from that if it exists. This appears
401 to fix the crash when one uses an undefined command followed by
402 any defined command.
403
404 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
405
406 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
407 ScriptCommands::SetFloodRate
408
409 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
410
411 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
412 to bot master
413
414 * source/Bot.H: Made MAX_MESSAGES writeable
415
416 * source/UserCommands.H: New method: SetFloodRate
417
418 * source/Commands.H: New method: SetFloodRate
419
420 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
421
422 * configure.ac: Merged all AC_OUTPUTs at the end
423
424 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
425
426 * scripts/bobot-utils.scm: Make exported symbols from
427 the-bot-module available in the guile-user module so that scripts
428 loaded with Interp::Load function.
429
430 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
431
432 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
433 %bot:loadpath into its own module and returns that (unnamed) module
434 (bot:use-module): Calls bot:load-module and then adds the newly
435 loaded module to the (current-module)'s use-list
436
437 * source/Interp.C (interp_init_helper): New procedure to initialize
438 the-bot-module (this is the old Interp::Startup verbatim)
439 (interp_post_startup_helper): New procedure to export
440 the-bot-module from bot_module
441 (Startup): Now calls interp_init_helper and
442 interp_post_startup_helper to initalize the bot module system
443
444 * source/Interp.H: Added private variable bot_module to Interp
445
446 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
447
448 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
449 this breaks existing scripts, this is the unstable tree after all)
450
451 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
452
453 * source/Mask.C (match): Made Mask::match case insensitive
454
455 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
456
457 * source/Interp.C (scm_apply_wrapper): turned off locking of
458 Interp::mutex to see if this makes the bot work again...and it
459 does!
460
461 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
462
463 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
464 everything to use aclocal/automake 1.6
465
466 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
467
468 * source/DCCPerson.H (class DCCPerson): Added
469 UserCommands::DCCList as a friend (friends are better than the old
470 DCC() function at least).
471
472 * source/DCCManager.H (class DCCManager): Added
473 UserCommands::DCCList as a friend
474
475 * source/Interp.H (class Interp): Made function scm_apply_wrapper
476 a friend so it can lock Interp::mutex
477
478 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
479 MULTITHREAD is defined (it is always defined when scripting is
480 enabled) so that Sockets can be made multithreaded using
481 CommonC++.
482
483 * source/DCCPerson.H: Removed DCC method and made Bot a friend
484 Made DCCManager a friend
485
486 * source/DCCManager.H (class DCCManager): Removed MAP() method
487 and made Bot a friend of DCCManager
488
489 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
490
491 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
492 bot:dcc-chat-send.
493
494 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
495 user!nick@host instead of the correct nick!user@host).
496
497 * source/Interp.C (Startup): Register bot:DCC-chat-send
498
499 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
500
501 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
502
503 * source/String.C (String): The std::string copy constructor now
504 extracts the c_str of the std::string and then takes the strlen of
505 that before copying it. This fixes a bug with DCC where if you did
506 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
507 something like that, depending on what the last message was
508 because Socket will insert a \0 into its semi-static buffer, so
509 the len of the String will not equal the strlen of its char*.
510
511 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
512
513 * source/DCCPerson.H: Removed destructor (I = idiot)
514
515 * source/DCCConnection.H: DCCManager is now a friend of
516 DCCConnection (ugh, the bot has way too many friends).
517
518 * source/DCCPerson.H: Added DCC member that returns a const
519 DCCConnection* (the dcc connection). This isn't saved anywhere
520 because when a DCCPerson is destroyed, its connection is also
521 destroyed.
522
523 * source/Bot.H: dccConnections is now a DCCManager
524
525 * source/DCCPerson.H: Added destructor
526 Added handleInput method
527
528 * source/DCCManager.C: New file
529 (addConnection): Wrote method, add a DCCConection to the manager
530
531 * source/DCCManager.H: New file
532
533 * source/Interp.C (Startup): Register bot:DCC-chat-send
534 (Startup): Removed sendDCCChatMessage stuff
535
536 * source/ScriptCommands.C (sendDCCChatMessage): New method:
537 sendDCCChatMessage (to, message) sends message to to.
538
539 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
540 one arg: from (user!nick@host).
541
542 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
543 two args: from (user!nick@host) and line
544
545 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
546
547 * source/Interp.C (Startup): Two new Scheme values:
548 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
549 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
550
551 * source/BotInterp.H: Added two new enum values to Hook:
552 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
553 chat message hooks
554
555 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
556
557 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
558 DCC! Ack, sockets take their arguments in network byte order so
559 there is no need to convert to host...now DCC _sort of_ works.
560
561 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
562
563 * source/UserList.C (save): Increment iterator twice to get around
564 bug (see BUGS #2)
565
566 * source/ServerQueue.C: Now sends SEND_* hooks instead of
567 triggered general hooks.
568
569 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
570 (* = the new SEND_ hooks, but lowercase).
571
572 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
573 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
574
575 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
576
577 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
578 logs again.
579
580 * source/Socket.C (readLine): Now uses a static std::string that
581 starts out with 512 chars. This will never need to be resized for
582 usualy IRC messages, but might be for DCC messages
583
584 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
585
586 * scripts/bobot-utils.scm (not-from-me): New syntax.
587
588 * source/ScriptCommands.C (AddHook): Now takes another optional
589 arg--name that will name the hook (see the hooks section in the
590 manual for what this does).
591
592 * source/BotInterp.H: Added name field to Hook
593
594 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
595
596 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
597 PRIVMSGes because the IRC server doesn't echo them back to the
598 bot. This could be useful for something (e.g. log script).
599
600 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
601
602 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
603 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
604 associated with the hook when Interp::Shutdown is called (bot exit).
605
606 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
607
608 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
609 hook is greater than or less than the other hook, only the
610 priority is considered. However, if both hooks have the same
611 priority, then the fallthru-ness is considered, with fallthru
612 hooks being greater than non-fallthru hooks.
613
614 * source/BotInterp.C (hptr_lt): Added this static function to be
615 used to sort the hooks list (now hooks should be sorted using
616 Hook's operator < instead of using pointer comparision, meaning
617 the new hook system will work correctly)
618
619 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
620 map because we don't need the result of the displays (this would
621 just be a list of #<undefined> values and is a waste of memory).
622
623 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
624
625 * source/Bot.C (Bot): userFunctions is now a map for efficiency
626 (worst case search is now NlogN instead of N). This improvement is
627 not as drastic as the one gained by making the Parser functions
628 list a map (because we don't scan this map for every message), but
629 it helps to clean up the code
630
631 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
632
633 * source/Parser.H: Removed userFunctionsStruct
634
635 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
636 as bot:send-CTCP for Scheme
637
638 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
639
640 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
641
642 * source/ServerQueue.C (sendUser): Changed . . in USER command to
643 0 * (which is the Right Way to because <mode> must be a number...)
644
645 * source/Parser.C (init): New method of Parse. This initalizes the
646 functions map. functions replaces the old functions array, and
647 should yield better performance (since the functions array had to
648 be scanned for every incoming message)
649
650 * source/Parser.H: New member, functions (private)
651
652 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
653
654 * source/Interp.C (Startup): New symbols: bot:user-*
655 [none|user|trusted|friend|master] are defined in Scheme as the
656 different levels of the users.
657 (Startup): All bot-* variables are now bot:*
658
659 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
660
661 * source/Bot.H: Made some variables private because they shouldn't
662 be changed at runtime
663
664 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
665 this out to see if it works and make it work)
666
667 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
668 dir.
669
670 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
671 scripts in the user scripts dir) that made bobot++ not able to
672 load scripts from the user scripts dir
673
674 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
675
676 * source/BotInterp.C (RunHooks): Changed iterators to
677 reverse_iterators because the hooks list is sorted in ascending
678 order--higher priority and fallthrough hooks appear _after_ the
679 lower priority and non-fallthrough hooks.
680
681 * source/Main.C (print_long_help): Added function
682 (print_short_help): Renamed from printUsage
683 (namespace): Most stuff in here is now defined in an anonymouse
684 namespace so it doesn't have external linkage
685 (real_main): Uses getopt_long instead of getopt. Added several
686 command line arguments (bobotpp --help for a full list).
687
688 * scripts/bobot-utils.scm (bot-load): Function moved from
689 bobot-scheme.scm
690
691 * source/Interp.C (Startup): Autoloads
692 PREFIX/bobotpp/scripts/bobot-utils.scm now
693 (Startup): New Scheme variable: bot-sys-scripts-dir (system
694 scripts dir)
695
696 * source/bobot-scheme.scm.in: Removed
697
698 * source/Makefile.am: Removed bobot-scheme.scm compiliation
699
700 * configure.ac (PREFIX): configure.ac defined prefix now
701
702 * source/Main.C (real_main): Default configuration is now read
703 from /etc/bobotpp/default
704 * source/bobot-scheme.scm.in: Added file. This defines the
705 'bot-load' procedure which will load a file from
706 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
707 script doesn't exist in the user script dir.
708
709 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
710
711 * bobot++.texinfo: Started docs (just a skeleton right now)
712
713 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
714 args to set a hooks priority and whether or not it will
715 fallthrough. These args are optional.
716
717 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
718
719 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
720 (RunHooks): exec fallthrough hooks first.
721
722 * source/BotInterp.H: Changed Hooks to have priority
723 Added fhooksMap to BotInterp (fallthrough)
724
725 * source/UserCommands.C (AddShit): Converted to use Commands
726
727 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
728
729 * source/Commands.C (AddUser): Fixed a one-off (function call was
730 before a brace instead of after one) that caused a segfault when
731 the user mask was a wildcard
732
733 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
734
735 * all files: Updated address of the FSF
736
737 * source/UserCommands.C (AddUser): Uses Commands now instead of
738 manipulating the bot directly
739
740 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
741
742 * source/ScriptCommands.C (AddShit): Filled in function.
743
744 * source/Interp.C (Startup): Bind bot-adduser to
745 ScriptCommands::AddUser instead of Action
746 (Startup): Bind bot-addshit to ScriptCommands::AddShit
747
748 * source/ScriptCommands.C (AddUser): Filled in function
749
750 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
751 would have caused problems if you used more than one server
752
753 * source/Parser.H: Changed const char* to String in userFunctionStruct
754
755 * source/String.H: Added std::string compatibility members
756
757 * configure.ac: You can now disable Crypt and scripting
758
759 * source/*: Added #include "config.h" where needed
760
761 * configure.ac: Added AM_CONFIG_HEADER
762
763 * config.h.in: added file
764
765 * source/Queue.C: Didn't notice iostream.h here! Fixed
766
767
768 Copyright 2002,2003,2004,2005 Clinton Ebadi
769 Copying and distribution of this file, with or without modification, are
770 permitted provided the copyright notice and this notice are preserved.