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