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