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