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