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