Created SILC Runtime Toolkit git repository Part I.
[runtime.git] / apps / irssi / TODO
diff --git a/apps/irssi/TODO b/apps/irssi/TODO
deleted file mode 100644 (file)
index bc2cef9..0000000
+++ /dev/null
@@ -1,770 +0,0 @@
- - /whowas server nick doesn't work
-01:18 <@darix> cras: /foreach server /disconnect $tag n8 <-- doesnt work
- - /hilight -priority is broken
-19:36 [IRCNet] [muzzy] lisää bugeja irssissä, ilmeisesti 
-          uusin versio:  foo splittaa ulos, bar joinaa sisään, bar vaihtaa 
-          nicknamen fooksi, foo splittaa uudestaan ulos -> tulee Glib warning 
-          "is already in split list (how?)" .. :)
-
-04:35 [OPN] [slug] was just wondering if you 
-          had Irssi::keyboard_entry_redirect() on your TODO somewhere near the 
-          top, I'd love the feature
-04:35 [OPN] [slug] or someway to clear the 
-          command buffer, either way is acceptable, just my connection is a 
-          little less than reliable, so I've built myself a script that stores 
-          blowfish passes, all encrypted by one value
-04:36 [OPN] [slug] then I set a single 
-          decryption key, and it keeps it for the irssi session (lost on 
-          /upgrade though), unfortunatly it stays in the command buffer 8]
-
- - ^I in topicbar breaks things
-14:17 <@darix> cras: this doesnt work: /exec  - -o uname -a
-
- - "setup changed", or "setup reread" seems to cause crashes.. (with darix)
-02:46 <@fuchs> cras, /server foonet.foo.xy and (recognizing it doesn't connect 
-               fast enough), and so doing /server barnet.foo.xy (both in the 
-               same chatnet) makes irssi joining the net but not rejoining the 
-               channels
-
-
-14:59 <@c0ffee> cras, bug report, mode change compression appears not to work: 
-                13:58 -!- mode/#*cut* [-b+ *cut*] by *cut* (i think it was -b+b)
-21:55 <@L> 17:04.11 <L> /eval /last quit;/clear;/sb goto 10:00;/last -clear;/sb end
-21:55 <@L> 17:04.27 <L> wait after it scrolls and press page up :)
-21:55 <@L> 17:04.48 <L> oh, you can make Irssi behave correctly with /clear
-           again
-
- - /msg nick@server or nick%host is fully treated as nickname (log, query)
- - max_whois won't stay with reconnects?
- - support passive DCC
- - separate format for privmsg/notice massmessages (anything non-yournick)
-20:45 < Juerd> 19:44 -!- Irssi: critical file channels.c: line 122 
-               (channel_find): assertion
-20:45 < Juerd>           `name != NULL' failed.
-20:45 < Juerd> this happens three times
-20:46 < Juerd> and it happens in a _query_
-20:47 <@Juerd> cras: for some reason irssi doesn't know this happens in a 
-               query, and displays "< Juerd:> foo" in the status window
- - set TOS field for all connections (DCC especially)
-22:51 [IRCNet] [zhafte] irssi muuten taitaa bugaa jos 
-          pistää ACT oikeaan reunaan, vai onkohan se vain mun terminaali?
-22:52 [IRCNet] [zhafte] menevät välillä päällekkäin 
-          numerot
- - when using -w password command line parameter, hide the password so it
-   won't show with ps.
-07.06.2002 08:37 #irssi: <@Qrczak> cras: A bug. After /upgrade when being away 
-                                   the awaylog is not being written to.
-21:37 < life> Then you connect. The problem is that irssi connects to the proxy 
-              server and directly afterwards send "USER ..."
-21:37 < life> It has to wait for "HTTP 200 ok" *first*
-04.06.2002 08:54 #irssi: <@Garion> cras: i've seen it several times now - a 
-                                   line of 79 or 80 chars (my win is 80 wide) 
-                                   which has an empty line below it, and that 
-                                   line is not refreshed when I switch to the 
-                                   window with that line in it, thus keeping 1 
-                                   line from the old window in the current 
-                                   window. Very confusing
-21:43 [IRCNet] [HiroP-(~HiroP@p508035EC.dip.t-dialin.net)] Hi there. I just 
-          wanted to tell you that there seems to be a problem when joining 
-          large channels (500+ people) while a regexp ignore is active. I had 
-          one to ignore all server ads
-21:43 [IRCNet] [HiroP-(~HiroP@p508035EC.dip.t-dialin.net)] 1 *: ALL -regexp 
-          -pattern .*erver.*nline.*
-21:43 [IRCNet] [HiroP-(~HiroP@p508035EC.dip.t-dialin.net)] After joining, I 
-          could see the nicklist and 1 or 2 lines of what people were saying. 
-          Then irssi either core-dumped, got disconnected or just sat there 
-          apparently without receiving any more data (lag-counter going up to 
-          several minutes). 
-
- - %n%_ ei näy lastlogissa
- - darixin se pingiredirectijuttu
-21:28 < Samus_Aran> cras: /log also shows #Linuux ... which I typod a couple
-                    days ago
-21:30 < Samus_Aran> it doesnt show any of the queries which i closed, though,
-                    jush #channels
-
- - "show statusbar in empty windows" flag?
- - statusbar_item_redraw() should just set the size as dirty and calculate
-   it only when really needed.
- - possible to cache sbar_item->size when nothing else has changed in sbar? 
-   ie. mostly when redrawing.
- - use_status_window, use_msgs_window sais toimia heti
- - /msg @#chan<tab>
-
- - hilight -priority
- - tab completio jos lisää utf8 juttuja niin ei oikein toimi?
-16:39 <@Qrczak> cras: I'm not sure how exactly to reproduce it but it happens 
-                often. When I jump to the window with a query using Alt-a 
-                (after the other person said something), and close the window 
-                (being brought to the last used window), and don't switch 
-                windows, and then that person says something again, I'm brought 
-                to the new query window automatically (that's of course bad).
-
-21.04.2002 11:59 [immy(immy@beanus.org)] GLib warning: signal_free(script 
-          destroyed) : signal still has 3 references:
- - jos kickataan nopeasti ja joinaa takas nopeasti chansyncci kaataa
-/WHOssa.. kts. qrczak logi
- - /set show_server_tags tjsp että näyttäis aina (yhdistä hide_server_tagsin 
-   kanssa?)
-17:35 <@peder> cras: why isnt 'topic = " {sb_topic $topic}"' in the default 
- - /SBAR topic placement bottom ei toimi??
- - /SB GOTO -<days> <ts>
- - /query -immortal so autoclose_queries wouldn't touch them
- - /SET hiascii_control_chars if 128..128+32 should be treated as control chars
-
-...
-
- - /exec -out kanavalla ei pelaa silcissä
- - write about %[-s] etc. to default.theme
- - away handling is a bit buggy. you do /away;/away reason, irssi remembers
-   the away reason only until it receives "you're no longer away" from the
-   first command.. setting it back to away has then lost the reason.
- - crash: /exec -msg safari perl -e 'print "A"x600000'"
- - nick_ nick- _nick nick2 nick3 ...
-17.03.2002 22:25 #irssi.fi: <@Ion> cras: Jos sanon dcc chatissa että /exec - 
-                                   -out cat iso_tiedosto, niin miksi 
-                                   iso_tiedosto jää kesken? :)
- - /op * valitus vois olla joku parempi kuin "not a good idea"..
- - mitenkäs tabcompletio completoi taas omaakin nickkiä..?
- - /hilight -level "public -actions" or something so it wouldn't match
-   actions.
- - vanhan irssin /upgrades uuteen ennen sitä vaihtoi /set autolog_path:iin
-   $1 ja kaatui?..
- - /win hide vois pelata vaikka oliskin stickyjä siinä ikkunassa
- - /SAVE -all?
-14.03.2002 19:10 #irssi: <@fantazja> cras: autoclose_query is also closing (and 
-                                     finishing) dcc chats :/
- - /window server -sticky:tetyt ikkunat ei aina meinaa tajuta kun serveri
-   yhdistyy?
- - utf8-tekstitykset bugailee statusbarissa (promptissa)
- - jos /set reuse_unused_windows off, ja ikkuna näyttäis täysin tyhjälle
-   ja niitä olis vaan 1, niin sen vois kyllä käyttää silti (?)
- - /set beep_msg_level hilight ei toimi jos on /hilight -word
-
- - /STATUSBAR xx ENABLE|DISABLE recreates all statusbars which is a bit
-   annoying because some scripts want to do it and input line is cleared
-   because of this..
- - move /SET hilight_*color to theme
- - /SET disconnect_timeout - default 2min, 0 = immediately
- - reconnecting messages are a bit confusing. it prints "removed reconnection"
-   to the server which it's connecting to next.. maybe the whole reconnecting
-   thing should work so that the record stays there until it's connected
-   successfully.
- - /ignore, /hilight and /lastlog could complain immediately if used
-   regexp is broken. /hilight list could show also if it's broken like
-   /ignore does.
-
- - /UPGRADE:
-    - support DCCs
-    - rewrite to work by fork()ing a new process and transfer file handles
-      with unix sockets. this would allow the scrollback buffers to be
-      transferred with them as well.
-    - current window layout needs to transferred
-    - reconnections aren't transferred(?)
-
- - Logging:
-    - /LOG OPEN doesn't autocreate directories..
-    - /LOG OPEN -targets *!*cras@*.fi
-    - /SET autolog -> /LOG OPEN -targets * (internally, at least)
-    - /LOG OPEN shouldn't really open the file until first line is 
-      written in it
-    - /WINDOW LOG OFF doesn't work
-    - autoclosing logs doesn't work too well. Problems are:
-       - after certain inactivity private message logs should be closed
-       - but DCC chats shouldn't be closed until the chat itself is closed
-          - which we can't know really currently, since they don't need
-            to be in queries
-       - channels should be closed when they're left (they are now, but)
-          - /WINDOW CLOSE shouldn't close it immediately, since we'll still
-            receive at least the PART message
-    - so, log items should know more about what they are exactly, and when
-      they should be closed. private messages could have the same timeout
-      as now, time_t closetime field updated every time msg is received.
-      channels could do the same when receiving "window item destroy" signal,
-      except with a small timeout. DCC chats are more problematic...
-    - support for mirc/ansi color logging
-    - people want to show ignored stuff in logs.. how?
-    - private messages could show mirc-style "Session Ident: nick (host)"
-      which would update when nick's host changes. Then you wouldn't need to
-      print the host before each msg.
-    - support for logging channel messages from specific people
-
- - Awaylogs:
-    - either fully support logging only in servers you're away, or change the
-      awaylog to open immediately after /AWAY command, not based on any
-      away replies from server. Maybe the later would be better, since you
-      would want to set yourself away when connections to all servers were
-      disconnected at the time.. Maybe /AWAY should update status in
-      reconnection records as well?..
-    - /SET awaylog_auto_delete, after setting yourself unaway
-    - support for using strftime() formats (and $tag etc). only problem with
-      this is that all the different awaylogs would need to be tracked and
-      /CATed when setting yourself unaway
-    - /AWAYLOG could show the current awaylog and optionally reset it
-    - The channel name should be optional there
-
- - Window item placing:
-    - !channel vs. !12345channel. it's layout saved with full name, but joined
-      with either one
-    - when dcc chat is accepted and query exists from the same nick, replace
-      the query window with the dcc chat window.
-    - closed DCC chats should add temporary window bind to the dcc chat so
-      future chats for same nick would use the same window
-    - /JOIN #foo could *optionally* move the channel to active window
-      (default off, it confuses people)
-    - /JOIN -ircnet #foo doesn't jump to #foo like /JOIN #foo does.
-
- - DCC
-    - /DCC SEND wildcard support
-    - /DCC GET -4 / -6 with autodetection
-    - When we receive a DCC SEND request, irssi could warn if the file
-      already exists
-    - show estimated time left and kB/s in /DCC list.
-    - implement requesting files with DCC GET from remote client for dcc file
-      servers. good for people behind firewalls. Does this feature exist
-      in other clients, or should I create DCC REQUEST? Same for DCC CHAT..
-      Maybe it could be just that the port was specified as 0, so the other
-      side would know that it needs to be the one to do listening.
-    - /SET dcc_autoresume ON, and sending the same file again while it's
-      already being downloaded doesn't work too well.. Even autorename doesn't
-      work.
-    - With fast DCC SENDs (90kB/s, FreeBSD) typing get laggy (really?)
-    - /DCC CLOSE #, /DCC would print the IDs
-    - /SET dcc_use_proxy to use IRC proxy for DCC connects as well
-    - support for special vars in /SET dcc_download_path, so $N could be used
-    - No way to autoclose dcc chat windows which have been closed by another
-      side.
-
- - Generic chat commands:
-    - /MSG /CTCP /ACTION =dcc_chat,#channel
-    - /ACTION -ircnet with good tab support like in /MSG
-    - -nick -channel parameters to /ACTION
-    - /MSG a,b,#c,#d - it should print the message to #c and #d channel
-      windows and show only "a,b" as target when printing it to msg window..
-      Or if autoquery is set, it should print them to those windows. Hmm.
-      maybe some multipeople query support? :) /query nick1,nick2 and sending
-      text there would send it to both. Seems to work already but receiving
-      messages from either nick1 or nick2 don't go to that window..
-    - /BAN: setting of what netmask to use for banning with IPv6 addresses
-
- - Netsplits
-    - BUG: said "+1 more", while the /SETs to control that were set properly,
-      with one guy it only said that +1 more..
-    - BUG: netsplit quit isn't printed if quit -> join -> quit -> join
-      happens fast (really?)
-    - maybe the "+x more" should be configured in theme file instead in
-      future with the embedded scripting.. At least I'd want to print all
-      the splitted nicks in log files.
-    - per-window listing of splitted servers, it looks very stupid when
-      you see 4 lines of servers splitting in each window but only a few
-      nicks after them.
-    - per-window listing of splitted nicks, so the split messages isn't shown
-      multiple times for each channel with possibly same nicks
-    - /NETSPLIT <server>|<#channel>|<nick wildcard>
-    - SERVERMODE +ov nick nick is shown instead of just Netjoin @nick because
-      code is stupid. fixed in irssi-rewrite..
-    - show in query windows
-
- - Crashes:
-    - irssi crashes at quit if perl is loaded as module
-    - #1  0x68cc7 in module_file_deinit_gmodule (file=0x110e20) at modules-load.c:356 
-    - <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
-    - irssi -cserver -nnick -> crashes - lib-popt is buggy!
-        - bug as well but not crash: --config=foo --home=bar -c server
-    - /SB CLEAR still crashing sometimes?
-    - make sure irssi works with 0x0 sized terminal. 1x1 sized terminal
-      doesn't work if we use recreate_windows()
-    - /UNLOAD dcc, etc. static modules
-
- - Scripts:
-    - print whois in active window
-    - some script to handle ctcp floods, like doing /IGNORE * CTCPS when it 
-      happens.
-    - move into scripts:
-       - /SET timestamp_timeout
-       - /MSG completion list should be modifyable from scripts
-          - script to remove nick from list after /IGNORE nick
-       - nick completion list should be modifyable afterwards:
-          - /SET completion_nicks_lowercase (remove from irssi)
-          - /SET completion_nicks_capitalize
-          - /SET completion_nicks_strip (keep only alphanumeric chars)
-    - irchat-like JOIN/PART/QUIT combiner (QUIT: nick1, nick2, nick3), would
-      require the line replacing work properly which it doesn't..
-
- - Irssi proxy:
-    - doesn't propagate your own nickchanges to other clients
-    - list sessions, kill them
-    - /set irssi_proxy_ips <allow connections only from specified IPs>
-
- - Misc IRC related things:
-    - support for mode +q in dancer - also same as +b %xxx modes..
-    - properly support RFC-1459 charset (ircnet specific option), eg.
-      /QUERY p[ and msgs from p{ aren't placed there.
-    - /BAN -ip, -time [<time>] (/ALIAS knockout?)
-    - /KICKBAN to support same options than /BAN (would /ALIAS kickban work?)
-    - ban list prints "x seconds ago" .. should be x days, mins, hours, ..
-
- - Windows:
-     - /WINDOW SIZE -sticky, so f.e. /WINDOW BALANCE wouldn't affect it.
-     - /LAYOUT save|reset doesn't affect anything immediately, only after
-       restart
-     - Check that /LAYOUT SAVE works properly with all the different /SETs,
-       like reuse_unsued_windows, windows_auto_renumber and autoclose_windows.
-       What should it do if some channel is /PARTed with autoclose_windows 
-       set?..
-     - /LAYOUT SAVE  should ask if we want to save those window items that
-       are "bound sticky" but of which server is currently not connected.
-     - /WINDOW scrollback_lines /WINDOW scrollback_hours
-     - Optionally always start the lines from bottom of the screen when 
-       screen is empty (how would scrolling work?)
-     - Vertically split windows
-     - /SET use_msgs_window and /SET use_status_window should take effect
-       immediately
-     - /WINDOW notify_level - would specify what window activity will be
-       shown for the window
-     - Some sort of autobalancing for split windows after terminal resize,
-       maybe with window-specific options that "this window is n lines",
-       "this is at least n% of available space", etc.
-
- - Keyboard handling:
-    - Some kind of state support for it, so it would be possible to make
-      support for vi keys easily.
-    - Editor-like (or bash-like) line editor - it would wrap to next line
-      instead of scrolling.
-    - When pasting text, irssi could notice it and ask "pasting 30 lines
-      of text, ok?" .. Could send some signal that sends the pasted lines
-      in GList which signal handlers could modify. Also the first pasted
-      line could be somehow buffered so that it isn't sent immediately
-      so these paste handlers could modify it too.
-        - Already existing / at start of line handler should use this
-        - Automatically remove empty space at the start/end of lines,
-         from start of line it would work so that if each line begins with
-         4 spaces but some more, it would only remove those 4 spaces from
-         each so pasting code wouldn't mess up indents etc.
-       - Skip all autoreplaces and completions, so that f.e. tabs are
-         printed as-is (a few /BINDs would do this but...)
-       - Should empty lines be pasted too? Maybe optionally
-    - /BIND -askkey command
-    - /BIND -delete doesn't print that it did the deleting
-    - /BIND -deletes should be saved in config
-    - ^W (and some others) don't update cut buffer.
-    - default binds: M-d, M-y
-    - /PASSWORD command that asks you to type the password to entry line and
-      would hide it with asterisks, good if people spy on you :)
-    - ^R-like history search
-    - Key to execute the command, but not place it in history
-    - Key to remove active entry from command history
-    - Optionally save command history between restarts
-
- - Notify list:
-    - showing who's online and who's offline doesn't work properly.
-    - adding/removing people in notify list don't show in /NOTIFY immediately
-    - when someone in notify list joins, should it be placed to start of
-      /MSG completion list?
-    - /NOTIFY -away and -idle: support for wildcards in nicks (requires of
-      course that we're in same channel as nick)
-    - Automatically add queried nicks to notify list temporarily .. display
-      the notifys for the nick in the query window
-    - /NOTIFY -once - notify only once when the user comes to IRC, forget
-      this after it.
-    - /NOTIFY -comment xxx - add a comment to notify. print the comment when
-      user comes to irc.
-    - "Should we check people in notify list when you're away" option
-    - use /WATCH instead of /ISON in servers that support it
-    - Show when the nick was last seen
-
- - Ignores:
-    - /IGNORE -ircnet or -tag
-    - /IGNORE <nick> -> use hostmasking (related to channel syncing problem,
-      see "bigger code changes") with support for -type and /SET ignore_type
-    - /IGNORE -strip -pattern away * actions ..
-    - can't have multiple ignore -patterns with same nick
-    - /ignore -activity .. would ignore it just in window activity list,
-      not hide the text.
-    - The nick cache stuff just made it slower. Remove it or figure out how
-      it could be faster.
-    - combined ignore/hilight thingy, see hilights
-
- - Hilights:
-    - /HILIGHT list doesn't print several options. Maybe some generic
-      function which could be used for printing those options for all these
-      /IRCNET, /SERVER ADD, etc. commands.
-    - /HILIGHT -mask <mask> <word>: not possible use both.
-    - case sensitive hilight checking.
-    - ignore coloring in the words it matches, so eg. /hilight foo would
-      match to f^Bo^Bo
-    - BUG: it STILL sometimes creates hilight activity while there's no
-      hilights, around mode changes (haven't heard for a while though,
-      maybe it is anyway fixed? :)
-    - change the colors of both the nick and the matched word.
-    - /SET hide_text_style still breaks /HILIGHT -words
-    - even if hilight_color is "", %n is printed after hilighted text.
-    - /hilight -actcolor %M -color %w -regexp -level publics
-               -channels #channel1,#channel2 .*
-      removes the bold from /me actions of other users
-    - people want to hilight their own nicks everywhere, eg. /HILIGHT $N
-    - automatic nick hilighting at beginning of line should be optional,
-      like some people would want -word hilighting in it..
-    - exceptions
-    - Merged ignores/hilights thingy and maybe even something others ..
-      some first-match-wins table where you could easily add/move stuff.
-
- - Scrollback:
-    - Optionally show a "bookmark" (line mark actually, a line full of '-'
-      chars) in a window. It would be displayed at the position where you
-      were when the window was active last time. /MARK command to force
-      updating it to bottom of screen in active window.
-    - /SCROLLBACK REDRAW doesn't do anything to non-format lines (should
-      redraw timestamp, etc.)
-    - /LAST -since <timestamp>
-    - /LAST : use /SET timestamp_format
-    - /LAST -allwindows would check the lastlog from all open windows
-    - /SCROLLBACK CLEAR all -public - a bit like /LAST -clear
-      (make /LAST -clear do /SB CLEAR lastlog)
-
- - Formats / themes:
-    - scripting for formats (see the themes.txt), and make the default.theme
-      so that you REALLY don't need to touch /FORMATs, unless you want to
-      change english texts (eg. joins/parts/quits etc. are fully configurable
-      in theme file)
-    - Possibility to modify abstracts and replaces in themes from irssi.
-      (or maybe not, just makes it more difficult)
-    - Document the different formats briefly :)
-    - /FORMATs don't have styling anymore, so translation to different
-      languages should be possible with still the ability to use different
-      themes easily. /SET formats <filename> could change the file where
-      to read all /FORMATs, but formats in theme file would override them.
-    - terminfo/termcap supports changing palette. add support for themes
-      as well to specify it.
-    - hilight formats. pubaction_hilight would be nice, but so would many
-      others as well. something generic for all these would be nice .. would
-      it be possible to do this in theme side with scripting without a
-      format for each different thing?
-
- - Server commands:
-    - Optionally wait for a while (0.5-1sec) before sending the message to
-      server, if arrow up key is pressed abort it. Also remove the line from
-      screen and put some notice about it being not sent.
-    - If we receive "cannot send to channel" from server or "you're not 
-      chanop" events, remove the privmsgs/notices or modes/kicks/etc. from
-      send queue automatically. Useful for aborting things when you get
-      kicked after pasting lots of text or deopped after doing /OP * or
-      something ;) .. use /SERVER PURGE <target> for this..
-    - Split PRIVMSGs and NOTICEs automatically to multiple commands if
-      their length exceeds the 512 bytes (or it should be shorter actually
-      so server won't split it when it adds your nick+host mask)
-    - Fix the flood protection to be aware of max. input buffer, which is
-      1024 bytes by default (/STATS d, CF). Now irssi may excess flood when
-      sending lots of lines longer than ~200 chars.
-    - IRCNET: Flood protection doesn't count the extra penalty for MODEs
-      and KICKs, also extra penalty should be given in messages (all
-      commands?) for each 100 chars.
-
- - Text buffer:
-    - support for printing ALL characters in text buffer, including ^B, ^C,
-      etc. etc. so we could selectively decide what mirc colors to translate
-      and what not. Like, we would want to show (or hide) it in normal
-      messages, but we would want to show it as-is in user's ident and
-      ban lists. This should fix /HILIGHT -word as well.
-    - EPIC-like /SET mangle_inbound, maybe mangle_outbound?
-    - %> should work in normal text lines
-    - support for iso-2022-jp? does anyone even want this? ;) it works with
-      esc$B..encoded text...esc(B - encoded text is in 7bit chars, not sure
-    - fix the textbuffer code so that typofix.pl actually works
-    - if you're in beginning of scrollback when lines are being removed,
-      the screen is messed up (?). Also, after /SB END the --more-- is
-      still there and you can't get rid of it (couldn't reproduce)
-    - does /SB REFRESH work? Make it update the lines lazily, only when
-      needed so it would be fast.
-    - Make /SET HOLD_MODE
-    - /CAT should pause on every screenful of text, this should be some kind
-      of printtext_multiline_paused() function which would use some callback
-      to ask for new text.
-    - when scrolling, using pgup/down. it would be neat if the last/first
-      overlapping line in the newly redrawn buffer would be colorized for a
-      second or two, indicating where to continue reading
-
- - Statusbar
-    - finish the support for multiple statusbar groups, and add
-      /WINDOW STATUSBAR command.
-    - finish the support for multiple input lines and a way to switch
-      between them, so eg. each split window could have it's own input line.
-    - padding char so instead of just spaces you could have ------
-    - hide the whole statusbar if none of it's items use any space
-      (visible = "auto")
-    - /SBAR # PLACEMENT top|bottom sometimes messes up the screen a bit,
-      ^L helps though
-    - /STATUSBAR prompt DISABLE hangs irssi because there's no input line.
-      Add some check to not allow this.
-    - /STATUSBAR could list also disabled bars
-    - command to list all available statusbar items
-
- - Server connecting:
-    - More verbose connecting
-        - show if we're using IPv4 or IPv6
-       - show hostname we're using
-       - show the proxy settings we're using
-    - Reconnecting shouldn't try to remember all those settings, especially
-      /SET real_name xx + /RECONNECT should work.
-    - DNS problems may cause removal of i-line, irssi shouldn't stop
-      trying to reconnect the server if it happens.. Maybe it never should
-      stop reconnecting to servers that are in config.
-    - Remember the previous IP while reconnecting, if DNS lookup fails use
-      it. Some DNS servers return "host not found" when their internet
-      connection is broken and irssi stops reconnecting..
-    - /RECONNECT <servertag> - If <servertag> belongs to some IRC network,
-      reconnect to next server in that ircnet, otherwise just reconnect
-      to the server.
-    - /SERVER <number> would connect to n'th server in list. Show the
-      numbers with /SERVER LIST
-    - /CONNECT <ircnet> could remove existing ircnet connection from
-      reconnect queue if it exists (only if there's only one?). Also if
-      we're already connected to the ircnet it could complain about it
-      and -yes would force it.
-    - connect() may be stuck forever, timeout it after a few minutes.
-    - Raise the reconnect time every time you get disconnected, so if your
-      network goes up/down all the time, we'd see you join/part channels
-      more and more often instead of flooding all the time.
-    - Better support for round robin addresses (eg. irc.openprojects.org)
-    - /CONNECT -raw? A bit like telnet/nc host.
-
- - Tab completion:
-    - Command parameter completion doesn't work properly when -options 
-      are used.
-    - Possibility to complete -option parameters? Like -ircnet <tab>, also
-      /MSG -servertag<tab> and /LAST -level<tab> should work. All of these
-      require some command definition changes..
-    - bash-style (or whatever it should be called) tab-completion
-    - key for reverse completion
-    - /MSG <tab> completion shouldn't include queried nick there (optional)
-    - File completion could guess when it's wanted, word beginning with /
-      (not at start of line of course, unless / isn't in cmdchars)
-      or ~/ or ./
-    - filename completion doesn't work properly if path has spaces
-    - /FORMAT xx <tab>
-    - don't add useless completions to list. eg /RUN nick<tab> shouldn't 
-      work
-    - Priorities to completions. And at least command completion could use
-      it so it'd put last the commands that require chanops/ircops.
-      Requires support in command_bind().
-    - /DCC commands could complete nicks (/dcc close, /dcc get, ..)
-    - check the TODO about nick completion scripts..
-
- - Modules:
-    - Figure out module vs. plugin wording, what is what ;)
-    - API for plugins which would be guaranteed not to change
-      (at least too much/too often :)
-    - "chat protocol modules" - they could be loaded at startup so they'd be
-      equal to IRC protocol (autoconnecting servers would work etc.)
-    - on-demand autoload modules (f.e. by /command or maybe some signal)
-    - Try to make them create only .so files instead of .a and all..
-    - dependencies for modules? double /[un]load prints a bit stupid text
-
- - perl scripting:
-    - /LOAD [-script | -module], /UNLOAD script
-    - Possibility to modify entry line somehow
-    - Add structures: MODULE_REC, THEME_REC, KEYINFO_REC, 
-      CHAT_PROTOCOL_REC, etc.
-    - signal_emit() - if emitting unknown signal, it could automatically
-      save the types of sent parameters so another perl script could
-      signal_add() it
-    - Irssi::keyboard_entry_redirect()
-    - Irssi::format_get_text()
-    - "use Symbol(delete_package)" doesn't work with perl 5.004 and crashes
-      irssi .. at least remove the crashing!
-    - Irssi::signal_remove() could accept hashes
-    - /command parameter parser so it'd be easier to handle -options etc.
-    - Try to get the Makefiles generated so that compiling with GCC would
-      always work even if the perl wasn't compiled with GCC..
-    - Irssi::Timeout_add() and input_add()'s data option could be optional
-      and maybe allow multiple parameters
-
- - Bigger code changes:
-    - Restructure code tree so that non-IRC chat protocols would be in
-      same places than IRC protocol. Something like:
-        - src/irc (like now)
-       - src/irc/fe-common, src/irc/fe-text
-      SILC could then make symlinks to src/silc to whereever the SILC
-      module was unpacked. Make it possible to build SILC support built-in.
-    - /SETs have now boolean/number/string types. Add more:
-        - Time: Allow to use s|m|h|d to specify the time, default to
-          seconds. When sending reply to user, use the time formatting too,
-          not just x seconds or minutes. "10d 5s" should also work.
-       - Level: Like "all -msgs -public". Complain about unknown strings.
-       - size: 5M, 5k, ..
-    - Reading configuration file should be changed somehow .. at least add
-      some helper functions for reading lists since comments inside them
-      now crash irssi. Also if setting wasn't expected type can cause
-      crashes so add proper error checkings everywhere. And is_node_list()
-      etc. should be in uppercase..
-    - Channel syncing is evil. Make it optional, and use /USERHOST when
-      needed if host isn't known. /BAN at least should do this, and while
-      at it, we could make /IGNORE as well to ignore based on mask. Also,
-      if /USERHOST doesn't find anything, use /WHOWAS info.
-    - Irssi saves some setting strings to static const char * variables in
-      several places.. this works pretty well usually, except when /RELOADing
-      config and some "setup changed" signal handler goes and calls some
-      function that still uses the old saved string which points to free'd
-      memory.. this should somehow be fixed failsafe. maybe just g_strdup()
-      them everywhere or figure out something better..
-    - Better priority specifying for signals, probably should add
-      int priority without limited range.
-    - fix server redirections to handle remote events correctly: very unlikely,
-      but its possible that replies to two remote whoises are received exactly
-      at the same time overlapping each others
-
- - Commands:
-    - try to get the 0.9 command parser to work..
-    - user definable parameter definitions and how they're handled, like
-      cmsg <target> <colorized-msg> - then there'd be some function called to
-      colorize the third parameter. same for tab completion.
-    - support for multiple subcommands in the command parser, like
-      /window name foo level msgs.
-    - A way to disable some command entirely? eg. not show in completion
-      list or /HELP or anywhere..
-
- - Read server capabilities from 005 numeric
- - extra spaces after commands don't always work, eg /wii  nick, /help  xx
- - hide channel key in statusbar. This would require a $cmode_nokey or
-   something..
- - fe-none doesn't compile with --with-perl-staticlib because it doesn't find
-   the ui/textui stuff..
- - we should probably print timestamp even if level contains MSGLEVEL_NEVER,
-   as long as it's not the only level.. Except when /CATing awaylog we don't
-   want to do that.
- - If /SET print_active_channel is ON, actions still don't show the channel
- - nick's user/host can't be printed for public messages
- - /HELP <alias> should work
- - /CLEAR -all should clear the window activities as well, leaving hilights
- - support :: properly in IPv6 masks
- - /SET activity_hide_targets ircnet/#irssi
- - when you get disconnected, print your quit message to all channel windows
- - possibility to print rawlog in window
- - should $10 work (in special vars)?
- - /VER should be alias
- - /MODE #channel b should resync the banlist, and /QUOTE NAMES #channel
-   should resync the nicklist (irssi/ircd bugs).
- - #include support to config file
- - make detaching work
- - with solaris, /EXECs don't die when irssi does (tail -f ...)
- - /EXEC -interactive: print the commands you send
- - handle /JOINs with server redirections so they get aborted if we're not
-   seing a JOIN for a while.
- - make sure the config file is never lost, write it to some temp file first
-   and after then move it over real config file.
- - you could configure which events (whois, notify, etc.) to show in what
-   windows (all, current, status, msgs)
- - /SET -reset?
- - printnickmsg() which would print nick changes and quit messages. And
-   export that function to perl so kills.pl could print kills with it too.
- - regexp host masks
- - automatically switch to status window when using commands that always
-   print their output to status window, like /whois.
- - automatic whowas if whois wasn't found should be moved to fe-common.
-   it could also print something like "nick $0 not in IRC, but this user
-   WAS in IRC:"
- - Add command for changing automatic replaces and completions
-   (/autoreplace, /complete ?) .. could these be scripts? ..
- - commands to move channels and servers in the config list, to set the
-   join/connect order of them.
- - All those options to /WHO and /LIST commands that EPIC has
- - Use different formats for /WHO #channel? There's no need to show the
-   channel in every line then (NOTE: /WHO #chan1,#chan2 should have two
-   headers)
- - nick/channel lists at right side of the text version of irssi. Ctrl-N
-   for example could hide/show them. add mouse support for it.
-
- - try profiling the code with /cat filewith10000lines
- - /SERVER ADD -ircnet foonet bar 6000 pass1,
-   /SERVER ADD -ircnet barnet bar 6000 pass2
-   dircproxy identifies ircnets based on password
- - $@0 always returns 4 (?)
-
- - HÄMÄRÄT BUGIT:
-   ( - /win new hide, /win new, /win down, /win close -> crash ?)
-     - active_mainwin oli jotenkin NULL ja kaatoi.. /window killi teki sen,
-       liittyy varmaan jotenkin siihen että window_close() vaihtoi samaan
-       hiddenikkunaan splitti-ikkunan sisällä jota oltiin kuitenkin tappamassa
-       kun se ei ollut sticky..
-
-
-*** GTK UI
-
- - %| doesn't work with irssi text widget
- - some problems when using multiple windows with focus being all the time in
-   one of the windows and it can't be changed to different window?! Probably
-   has something to do with click to focus.
- - split windows are buggy, destroying them doesn't really work well..
- - mirc ctcp togglemenuitem isn't updated right
-
-*** Big things
-
- - some sort of address book? our own irssi ctcp to ask for other irssi users
-   for their information (of course not without asking (except optionally))..
-   could be nice also to automatically update it, keep track of all seen
-   users gathered when joining channels, whois, who, etc. commands.
-   automatically updating information could be host masks, nicks, ips, seen in
-   channels, operator in channels, .. user specified checks like last topic or
-   mode changes or even msgs to you/some channel/with some keyword. great for
-   spying people ;) maybe even useful sometimes..
-
-   .. but what database would be best for this?
-
- - GTK (non-GNOME) version: icons to toolbars, accelerators to menus
- - Windows style MDI windows are possible with GtkFixed .. Some people would
-   like this.. too much job for me, it would need building the MDI windows
-   ourself (title bar, borders, resizing, etc.)
-
- - online help, documentation, ...
- - plugins:
-     - scheme, tcl, python scripting? eggdrop/epic compatible scripting?
-     - IRC bot, eggdrop is too old, needs a replacement ;) (started, aborted)
-     - Multiplayer games! :) Chess, tic-tac-toe, othello, battleship, tetris,
-       etc. Existing games should probably be used .. though there doesn't
-       seem to be any of these (except tetris) for gnome right now..
-     - audio / video chat :)
-
-*** Needs rethinking ..
-
- * Notify list GUI
- - _one_ popup dialog could open which lists all nicks in notifylist, maybe
-   sorted by arrival time, display the dates, latest joined could be with
-   different color? etc.
- - nick-specific options:
-    - pop up the dialog
-    - run some command (like /exec as soon as I get that done :)
-
- * common api for statusbar handling
- - it should work just as well in text mode and gui, colors could be done
-   with the normal % formats. GUI just ignores the colors..
- - display number of ops, voices, normals and ircops in statusbar
-
- * API for creating/modifying menus and toolbar, especially from plugins
- - at least one configurable menu ("usermenu"), or maybe make the whole
-   menubar user configurable
-
-
-*** ..in GTK UI .. just some things to remember if i'll rewrite it again.
-
- - itext:
-     - save/find text
-     - text selection draws the entire selection every time you move the
-       mouse...
-     - if some other window has got much text, switching to it first time
-       takes some time..?
- - editor in setup for ~/.irssi/startup
- - dcc floods could pop up lots of dialogs..
- - gui help
- - change signal handling in gui-gnome so that the actual drawing and
-   functionality are in different signals, so that plugin could change the
-   whole look and feel of irssi.
- - currently irssi sends USERHOST commands every now and then to find out
-   who are away and who are not.. optionally it could instead just watch if
-   someone hasn't written anything to channel in n minutes and mark it "away"
-   to nicklist.
- - check new irssi versions with http rather than with irssibot..
- - gnome statubar:
-    - clock?
-    - dcc transfer meter (gtk progressbar)
- - dcc send: allow selection of multiple files to send (also for dnd from
-   gmc!) Allow dropping files to anywhere in irssi.