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