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