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