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