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