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