FAQ
Q: Why doesn't irssi display colors even when ircii etc. displays them?
-A: They force ANSI colors even if terminal doesn't support them. By
- default, irssi uses colors only if terminfo/termcap so says. The
- correct way to fix this would be to change your TERM environment to a
- value where colors work, like xterm-color or color_xterm (eg.
- TERM=xterm-color irssi). If this doesn't help, then use the evil way
+A: They force ANSI colors even if terminal doesn't support them. By
+ default, irssi uses colors only if terminfo/termcap so says. The
+ correct way to fix this would be to change your TERM environment to a
+ value where colors work, like xterm-color or color_xterm (eg.
+ TERM=xterm-color irssi). If this doesn't help, then use the evil way
of /SET term_force_colors ON.
Q: How do I easily write text to channel that starts with '/' character?
Q: Why doesn't irssi update my realname (or whatever) after I change it with
/SET realname and reconnect with /RECONNECT or /SERVER?
-A: Irssi is trying to be too smart. This will be fixed in future, but
+A: Irssi is trying to be too smart. This will be fixed in future, but
for now you should use /DISCONNECT and /CONNECT.
Q: I connected to some server which isn't responding but now irssi tries to
connect back to it all the time! How can I stop it?
-A: Two ways. The "good way" to do it is with /DISCONNECT. Check the
- server tags first with /SERVER without giving it any parameters,
- reconnections are those that have tag starting with "recon" text. So
+A: Two ways. The "good way" to do it is with /DISCONNECT. Check the
+ server tags first with /SERVER without giving it any parameters,
+ reconnections are those that have tag starting with "recon" text. So
most probably you're going to do /DISCONNECT recon-1. The other way is
to remove all the reconnections with /RMRECONNS, easier but may remove
- some connections you actually wanted to reconnect (if you used
+ some connections you actually wanted to reconnect (if you used
multiple servers..).
Q: How do I add seconds to timestamp?
Q: Why does irssi say "Irssi: Channel not fully synchronized yet, try again
after a while" when I try to use /BAN etc?
-A: Possibly a bug in irssi, or ircd you're using does something that
- irssi didn't really notice. The new code should make this happen far
- less often than before, but one known reason for this is when irssi
- doesn't notice that you were unable to join some channel. Currently
+A: Possibly a bug in irssi, or ircd you're using does something that
+ irssi didn't really notice. The new code should make this happen far
+ less often than before, but one known reason for this is when irssi
+ doesn't notice that you were unable to join some channel. Currently
however I don't know of any such events irssi doesn't know about.
- Anyway, if this does happen, do /RAWLOG SAVE ~/rawlog soon after
- joining to channel, and either try to figure out yourself why irssi
- didn't get reply to WHO request, or send the whole log to
- cras@irssi.org. Note that the rawlog is by default only 200 lines and
+ Anyway, if this does happen, do /RAWLOG SAVE ~/rawlog soon after
+ joining to channel, and either try to figure out yourself why irssi
+ didn't get reply to WHO request, or send the whole log to
+ cras@irssi.org. Note that the rawlog is by default only 200 lines and
it may not be enough to show all needed information, so you might want
to do /SET rawlog_lines 1000 or so.
A: Read http://irssi.org/?page=about
Q: How do I autorejoin channels after being kicked?
-A: That's evil and you shouldn't do it. If you get kicked, you should
- stay out, at least until the channel forgot you existed :) Most
- channels I've joined just ban you if you autorejoin after kick. If
- you're joined to channels who kick people for fun, try changing
+A: That's evil and you shouldn't do it. If you get kicked, you should
+ stay out, at least until the channel forgot you existed :) Most
+ channels I've joined just ban you if you autorejoin after kick. If
+ you're joined to channels who kick people for fun, try changing
channels or something.
- Anyway, if you REALLY want to do that, and you understand that you're
- doing evilness, you can use the autorejoin.pl script that comes with
- irssi. You'll still need to specify the channels you wish to rejoin
+ Anyway, if you REALLY want to do that, and you understand that you're
+ doing evilness, you can use the autorejoin.pl script that comes with
+ irssi. You'll still need to specify the channels you wish to rejoin
with /SET autorejoin_channels #chan1 #chan2 ...
Q: How do I announce that I'm away/back in all channels I've joined? Or how
do I change my nick when setting myself away/back?
-A: That's even worse than autorejoin. Who could possibly care every
- time you come and go? Many channels will kick you for using this, and
- I for example have added several ignores so I'd never need to see
- these messages. Learn to use /AWAY command properly and tell it's
- existence to people who don't know about it. /WII yournick shows your
+A: That's even worse than autorejoin. Who could possibly care every
+ time you come and go? Many channels will kick you for using this, and
+ I for example have added several ignores so I'd never need to see
+ these messages. Learn to use /AWAY command properly and tell it's
+ existence to people who don't know about it. /WII yournick shows your
away reason much better for people who actually want to know if you're
there or not.
- You can script these behaviours if you really wish to of course. But
- currently there's no public scripts for either of these, and the only
- way I'm going to add such to irssi.org is if the script contains a
+ You can script these behaviours if you really wish to of course. But
+ currently there's no public scripts for either of these, and the only
+ way I'm going to add such to irssi.org is if the script contains a
setting to specify which specific channels the announcement is sent.
Q: Why does irssi autojoin on invite by default?
-A: The setting is /SET join_auto_chans_on_invite - it's not the same
+A: The setting is /SET join_auto_chans_on_invite - it's not the same
as regular autojoin-on-invite, which irssi doesn't even have. The only
- channels that are joined on invite, are the ones you've added to
- config with /CHANNEL ADD -auto. This is very useful with +i channels
- when you need to first send an invite request to bot, or if you get
- accidentally kicked from channel, the kicker can invite you back
+ channels that are joined on invite, are the ones you've added to
+ config with /CHANNEL ADD -auto. This is very useful with +i channels
+ when you need to first send an invite request to bot, or if you get
+ accidentally kicked from channel, the kicker can invite you back
immediately.
- I don't see any bad side effects with this feature, so it's ON by
+ I don't see any bad side effects with this feature, so it's ON by
default. I guess someone could start kicking/inviting you all the time
- but server connection shouldn't drop because of that, and you
+ but server connection shouldn't drop because of that, and you
shouldn't join channels whose operators are that evil.
Q: How to make UTF-8 support work with irssi?
A: xterm -u8, screen -U, /SET term_type utf-8
Q: Will there be /DETACH-like feature?
-A: Maybe. Detach code already is there, attach is just missing :) But
+A: Maybe. Detach code already is there, attach is just missing :) But
I don't have much interest in coding it, and screen works just fine so
why bother?
Q: How do I run scripts automatically at startup?
-A: Put them into ~/.irssi/scripts/autorun/ directory. Or better would
- be if you placed them in ~/.irssi/scripts/ and created symlinks to
- autorun directory (eg. cd ~/.irssi/scripts/autorun/ ; ln -s
+A: Put them into ~/.irssi/scripts/autorun/ directory. Or better would
+ be if you placed them in ~/.irssi/scripts/ and created symlinks to
+ autorun directory (eg. cd ~/.irssi/scripts/autorun/ ; ln -s
../script.pl .)
-
-Q: How do I easily edit existing topic?
-A: /TOPIC <tab>
-
-Q: How can I have /WHOIS replies to active window?
-A: Currently there's no other way than to close the status window, or
- at least do /WINDOW LEVEL -CRAP in it, but that would make a lot other
- messages show up in active window too. I don't have many good ideas
- how this could be easily fixed inside irssi (no, kludging it to only
- work with whois isn't a "fix") - it'd be possible to create a script
- do this though but currently it doesn't exist.
/* Add the fd to be listened, the task found now applies to this
fd as well. */
- silc_schedule_set_listen_fd(schedule, fd, SILC_TASK_READ);
+ silc_schedule_set_listen_fd(schedule, fd, SILC_TASK_READ, FALSE);
return task;
}
/* If the task is non-timeout task we have to tell the scheduler that we
would like to have these tasks scheduled at some odd distant future. */
if (type != SILC_TASK_TIMEOUT)
- silc_schedule_set_listen_fd(schedule, fd, SILC_TASK_READ);
+ silc_schedule_set_listen_fd(schedule, fd, SILC_TASK_READ, FALSE);
silc_mutex_lock(queue->lock);
call this directly if wanted. This can be called multiple times for
one file descriptor to set different iomasks. */
-void silc_schedule_set_listen_fd(SilcSchedule schedule,
- SilcUInt32 fd, SilcTaskEvent iomask)
+void silc_schedule_set_listen_fd(SilcSchedule schedule, SilcUInt32 fd,
+ SilcTaskEvent mask, bool send_events)
{
int i;
bool found = FALSE;
for (i = 0; i < schedule->max_fd; i++)
if (schedule->fd_list[i].fd == fd) {
schedule->fd_list[i].fd = fd;
- schedule->fd_list[i].events = iomask;
+ schedule->fd_list[i].events = mask;
if (i > schedule->last_fd)
schedule->last_fd = i;
found = TRUE;
+ if (send_events) {
+ schedule->fd_list[i].revents = mask;
+ silc_schedule_dispatch_nontimeout(schedule);
+ }
break;
}
for (i = 0; i < schedule->max_fd; i++)
if (schedule->fd_list[i].events == 0) {
schedule->fd_list[i].fd = fd;
- schedule->fd_list[i].events = iomask;
+ schedule->fd_list[i].events = mask;
if (i > schedule->last_fd)
schedule->last_fd = i;
+ if (send_events) {
+ schedule->fd_list[i].revents = mask;
+ silc_schedule_dispatch_nontimeout(schedule);
+ }
break;
}