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