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