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