[project @ 2006-02-03 22:06:08 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2006-02-03 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * source/Main.C (main): Moved Interp::Startup call to after the
4 Bot is created
5
6 2005-09-12 Clinton Ebadi <clinton@unknownlamer.org>
7
8 * bobot++.texinfo (High Level Message Functions): Removed
9 duplicate bot:say entry
10 (Channel Control): Converted section to new format, and documented
11 more commands
12
13 2005-08-07 Clinton Ebadi <clinton@unknownlamer.org>
14
15 * bobot++.texinfo (Bot Control Commands): Convert to @deffn and
16 documented commands
17 (Built-In Commands): Clarified when the channel argument must be
18 provided
19
20 2005-07-21 Clinton Ebadi <clinton@unknownlamer.org>
21
22 * bobot++.texinfo: Removed all multitables and replaced them with
23 lists
24
25 2005-07-07 Clinton Ebadi <clinton@unknownlamer.org>
26
27 * bobot++.texinfo (Shit Levels): Added section
28 (Scheme User Levels): Removed Section
29 (Adding New Commands): Updated ref to Scheme User Levels to refer
30 to the User Levels section, and changed a @code{} into a @{var}
31 (Sending Messages): Rewrote section
32 (High Level Message Functions): Merged bot:say and bot:msg
33 sections
34 (bot.users): Expanded section
35 (bot.shit): Added section
36 (bot.conf): Document initfile option
37 (bot.shit): More detail
38 (bot.users): More detail
39 (bot.init): Added section
40 (bot.conf): Documented autoexecfile option
41 (bot.autoexec): Added section
42 (Using the Bot): Added some intro text
43 (Concepts): New section, all of the level sections are now
44 subsections of this
45 Merged small doc patch from dsmith
46 (Channel Control): Added Section
47 (User List Commands): Added Section
48 (Spylist): Added Section
49 (Message Commands): Added Section
50 (Miscellaneous Commands): Added Section
51 (Shit List Commands): Added Section
52 (Channel Info): Added Section
53 (Built-In Commands): Completely Reorganized section
54
55 * source/Interp.C (interp_init_helper): Added bot:shit/none
56 /no-ban, /no-kick, and /no-deop constants to Scheme
57
58 * scripts/bobot-utils.scm (bot:sent-to-me?): Redefined as a
59 closure (this should create the regexp once instead of each time
60 the function is called)
61
62 * examples/bot.autoexec: Updated sample bot.autoexec
63
64 * examples/bot.users: Updated sample bot.users
65
66 * examples/bot.conf: Updated sample config
67
68 2005-07-06 Clinton Ebadi <clinton@unknownlamer.org>
69
70 * bobot++.texinfo (Sent Message Hooks): Documented hooks/send/who
71 and hooks/send/whois
72
73 * source/ServerQueue.C (sendWho): Call hooks/send/who
74 (sendWhois): Call hooks/send/whois
75
76 * source/Interp.C (interp_init_helper): Added hooks/send/who and
77 hooks/send/whois constants to Scheme
78
79 * source/BotInterp.H: Added SEND_WHO and SEND_WHOIS hook constants
80
81 * bobot++.texinfo (Misc Scripting Stuff): Documented bot:who and
82 bot:whois
83 (bot.conf): Document MAXNICKLENGTH
84
85 * source/Interp.C (interp_init_helper): Add bot:who and bot:whois
86 bindings to Scheme
87
88 * source/ScriptCommands.C (Who): Implemented Who method
89 Removed IQUEUE macro (no longer needed)
90 (Whois): Implemented Whois method
91
92 * source/ScriptCommands.H: Added Who and Whois methods
93
94 * source/Commands.C (Who): Implemented Who
95 (Whois): Implemented Whois
96
97 * source/Commands.H: Add Who and Whois tethods
98
99 * source/Interp.C: Updated copyright notice
100 (interp_init_helper): Remove send from CTCP/CTCPReply method names
101
102 * source/Interp.H: Updated copyright notice
103
104 * source/ScriptCommands.C (CTCP): Renamed from sendCTCP
105 (CTCPReply): Renamed from sendCTCPReply
106
107 2005-07-05 Clinton Ebadi <clinton@unknownlamer.org>
108
109 * bobot++.texinfo (Low Level Message Functions): Updated docs to
110 reflect new names for ctcp functions
111
112 * source/Interp.C (interp_init_helper): Register
113 ScriptCommands::Notice instead of sendNotice
114 (interp_init_helper): Renamed bot:send-ctcp to bot:ctcp
115 (interp_init_helper): Renamed bot:send-ctcp-reply to bot:ctcp-reply
116
117 * source/ScriptCommands.C (Notice): Renamed from sentNotice
118
119 * source/ScriptCommands.H: Renamed sendNotice to Notice
120
121 * bobot++.texinfo (Hook Types): Spelling fix
122
123 2005-07-04 Clinton Ebadi <clinton@unknownlamer.org>
124
125 * scripts/bobot-utils.scm (_deprecated-fun): Set
126 current-error-port to bot:logport while calling
127 issue-deprecation-warning
128
129 * bobot++.texinfo: Grammar fixes on the title page
130 (Configuration): Added more info on config files.
131 (bot.conf): Added xrefs for server syntax and channel syntax
132 (server syntax): Added more detail and moved a paragraph
133 (channel syntax): Added more details, revised the examples, and
134 moved some text around
135 (User Levels): Clarified
136 (Protection): Cleaned up
137 (Automatic Op): Improved substantially
138
139 * source/DCCManager.C (checkInput): Call hooks/dcc/chat-end if the
140 DCC CHAT has died
141
142 * scripts/bobot-utils.scm (bot:log): Updated to use bot:logport
143 instead of bot-logport
144
145 * source/Interp.C (interp_init_helper): Add hooks/dcc/chat-end
146 constant to Scheme
147
148 * bobot++.texinfo (DCC CHAT Hooks): Document hooks/dcc/chat-end
149
150 * source/BotInterp.H: Add DCC_CHAT_END to enum
151
152 * source/DCCManager.C (checkStale): Run hooks/dcc/chat-end when
153 deleting a stale connection.
154
155 2005-07-03 Clinton Ebadi <clinton@unknownlamer.org>
156
157 * bobot++.texinfo (Hook Types): Documented all hooks
158
159 * source/ServerQueue.C (sendPrivmsg): Changed SEND_MESSAGE hook to
160 match dest and pass dest to send hook
161
162 * bobot++.texinfo (Hook Types): Changed language of
163 hooks/dcc/chat-* hook documention
164 (Received Message Hooks): Added subsub section of Hook Types
165 (Sent Message Hooks): Added subsub section of Hook Types
166 (DCC CHAT Hooks): Added subsub section of Hook Types
167 (Miscellaneous Hooks): Added subsub section of Hook Types
168
169 * source/Parser.C (parseScriptFunction): Changed
170 lazy_apply_wrapper to Interp::LazyApplyWrapper
171 (parseScriptFunction): Changed empty_handler to Interp::EmptyHandler
172 (parsePart): Grammar fix in log (Leaved => Left)
173
174 * source/Interp.H (Interp): Added LazyHandler method
175
176 * source/BotInterp.C (RunHooks): changed lazy_apply_wrapper to
177 Interp::LazyApplyWrapper
178 (RunTimers): Changed empty_handler to Interp::EmptyHandler
179 (RunHooks): Changed empty_handler to Interp::EmptyHandler
180 (RunTimers): Changed lazy_apply_wrapper to Interp::LazyApplyWrapper
181
182 * source/Interp.C (LazyHandler): Renamed from lazy_handler
183 (ScmApplyWrapper): Renamed from scm_apply_wrapper
184 (EmptyHandler): Renamed from empty_handler
185
186 * source/Interp.H (Interp): Removed ErrorHandler method
187 (Interp): Added LazyApplyWrapper method
188 (Interp): Added EmptyHandler method
189 (Interp): Added ScmApplyWrapper method
190
191 * scripts/bobot-utils.scm: Added hooks/leave as an alias for hooks/part
192 Added begin-deprecated around deprecated definitions
193 (_deprecated-fun): Added macro to define an alias for a function
194 and issue a deprecation warning when used
195 Converted all bot- aliases to use _deprecated-fun
196
197 * source/Interp.C (interp_init_helper): Changed Hook::LEAVE to
198 Hook::PART
199 (interp_init_helper): Removed definition of hooks/leave
200
201 * bobot++.texinfo (Hook Types): Removed stub for hooks/leave, only
202 document hooks/part name (hooks/leave still exists, but will not
203 be documented as it is the same as hooks/part)
204
205 * source/Parser.C (parsePart): Use Hook::PART instead of Hook::LEAVE
206
207 * source/BotInterp.H: Removed Hook::LEAVE, added Hook::PART
208
209 * bobot++.texinfo (Scripting): Added note about most arguments
210 being strings
211
212 * source/Commands.C (NextServer): Call hooks/disconnect
213
214 * source/Bot.C (run): Pass extra argument to Hook::DISCONNECT
215
216 * bobot++.texinfo (Creating a Hook): Reformatted the bot:addhook
217 section to make it more readable
218 (Hook Types): Reformatted hooks/action
219 (Hook Types): Changed grammar of hooks/nickname (their => his)
220 (Hook Types): Documented hooks/signoff
221
222 2005-06-29 Clinton Ebadi <clinton@unknownlamer.org>
223
224 * bobot++.texinfo: Updated copyright years, changed "applies to
225 2.1.5" to 2.2
226
227 * source/Socket.C (readLine): return buf.substr (0, pos) instead
228 of using the String char * constructor (this should be faster,
229 especially for long strings since a simple copy is used instead of
230 going over each char until nul is encountered)
231
232 * configure.ac: Release 2.1.8
233 Change version to 2.1.9CVS
234
235 * source/Parser.C: Include Commands.H (fixes --disable-scripting build)
236
237 * source/Bot.C (Bot): Fix to make a --disable-scripting build work
238
239 * bobot++.texinfo (Configuration): Swapped order of config file
240 placement and config files
241 (User Levels): users not found in the user list *can* execute
242 commands as bot:user-none now.
243 (Low Level Message Functions): Changed a few @code{}s to @var{}s
244
245 2005-06-28 Clinton Ebadi <clinton@unknownlamer.org>
246
247 * bobot++.texinfo: @vskip Opt... => @vskip 0pt...
248
249 * source/Main.C (namespace): Added debug-scripts option
250
251 * source/Parser.C (parseCTCP): Hook::ACTION is now passed
252 from->getNick () instead of from->getAddress () (consistency fix)
253
254 * source/Main.C: Merged error handling patch from dsmith
255
256 * source/Parser.C: Merged error handling
257 patch from dsmith
258
259 * source/Interp.H: Merged error handling patch from dsmith
260
261 * source/Interp.C (lazy_handler): Merged error handling patch from
262 dsmith
263
264 * source/BotInterp.H: Merged error handling patch from dsmith
265
266 * source/BotInterp.C: Merged error handling patch from dsmith
267
268 * bobot++.texinfo (Low Level Message Functions): Documented
269 bot:send-ctcp-reply
270
271 * source/Parser.C (parseCTCP): Converted to use Commands::CTCPReply
272
273 * source/Interp.C (interp_init_helper): Bound bot:send-ctcp-reply
274 in scheme
275
276 * bobot++.texinfo (Low Level Message Functions):
277 s/bot:send-CTCP/bot:send-ctcp/
278
279 * source/Interp.C (interp_init_helper): Renamed bot:send-CTCP to
280 bot:send-ctcp
281
282 * source/ScriptCommands.H: Uncommented sendCTCPReply prototype
283
284 * source/ScriptCommands.C (sendCTCP): Convert to use Commands::CTCP
285 (sendCTCPReply): Added
286
287 * source/Parser.C (parseJoin): Convert to use Commands::CTCP
288
289 * source/Commands.C (CTCP): Implemented
290 (CTCPReply): Implemented
291 (Action): Convert to use Commands::CTCP
292
293 * source/Commands.H: Added CTCP (bot, target, command, message)
294 Added CTCPReply (bot, target, command, message)
295
296 2005-06-27 Clinton Ebadi <clinton@unknownlamer.org>
297
298 * examples/bot.conf (maxnicklength): Update example config
299
300 * source/Utils.C (valid_nickname_p): Use b->MAX_NICKLENGTH
301
302 * source/Bot.C (readConfig): Look for MAXNICKLENGTH parameter
303
304 * source/Bot.H: Added MAX_NICKLENGTH member
305
306 * source/Utils.H (valid_nickname_p): Now takes Bot* as first argument
307
308 * source/Commands.C (Msg): Send multiple PRIVMSGs when a message
309 is multiple lines
310
311 * source/UserCommands.C (SetVersion): Convert to use Commands::Notice
312
313 * source/Commands.C (Notice): Send multiple NOTICEs when a message
314 is multiple lines
315
316 2005-06-25 Clinton Ebadi <clinton@unknownlamer.org>
317
318 * source/Main.C (real_main): Enable Guile debugging mode when
319 --debug is used
320
321 * source/Interp.C (interp_post_startup_helper): Return
322 SCM_UNSPECIFIED instead of 0
323
324 2005-06-24 Clinton Ebadi <clinton@unknownlamer.org>
325
326 * All: Updated FSF street address
327
328 * source/Commands.C (Msg): Move body of Say to an if inside of this
329 (Say): Just call Msg
330
331 * source/ScriptCommands.C (sendNotice): Returns error code instead
332 of just #t or #f
333
334 * source/Commands.C (Say): Check to make sure target is a channel
335 (Msg): Extended to send messages to channels
336
337 2005-06-23 Clinton Ebadi <clinton@unknownlamer.org>
338
339 * scripts/bot.scm: Added file ((bobotpp bot) module for other
340 modules to gain access to bobot++ interface)
341
342 * source/Commands.C (Notice): Commented out check/abort if target
343 is a channel (there doesn't seem to be a reason for this to not work)
344
345 * source/Interp.C (interp_init_helper): Register bot:notice with scheme
346
347 * bobot++.texinfo (High Level Message Functions): Document bot:notice
348
349 * source/Message.H: Added operator== to Message (tests for error
350 code equality)
351
352 * source/Commands.C: Removed message type macros
353
354 * source/Message.H: Moved message type macros to Message.H
355
356 * source/ScriptCommands.C (sendNotice): Implemented sendNotice
357
358 * source/ScriptCommands.H: Uncomment sendNotice
359
360 * source/Bot.C (waitForInput): Use %02d when formatting
361 Hooks::TIMER argument instead of %2d, and switch to snprintf to
362 enforce max length
363
364 * bobot++.texinfo (Hooks): Clarified intro text about hooks (order
365 of processing).
366
367 * source/Bot.C (run): Added call to Hooks::DISCONNECT
368 (hooks/disconnect) when the bot is disconnected from the server
369
370 * bobot++.texinfo: Applied documentation patch from Dale P. Smith
371 (Hook Types): Added hooks/disconnect argument
372
373 2005-06-06 Clinton Ebadi <clinton@unknownlamer.org>
374
375 * bobot++.texinfo: Change @vskip 0 to @vskip 0pt to make this work
376 again (thanks dsmith)
377
378 2005-06-01 Clinton Ebadi <clinton@unknownlamer.org>
379
380 * source/Interp.C (interp_init_helper): Added
381 bot:protection/[none|ban|kick|deop] constants to Scheme
382 (interp_init_helper): Added bot:aop/[yes|no] constants
383
384 2005-05-31 Clinton Ebadi <clinton@unknownlamer.org>
385
386 * configure.ac: Release Bobot++ 2.1.7
387 Changed version to 2.18.CVS
388
389 * source/UserList.C (save): Remove workaround for BUG #2
390
391 * source/Parser.C (parse001): make realNick lowercase when doing
392 the comparison to bot->nickName to prevent pushing a second copy
393 of the bot onto the userlist (closes BUG #2)
394
395 * source/Bot.C (Bot): cleaned up constructor
396 (waitForInput): replaced gh_list with scm_list_n
397
398 * source/UserList.C: Cleaned up some formatting
399
400 * source/Main.C: Formatted code more cleanly
401 (real_main): changed a few Strings to std::strings
402
403 * source/String.C (operator): Made index signed again, it's not
404 worth fixing this warning
405
406 * source/Bot.C: Add casts to make this compile with unsigned int
407 as operator[] in String
408
409 * source/String.C (operator): Made index unsigned
410
411 * source/Utils.C: Made a few things unsigned to kill warnings
412
413 * source/Socket.C (readLine): Made pos unsigned
414
415 * source/Bot.C (Bot): Fixed initializer list order to kill warnings
416
417 * source/BotInterp.C (RunTimers): Removed unused variable (Timer *t)
418
419 * source/StringTokenizer.C (count_tokens): Changed return type to
420 unsigned int
421 (more_tokens_p): Made counter unsigned
422
423 * source/StringTokenizer.H (class StringTokenizer): Made pos
424 std::string::size_type instead of int
425
426 * source/Commands.C (TBan): Returns Ok is the ban is done instead
427 of falling off the end (oops)
428
429 * source/BotInterp.H: Add general catch case (false)
430
431 2005-03-11 Clinton Ebadi <clinton@unknownlamer.org>
432
433 * configure.ac: Release 2.1.6
434 Changed version to 2.1.7CVS
435
436 2005-02-28 Clinton Ebadi <clinton@unknownlamer.org>
437
438 * source/Parser.C (parseLine): use map<>::find and an iterator to
439 find the IRC command instead of map<>::operator[] to avoid a
440 potential segfault
441
442 * source/Bot.C (waitForInput): Removed commented out code
443
444 * source/Socket.C (readLine): return String (buf.c_str ()) instead
445 of String (buf) so that only the buffer up to the first null is returned
446 (readLine): Added a comment explaining the usage of buf
447 (readLine): Changed type of length (std::string::size_type instead
448 of std::size_t)
449
450 * source/String.C: Reimplemented String on top of std::string to
451 fix a few bugs and potential memory leaks
452 (toLower): use Utils::to_lower
453 (toUpper): Use Utils::to_upper
454 (trim): Use Utils::trim_str
455
456 * source/String.H: removed srep, replaced it with a std::string
457 (my_string)
458
459 * source/Utils.C (to_upper): Applied patch from Jos Hulzink
460 <josh@stack.nl>
461 (trim_str): Appled patch from Jos Hulzink <josh@stack.nl> (fixes
462 counters and substr call)
463
464 * source/StringTokenizer.C (next_token): Applied patch from Jos
465 Hulzink <josh@stack.nl> (fixes substr call)
466 (rest): Applied patch from Jos Hulzink <josh@stack.nl> (fixes
467 substr call)
468
469 2005-02-27 Clinton Ebadi <clinton@unknownlamer.org>
470
471 * source/Bot.H (COPYRIGHT_STRING): Remove Michael Wilson because
472 he is a lazy bum and never submitted the String replacing patch
473
474 2005-01-23 Clinton Ebadi <clinton@unknownlamer.org>
475
476 * configure.ac: Remove CC++ test
477 Changed version to 2.1.6CVS (2.1.5 released)
478
479 * bobot++.texinfo: Updated copyright
480
481 2005-01-16 Clinton Ebadi <clinton@unknownlamer.org>
482
483 * TODO (General): Added TODO items
484 (2.2): Moved a few items here from 2.4
485
486 * README (NOTE): Mention boost requirement
487
488 2005-01-13 Clinton Ebadi <clinton@unknownlamer.org>
489
490 * ChangeLog Updated copryight
491
492 * source/User.H: Removed forward declaration of Utils
493
494 * source/Bot.H: Removed forward declaration of Utils
495
496 * source/ChannelList.H: Removed forward declaration of Utils
497
498 * source/UserListItem.H: Removed forward declaration of Utils
499
500 * source/Utils.H: Removed class Utils, replaced with a namspace
501 (it only contained static methods)
502
503 * source/Bot.H (COPYRIGHT_STRING): Added 2005 and Michael Wilson
504 (he is replacing String)
505
506 2005-01-12 Clinton Ebadi <clinton@unknownlamer.org>
507
508 * source/BotConfig.C (set_option_value): Put watcher calling
509 inside of if (cf_iter != end()) to fix a segfault (if the cf_iter
510 = end then there are no watchers since this is a new value and
511 references cf_iter->second segfaults)
512
513 * source/Utils.C (trim_str): Fixed bug (last non-space character
514 was being cut off)
515
516 * source/BotConfig.C (read_config): Made to use set_option_value
517 instead of manipulating options_db directly
518
519 * source/BotConfig.H (class BotConfig): Add set_option_value that
520 takes a t_value instead of t_value_list (most uss of
521 set_option_value will be to add a single value so this is very useful)
522
523 * source/BotConfig.C (set_option_value): Implemented
524
525 * source/UserList.C: Made to work with new Utils/StringTokenizer names
526
527 * source/UserCommands.C: Made to work with new
528 Utils/StringTokenizer names
529
530 * source/ShitList.C: Uses Utils.H now (Utils::trim_str & friends)
531
532 2005-01-11 Clinton Ebadi <clinton@unknownlamer.org>
533
534 * source/ShitList.C: Made to work with new StringTokenizer names
535
536 * source/ServerQueueItem.C: Made to work with new StringTokenizer names
537
538 * source/ServerQueue.C: Made to work with new Utils names
539
540 * source/ScriptCommands.C: Made work with new Utils names
541
542 * source/Person.C (getNick): Made work with new Utils names
543
544 * source/String.H: Added substr prototypes
545
546 * source/String.C (substr): Added substr as an alias of subString
547 (for compat with std::string before the transition)
548
549 * source/Parser.C: Made to work with new Utils/StringTokenizer names
550
551 * source/DCCParser.C: Made to work with new Utils names
552
553 * source/DCCChatConnection.C: Made to work new Utils names
554
555 * source/Commands.C: Made to work with new Utils names
556
557 * source/Channel.C: Made to work with new Utils names
558
559 * source/BotInterp.C: Made to work with new Utils
560
561 * source/Bot.C: Made to work with new Utils/StringTokenizer names
562
563 * source/String.C (operator=): Unremoved operator=(std::string)
564
565 * source/String.H: Unremoved operator=(std::string)
566
567 * source/BotConfig.C (read_config): Use Utils::trim_str
568
569 * source/String.C (trim): Fixed bug (p->s[i] == '\r', s/i/j/)
570
571 * source/Utils.C (trim_str): Implemented
572
573 * source/Utils.H: Added tim_str (replaces String::trim)
574
575 * source/BotConfig.C: Made everything work with new
576 StringTokenizer and Utils names
577
578 * source/Utils.H: Added to_lower
579 Added to_upper
580
581 * source/StringTokenizer.C (rest): uses std::isspace instead of
582 checking st[pos] against ' ' and '\t'
583
584 * source/StringTokenizer.H: Removed CamelCasing
585 Renamed hasMoreTokens to more_tokens_p
586
587 * source/StringTokenizer.C: Converted to use std::string
588
589 * source/StringTokenizer.H: Converted to use std::string
590
591 * source/String.C: Removed operator=(std::string)
592
593 * source/String.H: Removed operator=(std::string)
594
595 * source/Utils.C: Added copyright
596 Reformatted to match GNU coding standard more closely
597 Converted everything to use std::string
598 (get_nick): Renamed from getNick
599 (get_userhost): Renamed from getUserHost
600 (get_key): Renamed from getKey
601 (IP_p): Renamed from isIP
602 (make_wildcard): Renamed from makeWildcard
603 (channel_p): Renamed from isChannel
604 (wildcard_p): Renamed from isWildcard
605 (valid_channel_name_p): Renamed from isValidChannelName
606 (valid_nickname_p): Renamed from isValidNickName
607 (get_level): Renamed from getLevel
608 (str2time): Renamed from strToTime
609 (str2time): Fixed potential buffer overflow (num[512] => std::string)
610 (level2str): Renamed from levelToStr
611 (prot2str): Renamed from protToStr
612 (bool2str): Renamed from boolToStr
613 (long2str): Implemented
614 (scm2str): Renamed from scm2String
615 (str2scm): Renamed from string2SCM
616
617 * source/BotConfig.C: Reformatted to fit GNU coding style more closely
618
619 * source/Utils.H: Added long2str (long int -> std::string)
620
621 * source/String.H: Added 2003 copyright (the year I last modified
622 it in)
623
624 * source/String.C: Added 2002 copyright (the year I last modified
625 it in)
626
627 * source/Utils.H: Updated Copyright
628 s/String/std::string/g
629 Removed camel casing and is* = *_p
630 xToY = x2y
631
632 * source/BotConfig.C: Updated Copyright
633
634 * source/BotConfig.H: Updated copyright
635
636 2005-01-08 Clinton Ebadi <clinton@unknownlamer.org>
637
638 * source/BotConfig.C (set_option_value): Take care of the case
639 where key is not already in the db
640 (add_watcher): Implemented
641 (read_config): Removed ',' token parsing (not needed)
642
643 * configure.ac: Add AC_LANG([C++]) so we can check for C++ libs
644 AC_CHECK_LIB ccgnu2 (CommonC++2)
645
646 * README: Updated README (reformatted, adding info, etc.)
647
648 2005-01-07 Clinton Ebadi <clinton@unknownlamer.org>
649
650 * source/BotConfig.C (set_option_value): call watcher list
651 (run_fun_): Added to support watcher list calling
652
653 2005-01-06 Clinton Ebadi <clinton@unknownlamer.org>
654
655 * source/BotConfig.C (set_option_value): Fuck you STL
656 (push_back_): Reimplemented so that it doesn't need std::bind1st
657 because the STL is being stupid
658
659 2004-12-26 Clinton Ebadi <clinton@unknownlamer.org>
660
661 * source/BotConfig.C (read_config): Implemented properly
662 (get_option_values): Implemented properly
663 (set_config_file): Fixed
664
665 2004-07-10 Clinton Ebadi <clinton@unknownlamer.org>
666
667 * bobot++.texinfo (Built-In Commands): Added empty stubs to the
668 list of commands
669
670 2004-06-22 Clinton Ebadi <clinton@unknownlamer.org>
671
672 * source/BotConfig.C: New file (implementation of configuration database)
673
674 * source/BotConfig.H: New File (semi-generic configuration database)
675
676 2004-06-17 Clinton Ebadi <clinton@unknownlamer.org>
677
678 * bobot++.texinfo (Starting the Bot): New section
679
680 2004-06-14 Clinton Ebadi <clinton@unknownlamer.org>
681
682 * bobot++.texinfo (Protection): Added Section
683 (User Levels): Rewrote section to be useful
684 (bot.users): Added section
685
686 2004-06-12 Clinton Ebadi <clinton@unknownlamer.org>
687
688 * source/DCCChatConnection.C (connect): Checks to make sure the
689 person initiating a DCC CHAT with the bot is at least a FRIEND of
690 the bot.
691
692 * README: Fixed a typo
693
694 * scripts/bobot-utils.scm (ctcp-quote): Implemented ctcp-quote
695 (bot:ctcp-quote): Renamed ctcp-quote to bot:ctcp-quite (whoops)
696
697 2004-05-28 Clinton Ebadi <clinton@unknownlamer.org>
698
699 * bobot++.texinfo (bot.conf): Finished section
700 (server syntax): New section, documents the bot.conf SERVER syntax
701 (channel syntax): New section, documentes the bot.conf CHANNEL syntax
702
703 2004-05-13 Clinton Ebadi <clinton@unknownlamer.org>
704
705 * source/Main.C (real_main): std::exit instead of exit
706
707 2004-05-12 Clinton Ebadi <clinton@unknownlamer.org>
708
709 * source/DCCConnection.C (DCCConnection): Intialized `nuh' in the
710 constructor with `n' This should fix the segfaulting.
711
712 2004-01-28 Clinton Ebadi <clinton@unknownlamer.org>
713
714 * ChangeLog: Updated copyright notice
715
716 2004-01-09 Clinton Ebadi <clinton@unknownlamer.org>
717
718 * source/Interp.C (interp_init_helper): Register
719 bot:change-command-level
720
721 * source/ScriptCommands.C (ChangeCommandLevel): Added
722 ChangeCommandLevel to change the level a user needs to be to run a
723 command
724
725 * source/ScriptCommands.H: Added ChangeCommandLevel
726
727 2003-10-12 Clinton Ebadi <clinton@unknownlamer.org>
728
729 * source/String.H: Changed #define STRING_H to BSTRING_H
730
731 2003-08-04 Clinton Ebadi <clinton@unknownlamer.org>
732
733 * scripts/bobot-utils.scm (bot:sent-to-me?): New procedure, used
734 to see if a message was sent to the bot (this is better than
735 bot:match-to-me because the hook isn't invalidated when the bot's
736 nickname changes)
737
738 * source/DCCConnection.H: Added `nuh' back and added an
739 accessor (get_nuh)
740 Added setter `set_autoRemove(bool)'
741
742 * source/DCCConnection.H: Removed all friends
743 Added accessors (get_bot, get_lastSpoken, get_autoRemove; get_bot
744 reveals the pointer to the bot [PRIVATE POINTER] which probably
745 isn't so nice, but there isn't much to be done about it with the
746 current design of the bot)
747
748 * source/DCCChatConnection.H: Removed all friends
749
750 * source/DCCConnection.H: DCCConnection is now a pure virtual
751 class with the subclass DCCChatConnection
752
753 2003-07-29 Clinton Ebadi <clinton@unknownlamer.org>
754
755 * source/Socket.C (connect): log errors to the bot log instead of
756 printing to stderr
757
758 2003-07-23 Clinton Ebadi <clinton@unknownlamer.org>
759
760 * source/Parser.C (parseMessage): use the find method of std::map
761 to find the command to call instead of [] and then extract the
762 pointer to the userFunction from that if it exists. This appears
763 to fix the crash when one uses an undefined command followed by
764 any defined command.
765
766 2003-04-09 Clinton Ebadi <clinton@unknownlamer.org>
767
768 * source/Interp.C (interp_init_helper): Bind bot:setfloodrate to
769 ScriptCommands::SetFloodRate
770
771 * source/ScriptCommands.C (SetFloodRate): New Method: SetFloodRate
772
773 * source/Bot.C (init_user_functions): Make SETFLOODRATE available
774 to bot master
775
776 * source/Bot.H: Made MAX_MESSAGES writeable
777
778 * source/UserCommands.H: New method: SetFloodRate
779
780 * source/Commands.H: New method: SetFloodRate
781
782 2003-04-03 Clinton Ebadi <clinton@unknownlamer.org>
783
784 * configure.ac: Merged all AC_OUTPUTs at the end
785
786 2003-04-02 Clinton Ebadi <clinton@unknownlamer.org>
787
788 * scripts/bobot-utils.scm: Make exported symbols from
789 the-bot-module available in the guile-user module so that scripts
790 loaded with Interp::Load function.
791
792 2003-03-30 Clinton Ebadi <clinton@unknownlamer.org>
793
794 * scripts/bobot-utils.scm (bot:load-module): Loads a file from the
795 %bot:loadpath into its own module and returns that (unnamed) module
796 (bot:use-module): Calls bot:load-module and then adds the newly
797 loaded module to the (current-module)'s use-list
798
799 * source/Interp.C (interp_init_helper): New procedure to initialize
800 the-bot-module (this is the old Interp::Startup verbatim)
801 (interp_post_startup_helper): New procedure to export
802 the-bot-module from bot_module
803 (Startup): Now calls interp_init_helper and
804 interp_post_startup_helper to initalize the bot module system
805
806 * source/Interp.H: Added private variable bot_module to Interp
807
808 2002-11-04 Clinton Ebadi <clinton@unknownlamer.org>
809
810 * scripts/bobot-utils.scm: Added bot: to regex functions (yes,
811 this breaks existing scripts, this is the unstable tree after all)
812
813 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
814
815 * source/Mask.C (match): Made Mask::match case insensitive
816
817 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
818
819 * source/Interp.C (scm_apply_wrapper): turned off locking of
820 Interp::mutex to see if this makes the bot work again...and it
821 does!
822
823 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
824
825 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
826 everything to use aclocal/automake 1.6
827
828 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
829
830 * source/DCCPerson.H (class DCCPerson): Added
831 UserCommands::DCCList as a friend (friends are better than the old
832 DCC() function at least).
833
834 * source/DCCManager.H (class DCCManager): Added
835 UserCommands::DCCList as a friend
836
837 * source/Interp.H (class Interp): Made function scm_apply_wrapper
838 a friend so it can lock Interp::mutex
839
840 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
841 MULTITHREAD is defined (it is always defined when scripting is
842 enabled) so that Sockets can be made multithreaded using
843 CommonC++.
844
845 * source/DCCPerson.H: Removed DCC method and made Bot a friend
846 Made DCCManager a friend
847
848 * source/DCCManager.H (class DCCManager): Removed MAP() method
849 and made Bot a friend of DCCManager
850
851 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
852
853 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
854 bot:dcc-chat-send.
855
856 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
857 user!nick@host instead of the correct nick!user@host).
858
859 * source/Interp.C (Startup): Register bot:DCC-chat-send
860
861 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
862
863 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
864
865 * source/String.C (String): The std::string copy constructor now
866 extracts the c_str of the std::string and then takes the strlen of
867 that before copying it. This fixes a bug with DCC where if you did
868 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
869 something like that, depending on what the last message was
870 because Socket will insert a \0 into its semi-static buffer, so
871 the len of the String will not equal the strlen of its char*.
872
873 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
874
875 * source/DCCPerson.H: Removed destructor (I = idiot)
876
877 * source/DCCConnection.H: DCCManager is now a friend of
878 DCCConnection (ugh, the bot has way too many friends).
879
880 * source/DCCPerson.H: Added DCC member that returns a const
881 DCCConnection* (the dcc connection). This isn't saved anywhere
882 because when a DCCPerson is destroyed, its connection is also
883 destroyed.
884
885 * source/Bot.H: dccConnections is now a DCCManager
886
887 * source/DCCPerson.H: Added destructor
888 Added handleInput method
889
890 * source/DCCManager.C: New file
891 (addConnection): Wrote method, add a DCCConection to the manager
892
893 * source/DCCManager.H: New file
894
895 * source/Interp.C (Startup): Register bot:DCC-chat-send
896 (Startup): Removed sendDCCChatMessage stuff
897
898 * source/ScriptCommands.C (sendDCCChatMessage): New method:
899 sendDCCChatMessage (to, message) sends message to to.
900
901 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
902 one arg: from (user!nick@host).
903
904 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
905 two args: from (user!nick@host) and line
906
907 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
908
909 * source/Interp.C (Startup): Two new Scheme values:
910 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
911 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
912
913 * source/BotInterp.H: Added two new enum values to Hook:
914 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
915 chat message hooks
916
917 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
918
919 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
920 DCC! Ack, sockets take their arguments in network byte order so
921 there is no need to convert to host...now DCC _sort of_ works.
922
923 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
924
925 * source/UserList.C (save): Increment iterator twice to get around
926 bug (see BUGS #2)
927
928 * source/ServerQueue.C: Now sends SEND_* hooks instead of
929 triggered general hooks.
930
931 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
932 (* = the new SEND_ hooks, but lowercase).
933
934 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
935 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
936
937 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
938
939 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
940 logs again.
941
942 * source/Socket.C (readLine): Now uses a static std::string that
943 starts out with 512 chars. This will never need to be resized for
944 usualy IRC messages, but might be for DCC messages
945
946 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
947
948 * scripts/bobot-utils.scm (not-from-me): New syntax.
949
950 * source/ScriptCommands.C (AddHook): Now takes another optional
951 arg--name that will name the hook (see the hooks section in the
952 manual for what this does).
953
954 * source/BotInterp.H: Added name field to Hook
955
956 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
957
958 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
959 PRIVMSGes because the IRC server doesn't echo them back to the
960 bot. This could be useful for something (e.g. log script).
961
962 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
963
964 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
965 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
966 associated with the hook when Interp::Shutdown is called (bot exit).
967
968 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
969
970 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
971 hook is greater than or less than the other hook, only the
972 priority is considered. However, if both hooks have the same
973 priority, then the fallthru-ness is considered, with fallthru
974 hooks being greater than non-fallthru hooks.
975
976 * source/BotInterp.C (hptr_lt): Added this static function to be
977 used to sort the hooks list (now hooks should be sorted using
978 Hook's operator < instead of using pointer comparision, meaning
979 the new hook system will work correctly)
980
981 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
982 map because we don't need the result of the displays (this would
983 just be a list of #<undefined> values and is a waste of memory).
984
985 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
986
987 * source/Bot.C (Bot): userFunctions is now a map for efficiency
988 (worst case search is now NlogN instead of N). This improvement is
989 not as drastic as the one gained by making the Parser functions
990 list a map (because we don't scan this map for every message), but
991 it helps to clean up the code
992
993 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
994
995 * source/Parser.H: Removed userFunctionsStruct
996
997 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
998 as bot:send-CTCP for Scheme
999
1000 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
1001
1002 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
1003
1004 * source/ServerQueue.C (sendUser): Changed . . in USER command to
1005 0 * (which is the Right Way to because <mode> must be a number...)
1006
1007 * source/Parser.C (init): New method of Parse. This initalizes the
1008 functions map. functions replaces the old functions array, and
1009 should yield better performance (since the functions array had to
1010 be scanned for every incoming message)
1011
1012 * source/Parser.H: New member, functions (private)
1013
1014 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
1015
1016 * source/Interp.C (Startup): New symbols: bot:user-*
1017 [none|user|trusted|friend|master] are defined in Scheme as the
1018 different levels of the users.
1019 (Startup): All bot-* variables are now bot:*
1020
1021 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
1022
1023 * source/Bot.H: Made some variables private because they shouldn't
1024 be changed at runtime
1025
1026 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
1027 this out to see if it works and make it work)
1028
1029 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
1030 dir.
1031
1032 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
1033 scripts in the user scripts dir) that made bobot++ not able to
1034 load scripts from the user scripts dir
1035
1036 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
1037
1038 * source/BotInterp.C (RunHooks): Changed iterators to
1039 reverse_iterators because the hooks list is sorted in ascending
1040 order--higher priority and fallthrough hooks appear _after_ the
1041 lower priority and non-fallthrough hooks.
1042
1043 * source/Main.C (print_long_help): Added function
1044 (print_short_help): Renamed from printUsage
1045 (namespace): Most stuff in here is now defined in an anonymouse
1046 namespace so it doesn't have external linkage
1047 (real_main): Uses getopt_long instead of getopt. Added several
1048 command line arguments (bobotpp --help for a full list).
1049
1050 * scripts/bobot-utils.scm (bot-load): Function moved from
1051 bobot-scheme.scm
1052
1053 * source/Interp.C (Startup): Autoloads
1054 PREFIX/bobotpp/scripts/bobot-utils.scm now
1055 (Startup): New Scheme variable: bot-sys-scripts-dir (system
1056 scripts dir)
1057
1058 * source/bobot-scheme.scm.in: Removed
1059
1060 * source/Makefile.am: Removed bobot-scheme.scm compiliation
1061
1062 * configure.ac (PREFIX): configure.ac defined prefix now
1063
1064 * source/Main.C (real_main): Default configuration is now read
1065 from /etc/bobotpp/default
1066 * source/bobot-scheme.scm.in: Added file. This defines the
1067 'bot-load' procedure which will load a file from
1068 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
1069 script doesn't exist in the user script dir.
1070
1071 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
1072
1073 * bobot++.texinfo: Started docs (just a skeleton right now)
1074
1075 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
1076 args to set a hooks priority and whether or not it will
1077 fallthrough. These args are optional.
1078
1079 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
1080
1081 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
1082 (RunHooks): exec fallthrough hooks first.
1083
1084 * source/BotInterp.H: Changed Hooks to have priority
1085 Added fhooksMap to BotInterp (fallthrough)
1086
1087 * source/UserCommands.C (AddShit): Converted to use Commands
1088
1089 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
1090
1091 * source/Commands.C (AddUser): Fixed a one-off (function call was
1092 before a brace instead of after one) that caused a segfault when
1093 the user mask was a wildcard
1094
1095 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
1096
1097 * all files: Updated address of the FSF
1098
1099 * source/UserCommands.C (AddUser): Uses Commands now instead of
1100 manipulating the bot directly
1101
1102 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
1103
1104 * source/ScriptCommands.C (AddShit): Filled in function.
1105
1106 * source/Interp.C (Startup): Bind bot-adduser to
1107 ScriptCommands::AddUser instead of Action
1108 (Startup): Bind bot-addshit to ScriptCommands::AddShit
1109
1110 * source/ScriptCommands.C (AddUser): Filled in function
1111
1112 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
1113 would have caused problems if you used more than one server
1114
1115 * source/Parser.H: Changed const char* to String in userFunctionStruct
1116
1117 * source/String.H: Added std::string compatibility members
1118
1119 * configure.ac: You can now disable Crypt and scripting
1120
1121 * source/*: Added #include "config.h" where needed
1122
1123 * configure.ac: Added AM_CONFIG_HEADER
1124
1125 * config.h.in: added file
1126
1127 * source/Queue.C: Didn't notice iostream.h here! Fixed
1128
1129
1130 Copyright 2002,2003,2004,2005 Clinton Ebadi
1131 Copying and distribution of this file, with or without modification, are
1132 permitted provided the copyright notice and this notice are preserved.