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