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