[project @ 2002-11-03 22:42:59 by unknown_lamer]
[clinton/bobotpp.git] / ChangeLog
1 2002-11-03 Clinton Ebadi <clinton@unknownlamer.org>
2
3 * source/Mask.C (match): Made Mask::match case insensitive
4
5 2002-09-23 Clinton Ebadi <clinton@unknownlamer.org>
6
7 * source/Interp.C (scm_apply_wrapper): turned off locking of
8 Interp::mutex to see if this makes the bot work again...and it
9 does!
10
11 2002-09-07 Clinton Ebadi <clinton@unknownlamer.org>
12
13 * configure.ac: Removed arguments to AM_INIT_AUTOMAKE and updated
14 everything to use aclocal/automake 1.6
15
16 2002-08-27 Clinton Ebadi <clinton@unknownlamer.org>
17
18 * source/DCCPerson.H (class DCCPerson): Added
19 UserCommands::DCCList as a friend (friends are better than the old
20 DCC() function at least).
21
22 * source/DCCManager.H (class DCCManager): Added
23 UserCommands::DCCList as a friend
24
25 * source/Interp.H (class Interp): Made function scm_apply_wrapper
26 a friend so it can lock Interp::mutex
27
28 * source/Interp.C (scm_apply_wrapper): Lock Interp::mutex if
29 MULTITHREAD is defined (it is always defined when scripting is
30 enabled) so that Sockets can be made multithreaded using
31 CommonC++.
32
33 * source/DCCPerson.H: Removed DCC method and made Bot a friend
34 Made DCCManager a friend
35
36 * source/DCCManager.H (class DCCManager): Removed MAP() method
37 and made Bot a friend of DCCManager
38
39 2002-08-18 Clinton Ebadi <clinton@unknownlamer.org>
40
41 * source/Interp.C (Startup): Renamed bot:DCC-chat-send to
42 bot:dcc-chat-send.
43
44 * bobot++.texinfo (Hook Types): Fixed a typo (I wrote
45 user!nick@host instead of the correct nick!user@host).
46
47 * source/Interp.C (Startup): Register bot:DCC-chat-send
48
49 * source/ScriptCommands.C (sendDCCChatMessage): Added method again
50
51 2002-08-08 Clinton Ebadi <clinton@unknownlamer.org>
52
53 * source/String.C (String): The std::string copy constructor now
54 extracts the c_str of the std::string and then takes the strlen of
55 that before copying it. This fixes a bug with DCC where if you did
56 e.g. "!help" the bot would reply with "No TOPIC PRIVMSG FOUND" or
57 something like that, depending on what the last message was
58 because Socket will insert a \0 into its semi-static buffer, so
59 the len of the String will not equal the strlen of its char*.
60
61 2002-08-07 Clinton Ebadi <clinton@unknownlamer.org>
62
63 * source/DCCPerson.H: Removed destructor (I = idiot)
64
65 * source/DCCConnection.H: DCCManager is now a friend of
66 DCCConnection (ugh, the bot has way too many friends).
67
68 * source/DCCPerson.H: Added DCC member that returns a const
69 DCCConnection* (the dcc connection). This isn't saved anywhere
70 because when a DCCPerson is destroyed, its connection is also
71 destroyed.
72
73 * source/Bot.H: dccConnections is now a DCCManager
74
75 * source/DCCPerson.H: Added destructor
76 Added handleInput method
77
78 * source/DCCManager.C: New file
79 (addConnection): Wrote method, add a DCCConection to the manager
80
81 * source/DCCManager.H: New file
82
83 * source/Interp.C (Startup): Register bot:DCC-chat-send
84 (Startup): Removed sendDCCChatMessage stuff
85
86 * source/ScriptCommands.C (sendDCCChatMessage): New method:
87 sendDCCChatMessage (to, message) sends message to to.
88
89 * source/DCCConnection.C (connect): Run DCC_CHAT_BEGIN hook with
90 one arg: from (user!nick@host).
91
92 * source/DCCParser.C (parseLine): Runs DCC_CHAT_MESSAGE hook with
93 two args: from (user!nick@host) and line
94
95 2002-08-06 Clinton Ebadi <clinton@unknownlamer.org>
96
97 * source/Interp.C (Startup): Two new Scheme values:
98 hooks/dcc/chat-begin and hooks/dcc/chat-message for the
99 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE hooks.
100
101 * source/BotInterp.H: Added two new enum values to Hook:
102 DCC_CHAT_BEGIN and DCC_CHAT_MESSAGE for the DCC chat start and DCC
103 chat message hooks
104
105 2002-08-05 Clinton Ebadi <clinton@unknownlamer.org>
106
107 * source/Parser.C (parseCTCP): Removed call to htonl and fixed
108 DCC! Ack, sockets take their arguments in network byte order so
109 there is no need to convert to host...now DCC _sort of_ works.
110
111 2002-08-04 Clinton Ebadi <clinton@unknownlamer.org>
112
113 * source/UserList.C (save): Increment iterator twice to get around
114 bug (see BUGS #2)
115
116 * source/ServerQueue.C: Now sends SEND_* hooks instead of
117 triggered general hooks.
118
119 * source/Interp.C (Startup): New scheme side defines: hooks/send/*
120 (* = the new SEND_ hooks, but lowercase).
121
122 * source/BotInterp.H: New hook types (SEND_..., ... = ACTION,
123 CTCP, PUBLIC, MESSAGE). These are triggered on send messages.
124
125 2002-08-01 Clinton Ebadi <clinton@unknownlamer.org>
126
127 * source/Bot.C (set_log_file): Oops! Fixed logging. Now the bot
128 logs again.
129
130 * source/Socket.C (readLine): Now uses a static std::string that
131 starts out with 512 chars. This will never need to be resized for
132 usualy IRC messages, but might be for DCC messages
133
134 2002-07-31 Clinton Ebadi <clinton@unknownlamer.org>
135
136 * scripts/bobot-utils.scm (not-from-me): New syntax.
137
138 * source/ScriptCommands.C (AddHook): Now takes another optional
139 arg--name that will name the hook (see the hooks section in the
140 manual for what this does).
141
142 * source/BotInterp.H: Added name field to Hook
143
144 2002-07-29 Clinton Ebadi <clinton@unknownlamer.org>
145
146 * source/ServerQueue.C (sendPrivmsg): Now calls hooks on own
147 PRIVMSGes because the IRC server doesn't echo them back to the
148 bot. This could be useful for something (e.g. log script).
149
150 2002-07-27 Clinton Ebadi <clinton@unknownlamer.org>
151
152 * source/Interp.C (Shutdown): Runs bot:exit-hook hooks
153 (Startup): New var for Scheme: bot:exit-hook. Calls the thunks
154 associated with the hook when Interp::Shutdown is called (bot exit).
155
156 2002-07-23 Clinton Ebadi <clinton@unknownlamer.org>
157
158 * source/BotInterp.H (Hook<): Changed behavior of Hook's <. If a
159 hook is greater than or less than the other hook, only the
160 priority is considered. However, if both hooks have the same
161 priority, then the fallthru-ness is considered, with fallthru
162 hooks being greater than non-fallthru hooks.
163
164 * source/BotInterp.C (hptr_lt): Added this static function to be
165 used to sort the hooks list (now hooks should be sorted using
166 Hook's operator < instead of using pointer comparision, meaning
167 the new hook system will work correctly)
168
169 * scripts/bobot-utils.scm: Make bot:log use for-each instead of
170 map because we don't need the result of the displays (this would
171 just be a list of #<undefined> values and is a waste of memory).
172
173 2002-07-13 Clinton Ebadi <clinton@unknownlamer.org>
174
175 * source/Bot.C (Bot): userFunctions is now a map for efficiency
176 (worst case search is now NlogN instead of N). This improvement is
177 not as drastic as the one gained by making the Parser functions
178 list a map (because we don't scan this map for every message), but
179 it helps to clean up the code
180
181 2002-07-12 Clinton Ebadi <clinton@unknownlamer.org>
182
183 * source/Parser.H: Removed userFunctionsStruct
184
185 * source/Interp.C (Startup): ScriptCommands::sendCTCP registered
186 as bot:send-CTCP for Scheme
187
188 * source/ScriptCommands.C (sendCTCP): Wrote sendCTCP
189
190 2002-07-11 Clinton Ebadi <clinton@unknownlamer.org>
191
192 * source/ServerQueue.C (sendUser): Changed . . in USER command to
193 0 * (which is the Right Way to because <mode> must be a number...)
194
195 * source/Parser.C (init): New method of Parse. This initalizes the
196 functions map. functions replaces the old functions array, and
197 should yield better performance (since the functions array had to
198 be scanned for every incoming message)
199
200 * source/Parser.H: New member, functions (private)
201
202 2002-07-10 Clinton Ebadi <clinton@unknownlamer.org>
203
204 * source/Interp.C (Startup): New symbols: bot:user-*
205 [none|user|trusted|friend|master] are defined in Scheme as the
206 different levels of the users.
207 (Startup): All bot-* variables are now bot:*
208
209 2002-07-09 Clinton Ebadi <clinton@unknownlamer.org>
210
211 * source/Bot.H: Made some variables private because they shouldn't
212 be changed at runtime
213
214 * source/Parser.C (parseCTCP): Reneabled DCC CHAT (I want to test
215 this out to see if it works and make it work)
216
217 * source/Bot.C (Bot::Bot): New var: logs_dir. Set to the log file
218 dir.
219
220 * scripts/bobot-utils.scm: Fixed a typo (I forgot the / after
221 scripts in the user scripts dir) that made bobot++ not able to
222 load scripts from the user scripts dir
223
224 2002-07-08 Clinton Ebadi <clinton@unknownlamer.org>
225
226 * source/BotInterp.C (RunHooks): Changed iterators to
227 reverse_iterators because the hooks list is sorted in ascending
228 order--higher priority and fallthrough hooks appear _after_ the
229 lower priority and non-fallthrough hooks.
230
231 * source/Main.C (print_long_help): Added function
232 (print_short_help): Renamed from printUsage
233 (namespace): Most stuff in here is now defined in an anonymouse
234 namespace so it doesn't have external linkage
235 (real_main): Uses getopt_long instead of getopt. Added several
236 command line arguments (bobotpp --help for a full list).
237
238 * scripts/bobot-utils.scm (bot-load): Function moved from
239 bobot-scheme.scm
240
241 * source/Interp.C (Startup): Autoloads
242 PREFIX/bobotpp/scripts/bobot-utils.scm now
243 (Startup): New Scheme variable: bot-sys-scripts-dir (system
244 scripts dir)
245
246 * source/bobot-scheme.scm.in: Removed
247
248 * source/Makefile.am: Removed bobot-scheme.scm compiliation
249
250 * configure.ac (PREFIX): configure.ac defined prefix now
251
252 * source/Main.C (real_main): Default configuration is now read
253 from /etc/bobotpp/default
254 * source/bobot-scheme.scm.in: Added file. This defines the
255 'bot-load' procedure which will load a file from
256 $HOME/.bobotpp/scripts/ or @datadir@/bobotpp/scripts/ if the
257 script doesn't exist in the user script dir.
258
259 2002-07-01 Clinton Ebadi <clinton@unknownlamer.org>
260
261 * bobot++.texinfo: Started docs (just a skeleton right now)
262
263 * source/ScriptCommands.C (AddHook): Now takes pri and fall opt
264 args to set a hooks priority and whether or not it will
265 fallthrough. These args are optional.
266
267 * source/Interp.C (Startup): addhook now takes 3 req and 2 opt args
268
269 * source/BotInterp.C (AddHook): Now uses priority and fallthrough
270 (RunHooks): exec fallthrough hooks first.
271
272 * source/BotInterp.H: Changed Hooks to have priority
273 Added fhooksMap to BotInterp (fallthrough)
274
275 * source/UserCommands.C (AddShit): Converted to use Commands
276
277 2002-06-21 Clinton Ebadi <clinton@unknownlamer.org>
278
279 * source/Commands.C (AddUser): Fixed a one-off (function call was
280 before a brace instead of after one) that caused a segfault when
281 the user mask was a wildcard
282
283 2002-06-20 Clinton Ebadi <clinton@unknownlamer.org>
284
285 * all files: Updated address of the FSF
286
287 * source/UserCommands.C (AddUser): Uses Commands now instead of
288 manipulating the bot directly
289
290 2002-06-18 Clinton Ebadi <clinton@unknownlamer.org>
291
292 * source/ScriptCommands.C (AddShit): Filled in function.
293
294 * source/Interp.C (Startup): Bind bot-adduser to
295 ScriptCommands::AddUser instead of Action
296 (Startup): Bind bot-addshit to ScriptCommands::AddShit
297
298 * source/ScriptCommands.C (AddUser): Filled in function
299
300 * source/ServerList.C (delServer): Changed (n - 1) to n...n-1
301 would have caused problems if you used more than one server
302
303 * source/Parser.H: Changed const char* to String in userFunctionStruct
304
305 * source/String.H: Added std::string compatibility members
306
307 * configure.ac: You can now disable Crypt and scripting
308
309 * source/*: Added #include "config.h" where needed
310
311 * configure.ac: Added AM_CONFIG_HEADER
312
313 * config.h.in: added file
314
315 * source/Queue.C: Didn't notice iostream.h here! Fixed
316
317
318 Copyright 2002 Clinton Ebadi
319 Copying and distribution of this file, with or without modification, are
320 permitted provided the copyright notice and this notice are preserved.