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