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