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