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