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