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