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