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