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