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