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