]> jfr.im git - irc/irssi/irssi.git/blame - TODO
Merge pull request #1447 from ailin-nemui/signalsfile-fix
[irc/irssi/irssi.git] / TODO
CommitLineData
da1f993e
EG
119:36 [IRCNet] [muzzy] more bugs in irssi, apparently the new version: foo splits out,
2 bar joins, bar changes his nick to foo, foo splits again ->
3 Glib warning "is already in split list (how?)" .. :)
422:51 [IRCNet] [zhafte] irssi bugs if you put ACT to the right, or maybe it is my terminal?
522:52 [IRCNet] [zhafte] the numbers tend to go on top of eachother
d4c46337 6
74cdeb0a
TS
702:46 <@fuchs> cras, /server foonet.foo.xy and (recognizing it doesn't connect
8 fast enough), and so doing /server barnet.foo.xy (both in the
9 same chatnet) makes irssi joining the net but not rejoining the
10 channels
11
12
74cdeb0a
TS
1321:55 <@L> 17:04.11 <L> /eval /last quit;/clear;/sb goto 10:00;/last -clear;/sb end
1421:55 <@L> 17:04.27 <L> wait after it scrolls and press page up :)
1521:55 <@L> 17:04.48 <L> oh, you can make Irssi behave correctly with /clear
16 again
17
be82733a
TS
1820:45 < Juerd> 19:44 -!- Irssi: critical file channels.c: line 122
19 (channel_find): assertion
2020:45 < Juerd> `name != NULL' failed.
be82733a
TS
2120:45 < Juerd> this happens three times
2220:46 < Juerd> and it happens in a _query_
2320:47 <@Juerd> cras: for some reason irssi doesn't know this happens in a
24 query, and displays "< Juerd:> foo" in the status window
be82733a
TS
2504.06.2002 08:54 #irssi: <@Garion> cras: i've seen it several times now - a
26 line of 79 or 80 chars (my win is 80 wide)
27 which has an empty line below it, and that
28 line is not refreshed when I switch to the
29 window with that line in it, thus keeping 1
30 line from the old window in the current
31 window. Very confusing
be82733a 32
dd05ac73
TS
3316:39 <@Qrczak> cras: I'm not sure how exactly to reproduce it but it happens
34 often. When I jump to the window with a query using Alt-a
35 (after the other person said something), and close the window
36 (being brought to the last used window), and don't switch
37 windows, and then that person says something again, I'm brought
38 to the new query window automatically (that's of course bad).
39
23459ac9
EG
40 - import libsoup GnuTLS driver
41 http://svn.gnome.org/viewvc/libsoup/trunk/libsoup/soup-gnutls.c?view=log
d42073c5
EG
42 - lastlog, ignore, hilight and sb levelclear take a list of levels
43 argument in different ways, a uniform way would be better.
da1f993e
EG
44 - /exec - -out cat file does not send the whole file
45 - %n%_ won't show at lastlog..
46 - use_status_window, use_msgs_window should work instantly..
da1f993e
EG
47 - /set show_server_tags or something to always show (combine with hide_server_tagsin ?)..
48 - /SBAR topic placement bottom won't work??..
49 - /op * complaining could be better than "not a good idea"..
50 - how did tab completion complete your own nick..?
da1f993e
EG
51 - /win hide could work even though there are sticky things in that window..
52 - /window server -sticky windows doesn't always realize when a server connects?..
53 - tab completion doesn't work properly if I add utf8 things?..
54 - utf8-texts tend to bug in statusbar (prompt)..
55 - if /set reuse_unused_windows off, and the window seems to be empty,
56 and there would be only one of them it could still be used (?)..
1bde26eb 57 - /foreach server /disconnect $tag n8 does not work
1bde26eb
EG
58 - /whowas server nick does not work
59 - /msg nick@server or nick%host is fully treated as nickname (log, query)
60 - max_whois won't stay with reconnects?
61 - separate format for privmsg/notice massmessages (anything non-yournick)
62 - set TOS field for all connections (DCC especially)
63 - "show statusbar in empty windows" flag?
64 - statusbar_item_redraw() should just set the size as dirty and calculate
65 it only when really needed.
66 - possible to cache sbar_item->size when nothing else has changed in sbar?
67 ie. mostly when redrawing.
68 - /msg @#chan<tab>
dd05ac73 69 - /SB GOTO -<days> <ts>
1bde26eb
EG
70 - /query -immortal so autoclose_query wouldn't touch them
71 - autoclose_query is also closing (and finishing) dcc chats (bug #59 ?)
dd05ac73
TS
72 - write about %[-s] etc. to default.theme
73 - away handling is a bit buggy. you do /away;/away reason, irssi remembers
74 the away reason only until it receives "you're no longer away" from the
75 first command.. setting it back to away has then lost the reason.
dd05ac73 76 - nick_ nick- _nick nick2 nick3 ...
dd05ac73 77 - /SAVE -all?
54e184dc
TS
78 - /STATUSBAR xx ENABLE|DISABLE recreates all statusbars which is a bit
79 annoying because some scripts want to do it and input line is cleared
80 because of this..
54e184dc
TS
81 - /SET disconnect_timeout - default 2min, 0 = immediately
82 - reconnecting messages are a bit confusing. it prints "removed reconnection"
83 to the server which it's connecting to next.. maybe the whole reconnecting
84 thing should work so that the record stays there until it's connected
85 successfully.
1bde26eb
EG
86 - /set beep_msg_level hilight won't work if I have /hilight -word
87 - /hilight -priority is broken
1bde26eb 88 - move /SET hilight_*color to theme
54e184dc
TS
89 - /ignore, /hilight and /lastlog could complain immediately if used
90 regexp is broken. /hilight list could show also if it's broken like
91 /ignore does.
92
7bdd3beb
TS
93 - /UPGRADE:
94 - support DCCs
7bdd3beb
TS
95 - rewrite to work by fork()ing a new process and transfer file handles
96 with unix sockets. this would allow the scrollback buffers to be
97 transferred with them as well.
98 - current window layout needs to transferred
99 - reconnections aren't transferred(?)
100
101 - Logging:
7bdd3beb
TS
102 - /LOG OPEN -targets *!*cras@*.fi
103 - /SET autolog -> /LOG OPEN -targets * (internally, at least)
104 - /LOG OPEN shouldn't really open the file until first line is
105 written in it
7bdd3beb
TS
106 - autoclosing logs doesn't work too well. Problems are:
107 - after certain inactivity private message logs should be closed
108 - but DCC chats shouldn't be closed until the chat itself is closed
109 - which we can't know really currently, since they don't need
110 to be in queries
74cdeb0a 111 - channels should be closed when they're left (they are now, but)
7bdd3beb
TS
112 - /WINDOW CLOSE shouldn't close it immediately, since we'll still
113 receive at least the PART message
114 - so, log items should know more about what they are exactly, and when
115 they should be closed. private messages could have the same timeout
116 as now, time_t closetime field updated every time msg is received.
117 channels could do the same when receiving "window item destroy" signal,
118 except with a small timeout. DCC chats are more problematic...
119 - support for mirc/ansi color logging
120 - people want to show ignored stuff in logs.. how?
121 - private messages could show mirc-style "Session Ident: nick (host)"
122 which would update when nick's host changes. Then you wouldn't need to
123 print the host before each msg.
bd5f40a1 124 - support for logging channel messages from specific people
7bdd3beb
TS
125
126 - Awaylogs:
127 - either fully support logging only in servers you're away, or change the
128 awaylog to open immediately after /AWAY command, not based on any
129 away replies from server. Maybe the later would be better, since you
130 would want to set yourself away when connections to all servers were
131 disconnected at the time.. Maybe /AWAY should update status in
132 reconnection records as well?..
133 - /SET awaylog_auto_delete, after setting yourself unaway
134 - support for using strftime() formats (and $tag etc). only problem with
135 this is that all the different awaylogs would need to be tracked and
136 /CATed when setting yourself unaway
dd05ac73
TS
137 - /AWAYLOG could show the current awaylog and optionally reset it
138 - The channel name should be optional there
d42073c5 139 - after /upgrade when being away the awaylog is not being written to.
7bdd3beb
TS
140
141 - Window item placing:
142 - !channel vs. !12345channel. it's layout saved with full name, but joined
143 with either one
144 - when dcc chat is accepted and query exists from the same nick, replace
145 the query window with the dcc chat window.
bd5f40a1
TS
146 - closed DCC chats should add temporary window bind to the dcc chat so
147 future chats for same nick would use the same window
7bdd3beb
TS
148
149 - DCC
150 - /DCC SEND wildcard support
151 - /DCC GET -4 / -6 with autodetection
152 - When we receive a DCC SEND request, irssi could warn if the file
153 already exists
154 - show estimated time left and kB/s in /DCC list.
155 - implement requesting files with DCC GET from remote client for dcc file
156 servers. good for people behind firewalls. Does this feature exist
157 in other clients, or should I create DCC REQUEST? Same for DCC CHAT..
158 Maybe it could be just that the port was specified as 0, so the other
159 side would know that it needs to be the one to do listening.
160 - /SET dcc_autoresume ON, and sending the same file again while it's
161 already being downloaded doesn't work too well.. Even autorename doesn't
162 work.
163 - With fast DCC SENDs (90kB/s, FreeBSD) typing get laggy (really?)
164 - /DCC CLOSE #, /DCC would print the IDs
bd5f40a1
TS
165 - /SET dcc_use_proxy to use IRC proxy for DCC connects as well
166 - support for special vars in /SET dcc_download_path, so $N could be used
be82733a
TS
167 - No way to autoclose dcc chat windows which have been closed by another
168 side.
7bdd3beb
TS
169
170 - Generic chat commands:
171 - /MSG /CTCP /ACTION =dcc_chat,#channel
172 - /ACTION -ircnet with good tab support like in /MSG
173 - -nick -channel parameters to /ACTION
174 - /MSG a,b,#c,#d - it should print the message to #c and #d channel
175 windows and show only "a,b" as target when printing it to msg window..
176 Or if autoquery is set, it should print them to those windows. Hmm.
177 maybe some multipeople query support? :) /query nick1,nick2 and sending
178 text there would send it to both. Seems to work already but receiving
179 messages from either nick1 or nick2 don't go to that window..
bd5f40a1 180 - /BAN: setting of what netmask to use for banning with IPv6 addresses
7bdd3beb
TS
181
182 - Netsplits
183 - BUG: said "+1 more", while the /SETs to control that were set properly,
184 with one guy it only said that +1 more..
185 - BUG: netsplit quit isn't printed if quit -> join -> quit -> join
186 happens fast (really?)
187 - maybe the "+x more" should be configured in theme file instead in
188 future with the embedded scripting.. At least I'd want to print all
189 the splitted nicks in log files.
190 - per-window listing of splitted servers, it looks very stupid when
191 you see 4 lines of servers splitting in each window but only a few
192 nicks after them.
193 - per-window listing of splitted nicks, so the split messages isn't shown
194 multiple times for each channel with possibly same nicks
195 - /NETSPLIT <server>|<#channel>|<nick wildcard>
196 - SERVERMODE +ov nick nick is shown instead of just Netjoin @nick because
197 code is stupid. fixed in irssi-rewrite..
bd5f40a1 198 - show in query windows
7bdd3beb
TS
199
200 - Crashes:
7bdd3beb 201 - <dg> i've managed to reproduce the bug, if i make three split windows (/window show 3..5), then set the windows to not be sticky and go to one of the windows, then alt+number to another window then go back the other window the display prints two windows in the same window
006add08
EG
202 - the old irssi's /upgrades to the new, before it changed to /set autolog_path
203 $1 and crashed?..
204 - active_mainwin was somehow NULL and crashed.. /window kill did it,
205 probably something to do with window_close() switching to the same
206 hidden window inside the split window, which I was about to kill
207 anyways because it wasn't sticky..
7bdd3beb
TS
208
209 - Scripts:
210 - print whois in active window
211 - some script to handle ctcp floods, like doing /IGNORE * CTCPS when it
212 happens.
213 - move into scripts:
214 - /SET timestamp_timeout
006add08 215 - /MSG completion list should be modifiable from scripts
7bdd3beb
TS
216 - script to remove nick from list after /IGNORE nick
217 - nick completion list should be modifyable afterwards:
218 - /SET completion_nicks_lowercase (remove from irssi)
219 - /SET completion_nicks_capitalize
220 - /SET completion_nicks_strip (keep only alphanumeric chars)
221 - irchat-like JOIN/PART/QUIT combiner (QUIT: nick1, nick2, nick3), would
222 require the line replacing work properly which it doesn't..
223
224 - Irssi proxy:
225 - doesn't propagate your own nickchanges to other clients
dd05ac73
TS
226 - list sessions, kill them
227 - /set irssi_proxy_ips <allow connections only from specified IPs>
7bdd3beb
TS
228
229 - Misc IRC related things:
230 - support for mode +q in dancer - also same as +b %xxx modes..
7bdd3beb
TS
231 - /BAN -ip, -time [<time>] (/ALIAS knockout?)
232 - /KICKBAN to support same options than /BAN (would /ALIAS kickban work?)
233 - ban list prints "x seconds ago" .. should be x days, mins, hours, ..
234
bd5f40a1 235 - Windows:
3c2347b1 236 - /WINDOW SIZE -sticky, so f.e. /WINDOW BALANCE wouldn't affect it.
3c2347b1
TS
237 - Check that /LAYOUT SAVE works properly with all the different /SETs,
238 like reuse_unsued_windows, windows_auto_renumber and autoclose_windows.
239 What should it do if some channel is /PARTed with autoclose_windows
240 set?..
7bdd3beb
TS
241 - /LAYOUT SAVE should ask if we want to save those window items that
242 are "bound sticky" but of which server is currently not connected.
3c2347b1
TS
243 - /WINDOW scrollback_lines /WINDOW scrollback_hours
244 - Optionally always start the lines from bottom of the screen when
245 screen is empty (how would scrolling work?)
3c2347b1 246 - Vertically split windows
bd5f40a1
TS
247 - /SET use_msgs_window and /SET use_status_window should take effect
248 immediately
249 - /WINDOW notify_level - would specify what window activity will be
250 shown for the window
251 - Some sort of autobalancing for split windows after terminal resize,
252 maybe with window-specific options that "this window is n lines",
253 "this is at least n% of available space", etc.
3c2347b1
TS
254
255 - Keyboard handling:
3c2347b1
TS
256 - Some kind of state support for it, so it would be possible to make
257 support for vi keys easily.
258 - Editor-like (or bash-like) line editor - it would wrap to next line
259 instead of scrolling.
5b41c7f7
EG
260 - When pasting text, irssi could send some signal that sends the pasted
261 lines in GList which signal handlers could modify.
3c2347b1
TS
262 - Already existing / at start of line handler should use this
263 - Automatically remove empty space at the start/end of lines,
264 from start of line it would work so that if each line begins with
265 4 spaces but some more, it would only remove those 4 spaces from
266 each so pasting code wouldn't mess up indents etc.
267 - Skip all autoreplaces and completions, so that f.e. tabs are
bd5f40a1 268 printed as-is (a few /BINDs would do this but...)
3c2347b1 269 - Should empty lines be pasted too? Maybe optionally
7bdd3beb 270 - /BIND -askkey command
006add08 271 - /BIND -delete should be saved in config
7bdd3beb 272 - ^W (and some others) don't update cut buffer.
c2b8d150 273 - default binds: M-d, M-y
7bdd3beb
TS
274 - /PASSWORD command that asks you to type the password to entry line and
275 would hide it with asterisks, good if people spy on you :)
276 - ^R-like history search
dd05ac73
TS
277 - Key to execute the command, but not place it in history
278 - Key to remove active entry from command history
74cdeb0a 279 - Optionally save command history between restarts
006add08 280 - clear_history
3c2347b1
TS
281
282 - Notify list:
7bdd3beb
TS
283 - showing who's online and who's offline doesn't work properly.
284 - adding/removing people in notify list don't show in /NOTIFY immediately
285 - when someone in notify list joins, should it be placed to start of
286 /MSG completion list?
3c2347b1
TS
287 - /NOTIFY -away and -idle: support for wildcards in nicks (requires of
288 course that we're in same channel as nick)
289 - Automatically add queried nicks to notify list temporarily .. display
290 the notifys for the nick in the query window
291 - /NOTIFY -once - notify only once when the user comes to IRC, forget
292 this after it.
293 - /NOTIFY -comment xxx - add a comment to notify. print the comment when
294 user comes to irc.
295 - "Should we check people in notify list when you're away" option
bd5f40a1 296 - use /WATCH instead of /ISON in servers that support it
dd05ac73 297 - Show when the nick was last seen
3c2347b1 298
7bdd3beb 299 - Ignores:
7bdd3beb
TS
300 - /IGNORE <nick> -> use hostmasking (related to channel syncing problem,
301 see "bigger code changes") with support for -type and /SET ignore_type
302 - /IGNORE -strip -pattern away * actions ..
303 - can't have multiple ignore -patterns with same nick
304 - /ignore -activity .. would ignore it just in window activity list,
305 not hide the text.
306 - The nick cache stuff just made it slower. Remove it or figure out how
307 it could be faster.
54e184dc 308 - combined ignore/hilight thingy, see hilights
7bdd3beb
TS
309
310 - Hilights:
311 - /HILIGHT list doesn't print several options. Maybe some generic
312 function which could be used for printing those options for all these
313 /IRCNET, /SERVER ADD, etc. commands.
314 - /HILIGHT -mask <mask> <word>: not possible use both.
315 - case sensitive hilight checking.
316 - ignore coloring in the words it matches, so eg. /hilight foo would
317 match to f^Bo^Bo
318 - BUG: it STILL sometimes creates hilight activity while there's no
319 hilights, around mode changes (haven't heard for a while though,
320 maybe it is anyway fixed? :)
321 - change the colors of both the nick and the matched word.
322 - /SET hide_text_style still breaks /HILIGHT -words
323 - even if hilight_color is "", %n is printed after hilighted text.
324 - /hilight -actcolor %M -color %w -regexp -level publics
325 -channels #channel1,#channel2 .*
326 removes the bold from /me actions of other users
327 - people want to hilight their own nicks everywhere, eg. /HILIGHT $N
328 - automatic nick hilighting at beginning of line should be optional,
329 like some people would want -word hilighting in it..
bd5f40a1 330 - exceptions
54e184dc
TS
331 - Merged ignores/hilights thingy and maybe even something others ..
332 some first-match-wins table where you could easily add/move stuff.
7bdd3beb
TS
333
334 - Scrollback:
3c2347b1
TS
335 - Optionally show a "bookmark" (line mark actually, a line full of '-'
336 chars) in a window. It would be displayed at the position where you
337 were when the window was active last time. /MARK command to force
338 updating it to bottom of screen in active window.
3c2347b1
TS
339 - /SCROLLBACK REDRAW doesn't do anything to non-format lines (should
340 redraw timestamp, etc.)
3c2347b1 341 - /LAST -since <timestamp>
7bdd3beb 342 - /LAST : use /SET timestamp_format
bd5f40a1 343 - /LAST -allwindows would check the lastlog from all open windows
3c2347b1
TS
344
345 - Formats / themes:
7bdd3beb
TS
346 - scripting for formats (see the themes.txt), and make the default.theme
347 so that you REALLY don't need to touch /FORMATs, unless you want to
348 change english texts (eg. joins/parts/quits etc. are fully configurable
349 in theme file)
3c2347b1 350 - Possibility to modify abstracts and replaces in themes from irssi.
7bdd3beb 351 (or maybe not, just makes it more difficult)
3c2347b1
TS
352 - Document the different formats briefly :)
353 - /FORMATs don't have styling anymore, so translation to different
354 languages should be possible with still the ability to use different
355 themes easily. /SET formats <filename> could change the file where
356 to read all /FORMATs, but formats in theme file would override them.
7bdd3beb
TS
357 - terminfo/termcap supports changing palette. add support for themes
358 as well to specify it.
359 - hilight formats. pubaction_hilight would be nice, but so would many
360 others as well. something generic for all these would be nice .. would
361 it be possible to do this in theme side with scripting without a
362 format for each different thing?
3c2347b1
TS
363
364 - Server commands:
365 - Optionally wait for a while (0.5-1sec) before sending the message to
366 server, if arrow up key is pressed abort it. Also remove the line from
367 screen and put some notice about it being not sent.
3c2347b1
TS
368 - If we receive "cannot send to channel" from server or "you're not
369 chanop" events, remove the privmsgs/notices or modes/kicks/etc. from
370 send queue automatically. Useful for aborting things when you get
371 kicked after pasting lots of text or deopped after doing /OP * or
7bdd3beb 372 something ;) .. use /SERVER PURGE <target> for this..
3c2347b1
TS
373 - Split PRIVMSGs and NOTICEs automatically to multiple commands if
374 their length exceeds the 512 bytes (or it should be shorter actually
375 so server won't split it when it adds your nick+host mask)
7bdd3beb
TS
376 - Fix the flood protection to be aware of max. input buffer, which is
377 1024 bytes by default (/STATS d, CF). Now irssi may excess flood when
378 sending lots of lines longer than ~200 chars.
54e184dc
TS
379 - IRCNET: Flood protection doesn't count the extra penalty for MODEs
380 and KICKs, also extra penalty should be given in messages (all
381 commands?) for each 100 chars.
7bdd3beb
TS
382
383 - Text buffer:
384 - support for printing ALL characters in text buffer, including ^B, ^C,
385 etc. etc. so we could selectively decide what mirc colors to translate
386 and what not. Like, we would want to show (or hide) it in normal
387 messages, but we would want to show it as-is in user's ident and
388 ban lists. This should fix /HILIGHT -word as well.
389 - EPIC-like /SET mangle_inbound, maybe mangle_outbound?
390 - %> should work in normal text lines
391 - support for iso-2022-jp? does anyone even want this? ;) it works with
392 esc$B..encoded text...esc(B - encoded text is in 7bit chars, not sure
393 - fix the textbuffer code so that typofix.pl actually works
394 - if you're in beginning of scrollback when lines are being removed,
395 the screen is messed up (?). Also, after /SB END the --more-- is
396 still there and you can't get rid of it (couldn't reproduce)
397 - does /SB REFRESH work? Make it update the lines lazily, only when
398 needed so it would be fast.
399 - Make /SET HOLD_MODE
400 - /CAT should pause on every screenful of text, this should be some kind
401 of printtext_multiline_paused() function which would use some callback
402 to ask for new text.
403 - when scrolling, using pgup/down. it would be neat if the last/first
404 overlapping line in the newly redrawn buffer would be colorized for a
405 second or two, indicating where to continue reading
f1580a67 406
bd5f40a1
TS
407 - Statusbar
408 - finish the support for multiple statusbar groups, and add
409 /WINDOW STATUSBAR command.
410 - finish the support for multiple input lines and a way to switch
411 between them, so eg. each split window could have it's own input line.
412 - padding char so instead of just spaces you could have ------
c2b8d150
TS
413 - hide the whole statusbar if none of it's items use any space
414 (visible = "auto")
415 - /SBAR # PLACEMENT top|bottom sometimes messes up the screen a bit,
416 ^L helps though
417 - /STATUSBAR prompt DISABLE hangs irssi because there's no input line.
418 Add some check to not allow this.
419 - /STATUSBAR could list also disabled bars
54e184dc 420 - command to list all available statusbar items
bd5f40a1
TS
421
422 - Server connecting:
7bdd3beb
TS
423 - More verbose connecting
424 - show if we're using IPv4 or IPv6
425 - show hostname we're using
426 - show the proxy settings we're using
427 - Reconnecting shouldn't try to remember all those settings, especially
428 /SET real_name xx + /RECONNECT should work.
02419703
TS
429 - DNS problems may cause removal of i-line, irssi shouldn't stop
430 trying to reconnect the server if it happens.. Maybe it never should
431 stop reconnecting to servers that are in config.
bd5f40a1
TS
432 - Remember the previous IP while reconnecting, if DNS lookup fails use
433 it. Some DNS servers return "host not found" when their internet
434 connection is broken and irssi stops reconnecting..
02419703
TS
435 - /RECONNECT <servertag> - If <servertag> belongs to some IRC network,
436 reconnect to next server in that ircnet, otherwise just reconnect
437 to the server.
438 - /SERVER <number> would connect to n'th server in list. Show the
439 numbers with /SERVER LIST
440 - /CONNECT <ircnet> could remove existing ircnet connection from
441 reconnect queue if it exists (only if there's only one?). Also if
442 we're already connected to the ircnet it could complain about it
443 and -yes would force it.
bd5f40a1
TS
444 - connect() may be stuck forever, timeout it after a few minutes.
445 - Raise the reconnect time every time you get disconnected, so if your
446 network goes up/down all the time, we'd see you join/part channels
447 more and more often instead of flooding all the time.
448 - Better support for round robin addresses (eg. irc.openprojects.org)
449 - /CONNECT -raw? A bit like telnet/nc host.
f1580a67 450
3c2347b1 451 - Tab completion:
7bdd3beb
TS
452 - Command parameter completion doesn't work properly when -options
453 are used.
3c2347b1
TS
454 - Possibility to complete -option parameters? Like -ircnet <tab>, also
455 /MSG -servertag<tab> and /LAST -level<tab> should work. All of these
456 require some command definition changes..
7bdd3beb 457 - bash-style (or whatever it should be called) tab-completion
3c2347b1 458 - key for reverse completion
7bdd3beb 459 - /MSG <tab> completion shouldn't include queried nick there (optional)
7bdd3beb
TS
460 - File completion could guess when it's wanted, word beginning with /
461 (not at start of line of course, unless / isn't in cmdchars)
462 or ~/ or ./
c2b8d150 463 - filename completion doesn't work properly if path has spaces
54e184dc
TS
464 - /FORMAT xx <tab>
465 - don't add useless completions to list. eg /RUN nick<tab> shouldn't
466 work
dd05ac73
TS
467 - Priorities to completions. And at least command completion could use
468 it so it'd put last the commands that require chanops/ircops.
469 Requires support in command_bind().
470 - /DCC commands could complete nicks (/dcc close, /dcc get, ..)
471 - check the TODO about nick completion scripts..
3c2347b1
TS
472
473 - Modules:
474 - Figure out module vs. plugin wording, what is what ;)
475 - API for plugins which would be guaranteed not to change
476 (at least too much/too often :)
477 - "chat protocol modules" - they could be loaded at startup so they'd be
478 equal to IRC protocol (autoconnecting servers would work etc.)
479 - on-demand autoload modules (f.e. by /command or maybe some signal)
480 - Try to make them create only .so files instead of .a and all..
7bdd3beb 481 - dependencies for modules? double /[un]load prints a bit stupid text
3c2347b1
TS
482
483 - perl scripting:
7bdd3beb 484 - /LOAD [-script | -module], /UNLOAD script
02419703 485 - Possibility to modify entry line somehow
7bdd3beb
TS
486 - Add structures: MODULE_REC, THEME_REC, KEYINFO_REC,
487 CHAT_PROTOCOL_REC, etc.
02419703
TS
488 - signal_emit() - if emitting unknown signal, it could automatically
489 save the types of sent parameters so another perl script could
bd5f40a1 490 signal_add() it
7bdd3beb
TS
491 - Irssi::keyboard_entry_redirect()
492 - Irssi::format_get_text()
7bdd3beb 493 - Irssi::signal_remove() could accept hashes
bd5f40a1 494 - /command parameter parser so it'd be easier to handle -options etc.
bd5f40a1
TS
495 - Try to get the Makefiles generated so that compiling with GCC would
496 always work even if the perl wasn't compiled with GCC..
dd05ac73
TS
497 - Irssi::Timeout_add() and input_add()'s data option could be optional
498 and maybe allow multiple parameters
3c2347b1
TS
499
500 - Bigger code changes:
501 - Restructure code tree so that non-IRC chat protocols would be in
502 same places than IRC protocol. Something like:
503 - src/irc (like now)
504 - src/irc/fe-common, src/irc/fe-text
505 SILC could then make symlinks to src/silc to whereever the SILC
506 module was unpacked. Make it possible to build SILC support built-in.
507 - /SETs have now boolean/number/string types. Add more:
508 - Time: Allow to use s|m|h|d to specify the time, default to
509 seconds. When sending reply to user, use the time formatting too,
510 not just x seconds or minutes. "10d 5s" should also work.
511 - Level: Like "all -msgs -public". Complain about unknown strings.
7bdd3beb 512 - size: 5M, 5k, ..
3c2347b1
TS
513 - Reading configuration file should be changed somehow .. at least add
514 some helper functions for reading lists since comments inside them
515 now crash irssi. Also if setting wasn't expected type can cause
516 crashes so add proper error checkings everywhere. And is_node_list()
517 etc. should be in uppercase..
7bdd3beb
TS
518 - Channel syncing is evil. Make it optional, and use /USERHOST when
519 needed if host isn't known. /BAN at least should do this, and while
54e184dc
TS
520 at it, we could make /IGNORE as well to ignore based on mask. Also,
521 if /USERHOST doesn't find anything, use /WHOWAS info.
7bdd3beb
TS
522 - Irssi saves some setting strings to static const char * variables in
523 several places.. this works pretty well usually, except when /RELOADing
524 config and some "setup changed" signal handler goes and calls some
525 function that still uses the old saved string which points to free'd
526 memory.. this should somehow be fixed failsafe. maybe just g_strdup()
527 them everywhere or figure out something better..
bd5f40a1
TS
528 - Better priority specifying for signals, probably should add
529 int priority without limited range.
54e184dc
TS
530 - fix server redirections to handle remote events correctly: very unlikely,
531 but its possible that replies to two remote whoises are received exactly
532 at the same time overlapping each others
7bdd3beb 533
dd05ac73 534 - Commands:
74cdeb0a
TS
535 - try to get the 0.9 command parser to work..
536 - user definable parameter definitions and how they're handled, like
537 cmsg <target> <colorized-msg> - then there'd be some function called to
538 colorize the third parameter. same for tab completion.
dd05ac73
TS
539 - support for multiple subcommands in the command parser, like
540 /window name foo level msgs.
541 - A way to disable some command entirely? eg. not show in completion
542 list or /HELP or anywhere..
543
bd5f40a1
TS
544 - extra spaces after commands don't always work, eg /wii nick, /help xx
545 - hide channel key in statusbar. This would require a $cmode_nokey or
546 something..
547 - fe-none doesn't compile with --with-perl-staticlib because it doesn't find
548 the ui/textui stuff..
549 - we should probably print timestamp even if level contains MSGLEVEL_NEVER,
54e184dc
TS
550 as long as it's not the only level.. Except when /CATing awaylog we don't
551 want to do that.
bd5f40a1
TS
552 - If /SET print_active_channel is ON, actions still don't show the channel
553 - nick's user/host can't be printed for public messages
554 - /HELP <alias> should work
555 - /CLEAR -all should clear the window activities as well, leaving hilights
556 - support :: properly in IPv6 masks
bd5f40a1
TS
557 - when you get disconnected, print your quit message to all channel windows
558 - possibility to print rawlog in window
559 - should $10 work (in special vars)?
560 - /VER should be alias
561 - /MODE #channel b should resync the banlist, and /QUOTE NAMES #channel
562 should resync the nicklist (irssi/ircd bugs).
563 - #include support to config file
564 - make detaching work
565 - with solaris, /EXECs don't die when irssi does (tail -f ...)
566 - /EXEC -interactive: print the commands you send
7bdd3beb
TS
567 - handle /JOINs with server redirections so they get aborted if we're not
568 seing a JOIN for a while.
569 - make sure the config file is never lost, write it to some temp file first
570 and after then move it over real config file.
571 - you could configure which events (whois, notify, etc.) to show in what
572 windows (all, current, status, msgs)
3c2347b1 573 - /SET -reset?
3c2347b1
TS
574 - printnickmsg() which would print nick changes and quit messages. And
575 export that function to perl so kills.pl could print kills with it too.
3c2347b1 576 - regexp host masks
9bf99c0a
TS
577 - automatically switch to status window when using commands that always
578 print their output to status window, like /whois.
6c66f696
TS
579 - automatic whowas if whois wasn't found should be moved to fe-common.
580 it could also print something like "nick $0 not in IRC, but this user
581 WAS in IRC:"
7bdd3beb
TS
582 - Add command for changing automatic replaces and completions
583 (/autoreplace, /complete ?) .. could these be scripts? ..
bb3ca6f4
TS
584 - commands to move channels and servers in the config list, to set the
585 join/connect order of them.
2ea909d7 586 - All those options to /WHO and /LIST commands that EPIC has
bd5f40a1
TS
587 - Use different formats for /WHO #channel? There's no need to show the
588 channel in every line then (NOTE: /WHO #chan1,#chan2 should have two
589 headers)
6c66f696
TS
590 - nick/channel lists at right side of the text version of irssi. Ctrl-N
591 for example could hide/show them. add mouse support for it.
1b30005e 592
7bdd3beb 593 - try profiling the code with /cat filewith10000lines
7bdd3beb
TS
594 - /SERVER ADD -ircnet foonet bar 6000 pass1,
595 /SERVER ADD -ircnet barnet bar 6000 pass2
596 dircproxy identifies ircnets based on password
597 - $@0 always returns 4 (?)
598
770ae459 599
038fdeb2
TS
600*** GTK UI
601
602 - %| doesn't work with irssi text widget
603 - some problems when using multiple windows with focus being all the time in
604 one of the windows and it can't be changed to different window?! Probably
605 has something to do with click to focus.
606 - split windows are buggy, destroying them doesn't really work well..
607 - mirc ctcp togglemenuitem isn't updated right
608
770ae459
TS
609*** Big things
610
770ae459
TS
611 - some sort of address book? our own irssi ctcp to ask for other irssi users
612 for their information (of course not without asking (except optionally))..
613 could be nice also to automatically update it, keep track of all seen
614 users gathered when joining channels, whois, who, etc. commands.
615 automatically updating information could be host masks, nicks, ips, seen in
616 channels, operator in channels, .. user specified checks like last topic or
617 mode changes or even msgs to you/some channel/with some keyword. great for
618 spying people ;) maybe even useful sometimes..
619
620 .. but what database would be best for this?
621
2ea909d7 622 - GTK (non-GNOME) version: icons to toolbars, accelerators to menus
770ae459
TS
623 - Windows style MDI windows are possible with GtkFixed .. Some people would
624 like this.. too much job for me, it would need building the MDI windows
625 ourself (title bar, borders, resizing, etc.)
626
627 - online help, documentation, ...
628 - plugins:
f5fc6247 629 - scheme, tcl, python scripting? eggdrop/epic compatible scripting?
7bdd3beb 630 - IRC bot, eggdrop is too old, needs a replacement ;) (started, aborted)
770ae459
TS
631 - Multiplayer games! :) Chess, tic-tac-toe, othello, battleship, tetris,
632 etc. Existing games should probably be used .. though there doesn't
633 seem to be any of these (except tetris) for gnome right now..
634 - audio / video chat :)
635
42092bac 636*** Needs rethinking ..
770ae459 637
d3dc9a13 638 * Notify list GUI
f4dc754e
TS
639 - _one_ popup dialog could open which lists all nicks in notifylist, maybe
640 sorted by arrival time, display the dates, latest joined could be with
641 different color? etc.
d29ca0b1 642 - nick-specific options:
f4dc754e 643 - pop up the dialog
42092bac 644 - run some command (like /exec as soon as I get that done :)
42092bac 645
f4dc754e
TS
646 * common api for statusbar handling
647 - it should work just as well in text mode and gui, colors could be done
648 with the normal % formats. GUI just ignores the colors..
649 - display number of ops, voices, normals and ircops in statusbar
650
651 * API for creating/modifying menus and toolbar, especially from plugins
652 - at least one configurable menu ("usermenu"), or maybe make the whole
653 menubar user configurable
654
655
3c2347b1 656*** ..in GTK UI .. just some things to remember if i'll rewrite it again.
2ea909d7 657
42092bac
TS
658 - itext:
659 - save/find text
660 - text selection draws the entire selection every time you move the
661 mouse...
f4dc754e
TS
662 - if some other window has got much text, switching to it first time
663 takes some time..?
f4dc754e 664 - editor in setup for ~/.irssi/startup
a712a5c1 665 - dcc floods could pop up lots of dialogs..
f4dc754e
TS
666 - gui help
667 - change signal handling in gui-gnome so that the actual drawing and
668 functionality are in different signals, so that plugin could change the
669 whole look and feel of irssi.
670 - currently irssi sends USERHOST commands every now and then to find out
671 who are away and who are not.. optionally it could instead just watch if
672 someone hasn't written anything to channel in n minutes and mark it "away"
673 to nicklist.
770ae459 674 - check new irssi versions with http rather than with irssibot..
770ae459
TS
675 - gnome statubar:
676 - clock?
677 - dcc transfer meter (gtk progressbar)
770ae459
TS
678 - dcc send: allow selection of multiple files to send (also for dnd from
679 gmc!) Allow dropping files to anywhere in irssi.