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