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