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