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