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