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