summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml17
-rw-r--r--NEWS15
-rw-r--r--configure.ac2
-rw-r--r--docs/help/in/alias.in12
-rw-r--r--docs/help/in/away.in4
-rw-r--r--docs/help/in/ban.in4
-rw-r--r--docs/help/in/channel.in6
-rw-r--r--docs/help/in/clear.in2
-rw-r--r--docs/help/in/completion.in7
-rw-r--r--docs/help/in/connect.in1
-rw-r--r--docs/help/in/dcc.in8
-rw-r--r--docs/help/in/deop.in2
-rw-r--r--docs/help/in/devoice.in2
-rw-r--r--docs/help/in/disconnect.in11
-rw-r--r--docs/help/in/echo.in4
-rw-r--r--docs/help/in/eval.in4
-rw-r--r--docs/help/in/exec.in5
-rw-r--r--docs/help/in/flushbuffer.in5
-rw-r--r--docs/help/in/ignore.in8
-rw-r--r--docs/help/in/invitelist.in20
-rw-r--r--docs/help/in/join.in2
-rw-r--r--docs/help/in/kick.in2
-rw-r--r--docs/help/in/kickban.in6
-rw-r--r--docs/help/in/knock.in2
-rw-r--r--docs/help/in/lastlog.in6
-rw-r--r--docs/help/in/layout.in2
-rw-r--r--docs/help/in/levels.in2
-rw-r--r--docs/help/in/list.in4
-rw-r--r--docs/help/in/load.in2
-rw-r--r--docs/help/in/log.in12
-rw-r--r--docs/help/in/map.in2
-rw-r--r--docs/help/in/mircdcc.in4
-rw-r--r--docs/help/in/mode.in12
-rw-r--r--docs/help/in/motd.in3
-rw-r--r--docs/help/in/msg.in4
-rw-r--r--docs/help/in/names.in2
-rw-r--r--docs/help/in/nctcp.in2
-rw-r--r--docs/help/in/netsplit.in2
-rw-r--r--docs/help/in/network.in20
-rw-r--r--docs/help/in/notice.in5
-rw-r--r--docs/help/in/op.in2
-rw-r--r--docs/help/in/ping.in2
-rw-r--r--docs/help/in/rawlog.in6
-rw-r--r--docs/help/in/recode.in2
-rw-r--r--docs/help/in/save.in22
-rw-r--r--docs/help/in/say.in11
-rw-r--r--docs/help/in/sconnect.in23
-rw-r--r--docs/help/in/script.in29
-rw-r--r--docs/help/in/scrollback.in49
-rw-r--r--docs/help/in/server.in14
-rw-r--r--docs/help/in/servlist.in21
-rw-r--r--docs/help/in/set.in38
-rw-r--r--docs/help/in/silence.in45
-rw-r--r--docs/help/in/squery.in12
-rw-r--r--docs/help/in/squit.in18
-rw-r--r--docs/help/in/stats.in58
-rw-r--r--docs/help/in/statusbar.in36
-rw-r--r--docs/help/in/time.in22
-rw-r--r--docs/help/in/toggle.in21
-rw-r--r--docs/help/in/topic.in23
-rw-r--r--docs/help/in/trace.in27
-rw-r--r--docs/help/in/ts.in12
-rw-r--r--docs/help/in/unalias.in17
-rw-r--r--docs/help/in/unban.in48
-rw-r--r--docs/help/in/unignore.in18
-rw-r--r--docs/help/in/unload.in17
-rw-r--r--docs/help/in/unnotify.in17
-rw-r--r--docs/help/in/unquery.in18
-rw-r--r--docs/help/in/unsilence.in18
-rw-r--r--docs/help/in/upgrade.in22
-rw-r--r--docs/help/in/uping.in12
-rw-r--r--docs/help/in/userhost.in19
-rw-r--r--docs/help/in/ver.in21
-rw-r--r--docs/help/in/version.in20
-rw-r--r--docs/help/in/voice.in23
-rw-r--r--docs/help/in/wait.in21
-rw-r--r--docs/help/in/wall.in23
-rw-r--r--docs/help/in/wallops.in19
-rw-r--r--docs/help/in/watch.in18
-rw-r--r--docs/help/in/who.in59
-rw-r--r--docs/help/in/whois.in31
-rw-r--r--docs/help/in/whowas.in25
-rw-r--r--docs/help/in/window.in109
-rw-r--r--docs/help/in/wjoin.in9
-rw-r--r--docs/help/in/wquery.in8
-rw-r--r--docs/perl.txt4
-rw-r--r--docs/signals.txt1
-rw-r--r--docs/startup-HOWTO.html2
-rw-r--r--irssi.conf18
-rw-r--r--m4/glib-2.0.m42
-rw-r--r--src/core/chat-commands.c2
-rw-r--r--src/core/commands.h2
-rw-r--r--src/core/expandos.c22
-rw-r--r--src/core/log.c20
-rw-r--r--src/core/net-nonblock.h2
-rw-r--r--src/core/net-sendbuffer.c2
-rw-r--r--src/core/net-sendbuffer.h2
-rw-r--r--src/core/network-openssl.c2
-rw-r--r--src/core/network.c2
-rw-r--r--src/core/nicklist.c2
-rw-r--r--src/core/query-rec.h2
-rw-r--r--src/core/rawlog.c11
-rw-r--r--src/core/servers-reconnect.c3
-rw-r--r--src/core/servers-setup.c3
-rw-r--r--src/core/servers.c4
-rw-r--r--src/fe-common/core/chat-completion.c30
-rw-r--r--src/fe-common/core/command-history.c16
-rw-r--r--src/fe-common/core/fe-channels.c2
-rw-r--r--src/fe-common/core/fe-ignore.c4
-rw-r--r--src/fe-common/core/fe-log.c24
-rw-r--r--src/fe-common/core/fe-messages.c27
-rw-r--r--src/fe-common/core/fe-queries.c7
-rw-r--r--src/fe-common/core/fe-windows.c2
-rw-r--r--src/fe-common/core/hilight-text.h2
-rw-r--r--src/fe-common/core/printtext.c4
-rw-r--r--src/fe-common/core/themes.c2
-rw-r--r--src/fe-common/core/wcwidth.c2
-rw-r--r--src/fe-common/core/window-commands.c2
-rw-r--r--src/fe-common/core/windows-layout.c2
-rw-r--r--src/fe-common/irc/dcc/fe-dcc-chat-messages.c2
-rw-r--r--src/fe-common/irc/fe-events-numeric.c2
-rw-r--r--src/fe-common/irc/fe-irc-commands.c4
-rw-r--r--src/fe-common/irc/fe-irc-messages.c33
-rw-r--r--src/fe-common/irc/fe-irc-server.c4
-rw-r--r--src/fe-common/irc/fe-whois.c6
-rw-r--r--src/fe-text/gui-entry.c6
-rw-r--r--src/fe-text/gui-printtext.c8
-rw-r--r--src/fe-text/irssi.c4
-rw-r--r--src/fe-text/statusbar.c4
-rw-r--r--src/fe-text/term-terminfo.c36
-rw-r--r--src/fe-text/textbuffer-view.c2
-rw-r--r--src/fe-text/textbuffer-view.h2
-rw-r--r--src/fe-text/tparm.c12
-rw-r--r--src/irc/core/bans.c2
-rw-r--r--src/irc/core/channel-events.c6
-rw-r--r--src/irc/core/channel-rejoin.c2
-rw-r--r--src/irc/core/channels-query.c2
-rw-r--r--src/irc/core/irc-channels.c10
-rw-r--r--src/irc/core/irc-commands.c15
-rw-r--r--src/irc/core/irc-nicklist.c4
-rw-r--r--src/irc/core/irc-servers-reconnect.c2
-rw-r--r--src/irc/core/irc-servers.c26
-rw-r--r--src/irc/core/irc-session.c2
-rw-r--r--src/irc/core/modes.c8
-rw-r--r--src/irc/core/servers-redirect.c4
-rw-r--r--src/irc/dcc/dcc-chat.c10
-rw-r--r--src/irc/dcc/dcc-get.c4
-rw-r--r--src/irc/dcc/dcc-resume.c2
-rw-r--r--src/irc/dcc/dcc-send.c8
-rw-r--r--src/irc/dcc/dcc.c8
-rw-r--r--src/irc/dcc/dcc.h2
-rw-r--r--src/irc/flood/autoignore.c2
-rw-r--r--src/irc/proxy/listen.c4
-rw-r--r--src/perl/perl-common.c2
-rw-r--r--src/perl/perl-signals.c2
-rw-r--r--src/perl/perl-signals.h2
156 files changed, 1118 insertions, 690 deletions
diff --git a/.travis.yml b/.travis.yml
index 04c19d88..35226645 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,15 +1,22 @@
-language: c
-compiler:
- - gcc
- - clang
+language: perl
+perl:
+ - "5.20-shrplib"
+ - "5.18-shrplib"
+ - "system-perl"
+env:
+ - CC=clang
+ - CC=gcc
before_install:
- sudo apt-get update -qq
+ - perl -V
- sudo apt-get build-dep -qq irssi
- sudo apt-get install -qq lynx
+install: true
+
script:
- - ./autogen.sh --with-proxy --with-bot
+ - ./autogen.sh --with-proxy --with-bot --with-perl=module
- cat config.log
- make
- sudo make install
diff --git a/NEWS b/NEWS
index 38f1decd..fe6e5e58 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,7 @@
-v0.8.17-head 2014-xx-xx The Irssi team <staff@irssi.org>
+v0.8.18-head 2014-XX-YY The Irssi team <staff@irssi.org>
+ + Disable SSLv3 due to the POODLE vulnerability.
+
+v0.8.17 2014-10-11 The Irssi team <staff@irssi.org>
+ Document that SSL connections aren't properly handled during /UPGRADE. See Github PR #39.
+ Synchronize scripts with scripts.irssi.org.
+ Performance enhancement of the nicklist as well as the window_item_find function. See Github PR #24.
@@ -18,6 +21,8 @@ v0.8.17-head 2014-xx-xx The Irssi team <staff@irssi.org>
- Fixed format_get_text Perl API. See Github PR #23.
- Fixed gui_printtext_after and term_refresh_*() visibility. See Github PR #22.
- Fixed issue where UTF-8 characters was corrupted once for every 32k text. See Github PR #12.
+ - Fixed redrawing issue with right-aligned statusbar.
+ - Fixed use-after-free bug with cached settings values. See Github PR #147.
v0.8.16 2014-05-28 The Irssi team <staff@irssi.org>
+ Add -noautosendcmd to /SERVER and /CONNECT. Passing this option will
@@ -363,7 +368,7 @@ v0.8.10 2005-12-11 The Irssi team <staff@irssi.org>
<charset> can be almost everything listed by 'iconv -l'
+ Added transpose_words, capitalize_word, downcase_word, upcase_word
key bindings
- + Avoid accidentaly /VER in a channel, by requiring parameter
+ + Avoid accidentally /VER in a channel, by requiring parameter
- Pasted lines weren't added to command history. Some other paste
detection fixes
- Fixed /BIND escape_char
@@ -1900,7 +1905,7 @@ v0.7.14 1999-08-22 Timo Sirainen <cras@irccrew.org> [unstable]
- /msg <tab> completion was a bit buggy, if someone sent you multiple
messages, you had to press tab multiple times until the nick changed
to someone else..
- - Defaut format for signon time in whois displayed nick instead of
+ - Default format for signon time in whois displayed nick instead of
the signon time..
- Disconnecting server while it was still trying to connect hung irssi
- If old configuration file wasn't found, irssi (could have?) crashed
@@ -2184,7 +2189,7 @@ v0.7.9 1999-04-22 Timo Sirainen <a@sicom.fi> [unstable]
that matched the parameters
- Commented out all GUI_INPUT_EXCEPTIONs .. I don't even know when
exceptions are sent and why (I thought that only when some error
- occured..), Linux doesn't seem to send them ever? IRIX however sends
+ occurred..), Linux doesn't seem to send them ever? IRIX however sends
them all the time which made irssi eating all cpu.
- Fixed compiling gui-text with systems that had only slang/slang.h
- gui_widget_depends() had some bugs
@@ -2630,7 +2635,7 @@ v0.3.2 1999-01-22 Timo Sirainen <a@sicom.fi> [unstable]
v0.3.1 1999-01-22 Timo Sirainen <a@sicom.fi>
- * 4 days since last relase. too long :) I'm now starting to create
+ * 4 days since last release. too long :) I'm now starting to create
"unstable" versions of irssi. They have the latest and greatest
features while they might not build/work too well. Check
http://www.sicom.fi/~ikioma/irssi-download.html, new versions will
diff --git a/configure.ac b/configure.ac
index 047ffbbe..c312d065 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT(irssi, 0.8.17-head)
+AC_INIT(irssi, 0.8.18-head)
AC_CONFIG_SRCDIR([src])
AC_CONFIG_AUX_DIR(build-aux)
AC_PREREQ(2.50)
diff --git a/docs/help/in/alias.in b/docs/help/in/alias.in
index 13fcb55a..5cea00c0 100644
--- a/docs/help/in/alias.in
+++ b/docs/help/in/alias.in
@@ -6,16 +6,16 @@
%9Parameters:%9
A name of the alias and the command to execute. You can prepend the alias
- with the "-" character to remove the alias; if no argument is given, your
+ with the '-' character to remove the alias; if no argument is given, your
aliases will be displayed.
%9Description:%9
- Creates or updates an alias; you can use the ";" character to separate
+ Creates or updates an alias; you can use the ';' character to separate
multiple commands.
- The parametesr given to the alias are expanded in "$[\d]" For example $0,
- $1, $2, $8, $12, ...
+ The parameters given to the alias are expanded in '$[\d]'; for example $0,
+ $1, $2, $8, ..., as well as any other special variable.
If you don't use any parameters in your alias, all parameters will be
automatically appended after it.
@@ -29,5 +29,9 @@
/ALIAS UNACT SCRIPT EXEC \$_->activity(0) for Irssi::windows
/ALIAS QOP ^MSG Q op $C
+%9References:%9
+
+ https://github.com/irssi/irssi/blob/master/docs/special_vars.txt
+
%9See also:%9 BIND, UNALIAS
diff --git a/docs/help/in/away.in b/docs/help/in/away.in
index 16479856..e0cf3685 100644
--- a/docs/help/in/away.in
+++ b/docs/help/in/away.in
@@ -12,11 +12,11 @@
%9Description:%9
- Marks yourself as "away"; this method is used to inform people that you
+ Marks yourself as 'away'; this method is used to inform people that you
are not paying attention to your screen.
You might use it when you are taking a nap, in the shower, getting some
- food, or otherwise engaged. When you're "away" you will see "(zZzZ)" in
+ food, or otherwise engaged. When you're 'away' you will see '(zZzZ)' in
your statusbar.
Anyone who does a WHOIS on your nickname will see that you are away, as
diff --git a/docs/help/in/ban.in b/docs/help/in/ban.in
index c43c63dd..724815a0 100644
--- a/docs/help/in/ban.in
+++ b/docs/help/in/ban.in
@@ -24,7 +24,7 @@
%9Configuring the custom format:%9
You must set the custom ban_type to the format you would like to use. For
- example, if you set the custom ban_type to "nick domain", it will generate
+ example, if you set the custom ban_type to 'nick domain', it will generate
a ban based on the nick!*@*.domain.tld format.
%9Examples:%9
@@ -38,5 +38,5 @@
/SET ban_type custom nick domain
/SET ban_type custom user host
-%9See also:%9 KICKBAN, KNOCKOUT
+%9See also:%9 DEOP, KICKBAN, KNOCKOUT, OP, UNBAN
diff --git a/docs/help/in/channel.in b/docs/help/in/channel.in
index f26b6959..01bea3c1 100644
--- a/docs/help/in/channel.in
+++ b/docs/help/in/channel.in
@@ -19,7 +19,7 @@
If no parameters are given, the list of channels you have joined will be
displayed.
-
+
%9Description:%9
Adds, removes or displays the configuration of channels; this method is
@@ -34,8 +34,8 @@
/CHANNEL LIST
/CHANNEL ADD -auto #irssi Freenode
/CHANNEL ADD -auto #basementcat Quakenet secret_lair
- /CHANNEL ADD -auto -bots "*!@*.irssi.org *!bot@irssi.org" -botcmd "msg $0 op WzerTrzq" #hideout Freenode
- /CHANNEL ADD -auto -bots "Q!TheQBot@CServe.quakenet.org" -botcmd "^MSG Q op #irssi" #irssi Quakenet
+ /CHANNEL ADD -auto -bots '*!@*.irssi.org *!bot@irssi.org' -botcmd 'msg $0 op WzerTrzq' #hideout Freenode
+ /CHANNEL ADD -auto -bots 'Q!TheQBot@CServe.quakenet.org' -botcmd '^MSG Q op #irssi' #irssi Quakenet
/CHANNEL REMOVE #hideout Freenode
%9Special Example:%9
diff --git a/docs/help/in/clear.in b/docs/help/in/clear.in
index ad5b8bf8..d43830dd 100644
--- a/docs/help/in/clear.in
+++ b/docs/help/in/clear.in
@@ -8,7 +8,7 @@
-all: Clear all the windows
The window number to clear; if no argument is given, the active window
- is used.
+ will be used.
%9Description:%9
diff --git a/docs/help/in/completion.in b/docs/help/in/completion.in
index 140b1cb1..4275e34e 100644
--- a/docs/help/in/completion.in
+++ b/docs/help/in/completion.in
@@ -5,9 +5,10 @@
%9Parameters:%9
- -auto: Inserts the completion without pressing a word completion character.
+ -auto: Inserts the completion without pressing a word completion
+ character.
-delete: Removes the completion from the configuration.
-
+
A key and the value to use as a replacement. If no argument is given, the
list of completions will be displayed.
@@ -19,7 +20,7 @@
When a replacement has been found, Irssi will choose the most probable
matching word and replaces it; you may press TAB repeatedly to swap between
matches.
-
+
If you want to remove a completion which has the auto parameter set, you
need to enclose the completion between "'" characters.
diff --git a/docs/help/in/connect.in b/docs/help/in/connect.in
index 1c1aa2bb..3330966e 100644
--- a/docs/help/in/connect.in
+++ b/docs/help/in/connect.in
@@ -11,6 +11,7 @@
-ssl_cert: The SSL client certificate file.
-ssl_pkey: The SSL client private key, if not included in the
certificate file.
+ -ssl_pass: The password for the SSL client private key or certificate.
-ssl_verify: Verifies the SSL certificate of the server.
-ssl_cafile: The file with the list of CA certificates.
-ssl_capath: The directory which contains the CA certificates.
diff --git a/docs/help/in/dcc.in b/docs/help/in/dcc.in
index 59ac5036..c348b1ae 100644
--- a/docs/help/in/dcc.in
+++ b/docs/help/in/dcc.in
@@ -27,19 +27,19 @@
and file transfers.
If you are behind NAT, or if the firewall is too restrictive, you might
- want to try if using the passive parameter resolved your conneciton
+ want to try if using the passive parameter resolved your connection
problem.
You can send files which contain special character or spaces by enclosing
- the filename within quotes. For example: "my file with spaces.txt".
+ the filename within quotes. For example: 'my file with spaces.txt'.
%9Examples:%9
/DCC CHAT mike
- /DCC GET bob "summer vacation.mkv"
+ /DCC GET bob 'summer vacation.mkv'
/DCC SEND sarah documents/resume.pdf
/DCC CLOSE mike
- /DCC CLOSE bob "summer vacation.mkv"
+ /DCC CLOSE bob 'summer vacation.mkv'
%9See also:%9 CD
diff --git a/docs/help/in/deop.in b/docs/help/in/deop.in
index 14c2431a..9f70cdef 100644
--- a/docs/help/in/deop.in
+++ b/docs/help/in/deop.in
@@ -10,7 +10,7 @@
%9Description:%9
Removes the channel operator privileges from the given nicknames; you may
- use the wildcard character "*" in a nickname.
+ use the wildcard character '*' in a nickname.
%9Examples:%9
diff --git a/docs/help/in/devoice.in b/docs/help/in/devoice.in
index dae1d0f6..11e3d53b 100644
--- a/docs/help/in/devoice.in
+++ b/docs/help/in/devoice.in
@@ -10,7 +10,7 @@
%9Description:%9
Removes the channel voice privileges from the given nicknames; you may use
- the wildcard character "*" in a nickname.
+ the wildcard character '*' in a nickname.
If a channel is moderated, the users will require a voice or op in order to
be able to send messages to the channel.
diff --git a/docs/help/in/disconnect.in b/docs/help/in/disconnect.in
index 4699b79c..bd4a4e17 100644
--- a/docs/help/in/disconnect.in
+++ b/docs/help/in/disconnect.in
@@ -5,15 +5,16 @@
%9Parameters:%9
- The network to disconnect from and the message to advertise; if no parameters
- are given, the active server will be used.
+ The network to disconnect from and the message to advertise; if no
+ parameters are given, the active server will be used.
%9Description:%9
- Disconnects from one or more IRC servers; the list of all the servers you
- are connected to can be retrieved via the SERVER command.
+ Disconnects from an IRC server; the list of all the servers you are
+ connected to can be retrieved via the SERVER command.
- Use the wildcard character "*" if you want to disconnect from all servers.
+ Use the wildcard character '*' if you want to disconnect from the active
+ server.
%9Examples:%9
diff --git a/docs/help/in/echo.in b/docs/help/in/echo.in
index a730e282..4ff23730 100644
--- a/docs/help/in/echo.in
+++ b/docs/help/in/echo.in
@@ -6,10 +6,10 @@
%9Parameters:%9
-current: Displays the output in the active window.
- -window: Displays the ouput in the target window.
+ -window: Displays the output in the target window.
-level: Displays the output with a given message level.
- The text ouput; if no target is given, the active window will be used.
+ The text output; if no target is given, the active window will be used.
%9Description:%9
diff --git a/docs/help/in/eval.in b/docs/help/in/eval.in
index 74a0c536..b2d4b625 100644
--- a/docs/help/in/eval.in
+++ b/docs/help/in/eval.in
@@ -10,9 +10,9 @@
%9Description:%9
Evaluates the given commands and executes them; you can use internal
- variables and separate multiple commands by using the ";" character.
+ variables and separate multiple commands by using the ';' character.
-%9Examples%9
+%9Examples:%9
/EVAL echo I am connected to ${S} on ${chatnet} as ${N}
/EVAL echo My user privileges are +${usermode}; echo Let's party!
diff --git a/docs/help/in/exec.in b/docs/help/in/exec.in
index 2cca5ce3..2947ae2e 100644
--- a/docs/help/in/exec.in
+++ b/docs/help/in/exec.in
@@ -9,7 +9,8 @@
-nosh: Doesn't execute the command through /bin/sh.
-out: Sends the output to the active channel or query.
-msg: Sends the output to the specified nickname or channel.
- -notice: Sends the output to the specified nickname or channel as notices.
+ -notice: Sends the output to the specified nickname or channel as
+ notices.
-name: Gives the process the specified name.
-window: Displays the output in the active window.
-close: Forcibly closes a process that doesn't die.
@@ -29,7 +30,7 @@
The output of the process can be redirected to various targets, such as
a window, a channel, a nickname or a query.
- The process identifier must always begin with the "%%" character. For
+ The process identifier must always begin with the '%%' character. For
example %%0.
If you remove a process with the close parameter, it will only make Irssi
diff --git a/docs/help/in/flushbuffer.in b/docs/help/in/flushbuffer.in
index 9b1400b9..85493038 100644
--- a/docs/help/in/flushbuffer.in
+++ b/docs/help/in/flushbuffer.in
@@ -5,12 +5,13 @@
%9Description:%9
- Forces an immediate flush of the buffers if the related settings are enabled.
+ Forces an immediate flush of the buffers if the related settings are
+ enabled.
%9Examples:%9
/FLUSHBUFFER
-
+
/SET write_buffer_size
/SET write_buffer_timeout
diff --git a/docs/help/in/ignore.in b/docs/help/in/ignore.in
index a247dcc8..b0a547c1 100644
--- a/docs/help/in/ignore.in
+++ b/docs/help/in/ignore.in
@@ -9,7 +9,8 @@
-full: Indicates that the pattern must match a full word.
-pattern: The text pattern to ignore.
-except: Negates the ignore.
- -replies: Also ignore nicknames who are talking to anyone who matches the ignore.
+ -replies: Also ignore nicknames who are talking to anyone who matches
+ the ignore.
-network: Ignores only on a specific network.
-channels: Ignores only on specific channels.
-time: The timeout to automatically remove the ignore.
@@ -21,8 +22,8 @@
Ignores nicknames or text that matches a pattern.
- The special level "NO_ACT" can be used to ignore activity in the statusbar
- without actually ignoring the message; this behaviour is somewhat special
+ The special level 'NO_ACT' can be used to ignore activity in the statusbar
+ without actually ignoring the message; this behavior is somewhat special
because it is allowed in addition to other ignores for the same target.
%9Examples:%9
@@ -40,7 +41,6 @@
/IGNORE #irssi NO_ACT JOINS PARTS QUITS
/IGNORE mike NO_ACT -MSGS
/IGNORE -regexp -pattern
- /IGNORE mike NO_ACT -MSGS
%9See also:%9 ACCEPT, SILENCE, UNIGNORE
diff --git a/docs/help/in/invitelist.in b/docs/help/in/invitelist.in
deleted file mode 100644
index e516b31a..00000000
--- a/docs/help/in/invitelist.in
+++ /dev/null
@@ -1,20 +0,0 @@
-
-%9Syntax:%9
-
-INVITELIST
-
-%9Description:%9
-
- Displays the invitelist for the active channel; nicknames who match the
- masks will be able to join the channel if its invite only.
-
- This is not a command, but a default alias.
-
-%9Examples:%9
-
- /INVITELIST
-
-%9References:%9
-
- /ALIAS INVITELIST MODE $C +I
-
diff --git a/docs/help/in/join.in b/docs/help/in/join.in
index 6cdfd745..39fa23f8 100644
--- a/docs/help/in/join.in
+++ b/docs/help/in/join.in
@@ -9,7 +9,7 @@
-invite Joins the channel you were last invited to.
-<server tag> The server tag on which you want to join the channel.
- The channel names, separated by a commma, to join and the channel key.
+ The channel names, separated by a comma, to join and the channel key.
%9Description:%9
diff --git a/docs/help/in/kick.in b/docs/help/in/kick.in
index 00586059..eb926c09 100644
--- a/docs/help/in/kick.in
+++ b/docs/help/in/kick.in
@@ -3,7 +3,7 @@
@SYNTAX:kick@
-%9Parameters%9
+%9Parameters:%9
The channel and the nicknames, separated by a comma, to kick from the
channel and the reason thereof; if no channel is given, the active channel
diff --git a/docs/help/in/kickban.in b/docs/help/in/kickban.in
index 3aef99cf..b2950f46 100644
--- a/docs/help/in/kickban.in
+++ b/docs/help/in/kickban.in
@@ -5,9 +5,9 @@
%9Parameters:%9
- The channel and the nicknames, separated by a comma, to kickban from the
- channel and the reason thereof; if no channel is given, the active channel
- will be used.
+ The channel and the nicknames, separated by a comma, to kick and ban from
+ the channel and the reason thereof; if no channel is given, the active
+ channel will be used.
%9Description:%9
diff --git a/docs/help/in/knock.in b/docs/help/in/knock.in
index f5c2cf53..bb554d55 100644
--- a/docs/help/in/knock.in
+++ b/docs/help/in/knock.in
@@ -11,7 +11,7 @@
Sends an invitation request to the channel operators of the target channel;
this command may not work on all IRC servers.
-
+
The following conditions must be met:
* You are not banned from the channel.
diff --git a/docs/help/in/lastlog.in b/docs/help/in/lastlog.in
index 41522cb2..e7b90d42 100644
--- a/docs/help/in/lastlog.in
+++ b/docs/help/in/lastlog.in
@@ -5,7 +5,7 @@
%9Parameters:%9
- -: Doesn't print the "Lastlog:" and "End of Lastlog" messages.
+ -: Doesn't print the 'Lastlog:' and 'End of Lastlog' messages.
-file: Output the lastlog to a file instead of the active window.
-window: Specifies the window to check.
-new: Only displays results since the previous lastlog.
@@ -30,8 +30,8 @@
%9Examples:%9
/LASTLOG holiday
- /LASTLOG "is on vacation"
- /LASTLOG -file -force ~/mike.log "mike"
+ /LASTLOG 'is on vacation'
+ /LASTLOG -file -force ~/mike.log 'mike'
%9See also:%9 HILIGHT, SCROLLBACK
diff --git a/docs/help/in/layout.in b/docs/help/in/layout.in
index 041549d1..4b0a2efe 100644
--- a/docs/help/in/layout.in
+++ b/docs/help/in/layout.in
@@ -8,7 +8,7 @@
SAVE: Saves your layout to the configuration.
RESET: Removes the saved layout from the configuration.
-%9Descripton:%9
+%9Description:%9
Saves the layout of your window configuration; the next time you connect
to the server, you will join the channels in the same window as before.
diff --git a/docs/help/in/levels.in b/docs/help/in/levels.in
index c44a551a..429dd7c0 100644
--- a/docs/help/in/levels.in
+++ b/docs/help/in/levels.in
@@ -36,5 +36,5 @@
NOHILIGHT The text is not highlighted.
When using levels from Irssi scripts, you need to prepend the level with
- "MSGLEVEL_"; for example "CRAP" will be "MSGLEVEL_CRAP".
+ 'MSGLEVEL_'; for example 'CRAP' becomes 'MSGLEVEL_CRAP'.
diff --git a/docs/help/in/list.in b/docs/help/in/list.in
index cbce105e..14858337 100644
--- a/docs/help/in/list.in
+++ b/docs/help/in/list.in
@@ -5,7 +5,7 @@
%9Parameters:%9
- -yes: Comfirms that you want to receive a large amount of data.
+ -yes: Confirms that you want to receive a large amount of data.
The text a channel must match; if no argument is given, the list of all
channels will be displayed.
@@ -21,5 +21,5 @@
/LIST -yes
/LIST -yes *ubuntu*
-See also: SQUERY
+%9See also:%9 QUOTE, STATS, WHOIS
diff --git a/docs/help/in/load.in b/docs/help/in/load.in
index 643d09d3..56f78360 100644
--- a/docs/help/in/load.in
+++ b/docs/help/in/load.in
@@ -3,7 +3,7 @@
@SYNTAX:load@
-%9Parameters%9
+%9Parameters:%9
The name of the module and submodule to load.
diff --git a/docs/help/in/log.in b/docs/help/in/log.in
index 647d4560..e4743d46 100644
--- a/docs/help/in/log.in
+++ b/docs/help/in/log.in
@@ -5,8 +5,8 @@
%9Parameters:%9
- OPEN: Opens a logfile.
- CLOSE: Closes a logfile.
+ OPEN: Opens a log file.
+ CLOSE: Closes a log file.
START: Starts logging a log entry.
STOP: Stops logging a log entry.
@@ -16,7 +16,7 @@
-window: Displays the output to the active window, or the window
specified in the targets parameter.
-<server tag>: The server tag the targets must be on.
- -targets: Logs the specified nickhames or channels.
+ -targets: Logs the specified nicknames or channels.
-colors: Also log the color codes of the messages.
The filename of the log and the levels to match; if no argument is given,
@@ -24,10 +24,10 @@
%9Description:%9
- Opens a logfile and stores the messages of the given targets into it; the
- logfiles will be locked so multiple clients cannot log to the same file.
+ Opens a log file and stores the messages of the given targets into it; the
+ log files will be locked so multiple clients cannot log to the same file.
- You may use any of the date formats to create a logrotation; we strongly
+ You may use any of the date formats to create a log rotation; we strongly
recommend you to enable autolog if you are interested in keeping logs.
%9Examples:%9
diff --git a/docs/help/in/map.in b/docs/help/in/map.in
index 81994cf2..9a80698a 100644
--- a/docs/help/in/map.in
+++ b/docs/help/in/map.in
@@ -5,7 +5,7 @@
%9Description:%9
- Displays the network map of an IRC network; this command is usally
+ Displays the network map of an IRC network; this command is usually
reserved for IRC operators and does not work on all servers.
%9Examples:%9
diff --git a/docs/help/in/mircdcc.in b/docs/help/in/mircdcc.in
index 3282d68c..ce57a3fb 100644
--- a/docs/help/in/mircdcc.in
+++ b/docs/help/in/mircdcc.in
@@ -13,7 +13,7 @@
After establishing a DCC CHAT connection that you initiated, you might
encounter some protocol issues if the target is using mIRC.
- If you or your target sees some unexpected output or behaviour inside a DCC
+ If you or your target sees some unexpected output or behavior inside a DCC
CHAT session, use this command to enable mIRC compatibility mode.
When receiving a connection from an mIRC user, the compatibility mode will
@@ -24,5 +24,5 @@
/MIRCDCC ON
/MIRCDCC OFF
-%9See also:%9 ACTION, DCC, CTCP
+%9See also:%9 ACTION, CTCP, DCC
diff --git a/docs/help/in/mode.in b/docs/help/in/mode.in
index d4cf2d25..93d051fb 100644
--- a/docs/help/in/mode.in
+++ b/docs/help/in/mode.in
@@ -16,17 +16,17 @@
Modifies the user or channel modes for which you are privileged to modify.
You can specify multiple modes in one command and prepend them by using the
- "+" sign to set or "-" sign to unset; modes that require a parameter will be
+ '+' sign to set or '-' sign to unset; modes that require a parameter will be
retrieved from the argument list.
Some common channel modes are:
b <mask>: Adds or removes a ban; a ban will prevent a user who
matches the given mask from joining the channel unless
- he or she is invited or in the excempt list.
+ he or she is invited or in the exempt list.
e <mask>: Adds or removes a ban exception; users who match a mask
- on the excempt list are able to join a channel even if
- they also match an entry on the banlist.
+ on the exempt list are able to join a channel even if
+ they also match an entry on the ban list.
i: When enabled, users need to be invited into the channel
or have a matching entry in the invite list.
I <mask>: Adds or removes an invite; users who match a mask on
@@ -39,7 +39,7 @@
that may join the channel.
m: When enabled, users who are not opped or voiced cannot
send messages to the channel.
- n: When enabled, users who are not on the channel cannnot
+ n: When enabled, users who are not on the channel cannot
send messages to it.
p: When enabled, the channel will not be displayed in your
WHOIS output.
@@ -73,5 +73,5 @@
/MODE +impsnkl secret_hideout 100
/MODE mike +iw
-%9See also:%9 BAN, DEOP, DEVOICE, UNBAN, OP, VOICE
+%9See also:%9 BAN, DEOP, DEVOICE, OP, UNBAN, VOICE
diff --git a/docs/help/in/motd.in b/docs/help/in/motd.in
index 5a69d59e..e33a1c75 100644
--- a/docs/help/in/motd.in
+++ b/docs/help/in/motd.in
@@ -1,5 +1,4 @@
-
%9Syntax:%9
@SYNTAX:motd@
@@ -11,7 +10,7 @@
%9Description:%9
- Displays the "Message of the Day" of an IRC server.
+ Displays the welcome message of an IRC server.
%9Examples:%9
diff --git a/docs/help/in/msg.in b/docs/help/in/msg.in
index dc70f1f3..9e0879e4 100644
--- a/docs/help/in/msg.in
+++ b/docs/help/in/msg.in
@@ -11,6 +11,9 @@
The target nickname or channel and the message to send.
+ Use the wildcard character '*' if you want to use the active nickname or
+ channel.
+
%9Description:%9
Sends a message to a nickname or channel.
@@ -19,6 +22,7 @@
/MSG mike Hi, what's up?
/MSG #irssi I am awesome :)
+ /MSG * Do you want to build a snowman?
%9See also:%9 ACTION, DCC, JOIN
diff --git a/docs/help/in/names.in b/docs/help/in/names.in
index 0a122864..8fd8cf91 100644
--- a/docs/help/in/names.in
+++ b/docs/help/in/names.in
@@ -16,7 +16,7 @@
%9Description:%9
Displays the users who are in a channel; you can provide multiple channels
- by separating them with the comma "," character.
+ by separating them with a comma.
%9Examples:%9
diff --git a/docs/help/in/nctcp.in b/docs/help/in/nctcp.in
index 3e6858f6..93c3f3ec 100644
--- a/docs/help/in/nctcp.in
+++ b/docs/help/in/nctcp.in
@@ -10,7 +10,7 @@
%9Description:%9
Sends a CTCP reply to a nickname or channel; you can provide multiple
- targets by separating them with the comma "," character.
+ targets by separating them with a comma.
%9Examples:%9
diff --git a/docs/help/in/netsplit.in b/docs/help/in/netsplit.in
index e1667179..35788169 100644
--- a/docs/help/in/netsplit.in
+++ b/docs/help/in/netsplit.in
@@ -6,7 +6,7 @@
%9Description:%9
Displays some information about users who are currently lost in one or
- more netsplits.
+ more net splits.
%9Examples:%9
diff --git a/docs/help/in/network.in b/docs/help/in/network.in
index b07b996e..046d9feb 100644
--- a/docs/help/in/network.in
+++ b/docs/help/in/network.in
@@ -14,8 +14,8 @@
-realname: Specifies the real name to use.
-host: Specifies the hostname to use.
-usermode: Specifies the user modes to set on yourself.
- -autosendcmd: Specifies the commands, separated by the ";" character,
- and enclosed within two '"' characters, to perform after
+ -autosendcmd: Specifies the commands, separated by the ';' character,
+ and enclosed within two "'" characters, to perform after
connecting.
-querychans: Specifies the maximum number of channels to put in one MODE
or WHO command when synchronizing.
@@ -30,7 +30,7 @@
-cmdspeed: Specifies the minimum amount of time, expressed in
milliseconds, that the client must wait before sending
additional commands to the server.
- -cmxmax: Specifies the maximum number of commands to perform before
+ -cmdmax: Specifies the maximum number of commands to perform before
starting the internal flood protection.
The name of the network to add, edit or remove; if no parameter is given,
@@ -40,19 +40,19 @@
Displays, adds, modifies or removes the network configuration of IRC
networks.
-
+
When using the ADD parameter on a network that already exists, the
configuration will be merged with each other.
-
- We recommend using "WAIT 2000" between the automated commands in order to
+
+ We recommend using 'WAIT 2000' between the automated commands in order to
prevent you from being kicked from the network due to flooding commands.
-
+
%9Examples:%9
/NETWORK ADD -usermode +giw EFnet
- /NETWORK ADD -usermode +iw -nick mike -realname "The one and only mike!" -host staff.irssi.org Freenode
- /NETWORK ADD -autosendcmd "^MSG NickServ identify WzerT8zq" Freenode
- /NETWORK ADD -autosendcmd "^MSG Q@CServe.quakenet.org AUTH mike WzerT8zq; WAIT 2000; OPER mike WzerT8zq; WAIT 2000; MODE mike +kXP" Quakenet
+ /NETWORK ADD -usermode +iw -nick mike -realname 'The one and only mike!' -host staff.irssi.org Freenode
+ /NETWORK ADD -autosendcmd '^MSG NickServ identify WzerT8zq' Freenode
+ /NETWORK ADD -autosendcmd '^MSG Q@CServe.quakenet.org AUTH mike WzerT8zq; WAIT 2000; OPER mike WzerT8zq; WAIT 2000; MODE mike +kXP' Quakenet
/NETWORK REMOVE Freenode
%9See also:%9 CHANNEL, CONNECT, SERVER
diff --git a/docs/help/in/notice.in b/docs/help/in/notice.in
index c715c8a6..4c8d2139 100644
--- a/docs/help/in/notice.in
+++ b/docs/help/in/notice.in
@@ -11,9 +11,8 @@
Sends a notice to the target nickname or channel; these are often used in
automated bots or scripts.
-
- You can provide multiple targets by separating them with the comma ","
- character.
+
+ You can provide multiple targets by separating them with a comma.
%9Examples:%9
diff --git a/docs/help/in/op.in b/docs/help/in/op.in
index 5c151780..ff15c52f 100644
--- a/docs/help/in/op.in
+++ b/docs/help/in/op.in
@@ -10,7 +10,7 @@
%9Description:%9
Grants the channel operator privileges to the given nicknames; you may use
- the wildcard character "*" in a nickname.
+ the wildcard character '*' in a nickname.
%9Examples:%9
diff --git a/docs/help/in/ping.in b/docs/help/in/ping.in
index 9190b23c..11e618df 100644
--- a/docs/help/in/ping.in
+++ b/docs/help/in/ping.in
@@ -5,7 +5,7 @@
%9Parameters:%9
- The nickname or channel to ping, you can use the asterisk "*" character to
+ The nickname or channel to ping, you can use the asterisk '*' character to
ping every user on a channel.
%9Description:%9
diff --git a/docs/help/in/rawlog.in b/docs/help/in/rawlog.in
index b0405eb0..1c2dafea 100644
--- a/docs/help/in/rawlog.in
+++ b/docs/help/in/rawlog.in
@@ -6,15 +6,15 @@
%9Parameters:%9
SAVE: Saves the raw server buffer into a file.
- OPEN: Opens a logfile and start logging all raw data.
- CLOSE: Closes the logfile
+ OPEN: Opens a log file and start logging all raw data.
+ CLOSE: Closes the log file
The filename to store the raw data into.
%9Description:%9
Saves all the raw data that is received from and transmitted to the active
- server into a logfile.
+ server into a log file.
%9Examples:%9
diff --git a/docs/help/in/recode.in b/docs/help/in/recode.in
index 0668ec95..63f52339 100644
--- a/docs/help/in/recode.in
+++ b/docs/help/in/recode.in
@@ -17,7 +17,7 @@
into a specific charset.
To get a list of supported charsets on your system, you can generally use
- the "iconv -l" command.
+ the 'iconv -l' command.
%9Examples:%9
diff --git a/docs/help/in/save.in b/docs/help/in/save.in
index 8ab25f29..09785978 100644
--- a/docs/help/in/save.in
+++ b/docs/help/in/save.in
@@ -1,10 +1,24 @@
+%9Syntax:%9
+
@SYNTAX:save@
- -formats: Save all /FORMATs into theme file
+%9Parameters:%9
+
+ -formats: Saves all the formats into the theme file.
+
+ The file to save the configuration or theme into; if no parameter is given,
+ the active configuration or theme file will be used.
+
+%9Description:%9
+
+ Saves the configuration file.
+
+%9Examples:%9
-Saves the current Irssi configuration into the configuration
-file.
+ /SAVE
+ /SAVE -formats
+ /SAVE ~/.irssi/config-new
-See also: RELOAD
+%9See also:%9 RELOAD, SET
diff --git a/docs/help/in/say.in b/docs/help/in/say.in
deleted file mode 100644
index 6997743d..00000000
--- a/docs/help/in/say.in
+++ /dev/null
@@ -1,11 +0,0 @@
-
-SAY <message>
-(alias for "/MSG *")
-
-The actual command used to put <message> into the current channel. A very
-useful command if you need aliases for often used phrases.
-
-For example: /alias brb say I'm off for a while, be right back.
-
-This would allow you to use /brb to put the "I'm off*" into the channel.
-
diff --git a/docs/help/in/sconnect.in b/docs/help/in/sconnect.in
index ed07f4f9..47da885f 100644
--- a/docs/help/in/sconnect.in
+++ b/docs/help/in/sconnect.in
@@ -1,8 +1,25 @@
+%9Syntax:%9
+
@SYNTAX:sconnect@
-IRC Operator command. Makes an IRC server connect
-to another server. This is CONNECT on the protocol level.
+%9Parameters:%9
+
+ The server to connect to, the connection port and the remote server that
+ initiates the connection attempt.
+
+ If no remote server is given, the server you are currently connected to will
+ be used.
+
+%9Description:%9
+
+ Connect a server to the IRC network; this command is restricted to IRC
+ operators.
+
+%9Examples:%9
+
+ /SCONNECT ircsource.irssi.org
+ /SCONNECT ircsource.irssi.org 6667 be.hub
-See also: OPER, SQUIT, RESTART
+%9See also:%9 DIE, KILL, OPER, RESTART, SQUIT
diff --git a/docs/help/in/script.in b/docs/help/in/script.in
index 0354512b..6e94ef7f 100644
--- a/docs/help/in/script.in
+++ b/docs/help/in/script.in
@@ -1,19 +1,32 @@
+%9Syntax:%9
+
@SYNTAX:script@
-Irssi has very powerful support for scripts written in Perl - they can extend functionality of Irssi in almost unlimited way, and they still keep the client's core unbloated, light and fast. You can control loading and execution of such scripts by this command.
+%9Parameters:%9
-Without any parameters, /SCRIPT acts in same way as if you would call /SCRIPT LIST.
+ LIST: Displays the list of loaded scripts.
+ EXEC: Executes the given code.
+ LOAD: Loads the given script into the memory and executes it.
+ UNLOAD: Unloads the given script from the memory.
+ RESET: Unloads all the scripts.
+ -permanent: In combination with EXEC, the code will be loaded into the
+ memory.
-/SCRIPT LIST displays list of all currently loaded scripts, together with full path to their source files.
+ If no argument is given, the list of active scripts will be displayed.
-/SCRIPT EXEC executes the <commands> as a little perl script. It doesn't preserve it loaded in memory, unless -permanent is specified.
+%9Description:%9
-/SCRIPT LOAD loads the <script> in memory and executes it.
+ Interact with the Perl engine to execute scripts.
-/SCRIPT UNLOAD unloads the <script> from memory.
+%9Examples:%9
-/SCRIPT RESET unloads all loaded scripts and resets the perl interpreter.
+ /SCRIPT
+ /SCRIPT LIST
+ /SCRIPT LOAD ~/.irssi/scripts/nickserv.pl
+ /SCRIPT UNLOAD nickserv
+ /SCRIPT RESET
+ /SCRIPT EXEC foreach my $channel (Irssi::channels()) { Irssi::print($channel->{name} . ' @ ' . $channel->{server}->{tag}); }
-See also: LOAD, UNLOAD
+%9See also:%9 LOAD, SAVE, UNLOAD
diff --git a/docs/help/in/scrollback.in b/docs/help/in/scrollback.in
index 4124cf6f..5f59d842 100644
--- a/docs/help/in/scrollback.in
+++ b/docs/help/in/scrollback.in
@@ -1,20 +1,37 @@
+%9Syntax:%9
+
@SYNTAX:scrollback@
-/SCROLLBACK, or the default alias /SB:
-
-/SB LEVELCLEAR
- - Remove lines with level matching one of those
- specified in the comma-separated list <level>.
-/SB CLEAR
- - Clear screen, free all memory used by texts in window.
-/SB HOME
- - Jump to start of the buffer.
-/SB END
- - Jump to end of the buffer.
-/SB GOTO [[-|+]line#|time]
- - Jump to specified line or timestamp.
- time format is [dd[.mm] | -<days ago>] hh:mi[:ss].
-
-See also: SET SCROLL
+%9Parameters:%9
+
+ CLEAR: Clears the screen and the buffer of all text.
+ LEVELCLEAR: Clears the screen and the buffer of text matching the given
+ levels.
+ GOTO: Go to the given position.
+ HOME: Go to the start of the buffer.
+ END: Go to the end of the buffer.
+
+ -all: Applies to all windows instead of only the active one.
+ -level: The levels, separated by a comma, to match.
+
+ The line number, timestamp to jump to or the window reference number to
+ clear.
+
+%9Description:%9
+
+ Manipulate the text in the window to go to a to the given line number, or
+ clear the buffers.
+
+ The timestamp format is format is '[dd[.mm] | -<days ago>] hh:mi[:ss]'.
+
+%9Examples:%9
+
+ /SCROLLBACK CLEAR
+ /SCROLLBACK LEVELCLEAR -level NOTICES
+ /SCROLLBACK GOTO 100
+ /SCROLLBACK HOME
+ /SCROLLBACK END
+
+%9See also:%9 CLEAR, WINDOW
diff --git a/docs/help/in/server.in b/docs/help/in/server.in
index 9cd7c8bd..f6706daf 100644
--- a/docs/help/in/server.in
+++ b/docs/help/in/server.in
@@ -18,7 +18,7 @@
-ssl_cert: The SSL client certificate file.
-ssl_pkey: The SSL client private key, if not included in the
certificate file.
- -ssl_pass: Verifies the SSL certificate of the server.
+ -ssl_pass: The password for the SSL client private key or certificate.
-ssl_verify: Verifies the SSL certificate of the server.
-ssl_cafile: The file with the list of CA certificates.
-ssl_capath: The directory which contains the CA certificates.
@@ -29,7 +29,7 @@
-cmdspeed: Specifies the minimum amount of time, expressed in
milliseconds, that the client must wait before sending
additional commands to the server.
- -cmxmax: Specifies the maximum number of commands to perform
+ -cmdmax: Specifies the maximum number of commands to perform
before starting the internal flood protection.
-port: Specifies the port to connect to the server.
-noproxy: Ignores the global proxy configuration.
@@ -43,13 +43,13 @@
Displays, adds, modifies or removes the network configuration of IRC
servers.
-
+
When using the ADD parameter on a server that already exists, the
configuration will be merged with each other.
-
+
When using the command without any of the given parameters, it will
connect to the specified server; the server in the active window will be
- disconnected unless you prepend the server with the "+" character; the same
+ disconnected unless you prepend the server with the '+' character; the same
method is applicable to the CONNECT parameter.
%9Examples:%9
@@ -61,9 +61,9 @@
/SERVER CONNECT +chat.freenode.net
/SERVER ADD -network Freenode -noautosendcmd orwell.freenode.net
/SERVER ADD -! -auto -host staff.irssi.org -port 6667 -4 -network Freenode -noproxy orwell.freenode.net
- /SERVER REMOVE -network Freenode orwell.freenode.net
+ /SERVER REMOVE orwell.freenode.net 6667 Freenode
/SERVER PURGE
/SERVER PURGE orwell.freenode.net
-
+
%9See also:%9 CHANNEL, CONNECT, DISCONNECT, NETWORK, RECONNECT, RMRECONNS
diff --git a/docs/help/in/servlist.in b/docs/help/in/servlist.in
deleted file mode 100644
index e9b61a6d..00000000
--- a/docs/help/in/servlist.in
+++ /dev/null
@@ -1,21 +0,0 @@
-
-@SYNTAX:servlist@
-
-Works only on IRCnet.
-
-SERVLIST gives the list of services currently present on the
-IRC network. It can take two arguments.
- <mask> limits the output to the services which names matches
- the mask.
- <type> limits the output to the services of the specified type.
-
-The fields returned are:
- Service name.
- Server who introduced the service.
- Distribution mask.
- Service type.
- Hop count to the service.
- A comment.
-
-See also: SQUERY
-
diff --git a/docs/help/in/set.in b/docs/help/in/set.in
index e355aaba..b2a4551b 100644
--- a/docs/help/in/set.in
+++ b/docs/help/in/set.in
@@ -1,23 +1,33 @@
+%9Syntax:%9
+
@SYNTAX:set@
-You can view or change the settings with /SET command.
+%9Parameters:%9
+
+ -clear: Removes the setting's value from the configuration.
+ -default: Restore the setting to its default value.
+
+ The setting and the value; if no value is given, the list of settings that
+ matched will be returned. If no arguments are given, all the settings will
+ be displayed.
+
+%9Description:%9
-/SET without any arguments displays all the settings.
-/SET <key> displays settings whose key (partly) matches <key>
-/SET <key> <value> sets <key> to <value>
+ Modifies the value of a setting; boolean settings accept only ON, OFF and
+ TOGGLE.
-Boolean settings accept only values ON, OFF and TOGGLE. You can
-also use /TOGGLE command to change them, so /TOGGLE <key> behaves
-like /SET <key> TOGGLE. /TOGGLE also accepts arguments ON and OFF
-when /TOGGLE behaves exactly like /SET.
+ Please remember that you need to use the SAVE command to store the changes
+ into your configuration.
-Remember that changes are not saved until you use /SAVE!
+%9Examples:%9
-Examples:
- /SET autolog OFF - Sets value for setting 'autolog'
- /SET close - Shows all settings whose variable name
- contains 'close'. Very practical.
+ /SET
+ /SET nick mike
+ /SET -clear nick
+ /SET log_timestamp %%H:%%H:%%S
+ /SET -default log_timestamp
+ /SET close
-See also: TOGGLE
+%9See also:%9 SAVE, TOGGLE
diff --git a/docs/help/in/silence.in b/docs/help/in/silence.in
index d4562cf7..cc3c62da 100644
--- a/docs/help/in/silence.in
+++ b/docs/help/in/silence.in
@@ -1,24 +1,29 @@
+%9Syntax:%9
+
@SYNTAX:silence@
-Works only in some IRC networks.
-
-SILENCE is similar in many respects to IGNORE, except that it is
-server-based. What this means is the server will never even send
-you messages from anyone you have silenced, whereas it will with
-IGNORE, where your client is responsible for filtering the messages
-out. This has the advantage of not bogging your client down with
-excessive data as it tries to filter out messages. The silence list
-is lost when you disconnect. SILENCE only affects private messages
-and invites.
-
-The default behavior is to SILENCE a nick!user@host pattern, and
-if such a pattern is not passed as the argument, it must be prepended
-with a plus ('+') to be added to your silence list. If a pattern is
-prepended with a minus ('-'), it will be removed from your silence list.
-If you only specify a nickname, you can list the patterns in the
-silence list owned by that nickname. If no arguments are given, your
-own silence list is displayed.
-
-See also: IGNORE, ACCEPT
+%9Parameters:%9
+
+ The nickname or hostname to silence; you must prepend it by the '+' or '-'
+ character to indicate whether the entry should be added or removed.
+
+ If no arguments are given, the list of silence entries will be displayed.
+
+%9Description:%9
+
+ Manages the server side ignore list; users or hostnames that match an entry
+ on the list are not able to send you any messages or invites.
+
+ This command does not work on all IRC networks.
+
+%9Examples:%9
+
+ /SILENCE
+ /SILENCE +mike
+ /SILENCE -mike
+ /SILENCE +*!*@*.irssi.org
+ /SILENCE -*!*@*.irssi.org
+
+%9See also:%9 ACCEPT, IGNORE
diff --git a/docs/help/in/squery.in b/docs/help/in/squery.in
deleted file mode 100644
index 9c29b956..00000000
--- a/docs/help/in/squery.in
+++ /dev/null
@@ -1,12 +0,0 @@
-
-@SYNTAX:squery@
-
- <service> - Service name
- <commands> - Commands to pass to the service.
-
-Works only on IRCnet.
-
-/SQUERY sends a query to the specified service.
-
-See also: SERVLIST, NOTE, LIST
-
diff --git a/docs/help/in/squit.in b/docs/help/in/squit.in
index ab888781..b45a308f 100644
--- a/docs/help/in/squit.in
+++ b/docs/help/in/squit.in
@@ -1,8 +1,20 @@
+%9Syntax:%9
+
@SYNTAX:squit@
-IRC Operator command. Splits the given server and all servers
-behind it from your side of the IRC network.
+%9Parameters:%9
+
+ The server and the disconnect reason.
+
+%9Description:%9
+
+ Disconnects a server from the IRC network; this command is restricted to
+ IRC operators.
+
+%9Examples:%9
+
+ /SQUIT ircsource.irssi.org I'm fixing a desync!
-See also: SCONNECT, OPER, DIE, RESTART
+%9See also:%9 DIE, OPER, SCONNECT
diff --git a/docs/help/in/stats.in b/docs/help/in/stats.in
index 5de453f5..80f16707 100644
--- a/docs/help/in/stats.in
+++ b/docs/help/in/stats.in
@@ -1,23 +1,43 @@
+%9Syntax:%9
+
@SYNTAX:stats@
-Shows some irc server usage statistics. Available types vary slightly
-per server; some common ones are:
- c - Shows C and N lines for a given server. These are
- the names of the servers that are allowed to connect.
- h - Shows H and L lines for a given server (Hubs and Leaves).
- k - Show K lines for a server. This shows who is not
- allowed to connect and possibly at what time they are
- not allowed to connect.
- i - Shows I lines. This is who CAN connect to a server.
- l - Shows information about amount of information passed
- to servers and users.
- m - Shows a count for the number of times the various
- commands have been used since the server was booted.
- o - Shows the list of authorized operators on the server.
- p - Shows online operators and their idle times.
- u - Shows the uptime for a server.
- y - Shows Y lines, which lists the various connection
- classes for a given server.
- ? - Shows information about servers connected to a server.
+%9Parameters:%9
+
+ The statistic identifier and the remote server; if no remote server is
+ given, the active server will be used.
+
+%9Description:%9
+
+ Displays statistics from the IRC server; some statistics require you to have
+ IRC operators privileges and might differ between IRC networks.
+
+ Common statistics:
+
+ C: Displays the servers the server may connect to.
+ H: Displays hub server the server may connect to.
+ K: Displays the permanent blacklist of hostnames which are prohibited
+ from connecting to the server.
+ k: Displays the temporary blacklist of hostname which are prohibited
+ from connecting to the server.
+ I: Displays the list of hostnames which are allowed to connect to the
+ server.
+ L: Displays the list of connected users and servers.
+ M: Displays the list of commands and how many times they have been
+ issued.
+ O: Displays the list of hostnames and users which are allowed to
+ become IRC operators.
+ P: Displays the ports the server is listening on.
+ p: Displays the IRC operators and their idle time.
+ u: Displays the uptime of the server.
+ Y: Displays the list of connection groups users are placed into.
+ ?: Displays information about the utilized bandwidth.
+
+%9Examples:%9
+
+ /STATS p
+ /STATS I ircsource.irssi.org
+
+%9See also:%9 MOTD, OPER
diff --git a/docs/help/in/statusbar.in b/docs/help/in/statusbar.in
index e7b35349..ac475dd5 100644
--- a/docs/help/in/statusbar.in
+++ b/docs/help/in/statusbar.in
@@ -1,10 +1,36 @@
+%9Syntax:%9
+
@SYNTAX:statusbar@
-Commands for modifying the statusbar.
+%9Parameters:%9
+
+ ENABLE: Enables the statusbar.
+ DISABLE: Disabled the statusbar.
+ RESET: Restores the default statusbar configuration.
+ TYPE: Identifies the type of statusbar.
+ PLACEMENT: Identifies the placement of the statusbar.
+ POSITION: Identifies the position of the statusbar.
+ VISIBLE: Identifies the visibility of the statusbar.
+ ADD: Adds a statusbar into the configuration.
+ REMOVE: Removes a statusbar from the configuration.
+
+ The name of the statusbar; if no argument is given, the list of statusbars
+ will be displayed.
+
+%9Description:%9
+
+ Modified the attributes of the statusbar.
+
+%9Examples:%9
+
+ /STATUSBAR
+ /STATUSBAR window
+ /STATUSBAR window REMOVE time
+ /STATUSBAR window ADD time
+ /STATUSBAR window RESET
+ /STATUSBAR topic DISABLE
+ /STATUSBAR topic ENABLE
-/STATUSBAR
- - Display all statusbars.
+%9See also:%9 WINDOW
-/STATUSBAR <name>
- - display elements of statusbar <name>
diff --git a/docs/help/in/time.in b/docs/help/in/time.in
index 7877fe75..90dd4acb 100644
--- a/docs/help/in/time.in
+++ b/docs/help/in/time.in
@@ -1,11 +1,23 @@
+%9Syntax:%9
+
@SYNTAX:time@
-This displays the time of day, local to the server queried (thus,
-the time returned may not be the same as the client's local time).
+%9Parameters:%9
+
+ The channel or the nickname; if no argument is given, the active server
+ will be used.
+
+%9Description:%9
+
+ Displays the local time of a server or the server the target user is
+ connected to.
+
+%9Examples:%9
-If the server name is omitted, the client's current server is used.
-If a nickname is given, that client's server is queried.
+ /TIME
+ /TIME mike
+ /TIME ircsource.irssi.org
-Same as /DATE.
+%9See also:%9 MAP, TRACE, WHOIS
diff --git a/docs/help/in/toggle.in b/docs/help/in/toggle.in
index 19913061..f87a6462 100644
--- a/docs/help/in/toggle.in
+++ b/docs/help/in/toggle.in
@@ -1,11 +1,22 @@
+%9Syntax:%9
+
@SYNTAX:toggle@
-/TOGGLE <key> behaves like /SET <key> TOGGLE. /TOGGLE also
-accepts arguments ON and OFF when /TOGGLE behaves exactly
-like /SET.
+%9Parameters:%9
+
+ The setting to modify and the new value; if no value is given, its opposite
+ will be used.
+
+%9Description:%9
+
+ Modifies a setting to its counter value; you can also give ON or OFF as a
+ value.
+
+%9Examples:%9
-Remember that changes are not saved until you use /SAVE!
+ /TOGGLE resolve_prefer_ipv6
+ /TOGGLE channels_rejoin_unavailable ON
-See also: SET
+%9See also:%9 SET
diff --git a/docs/help/in/topic.in b/docs/help/in/topic.in
index ae2564f8..68a60cc5 100644
--- a/docs/help/in/topic.in
+++ b/docs/help/in/topic.in
@@ -1,8 +1,25 @@
+%9Syntax:%9
+
@SYNTAX:topic@
- -delete - Deletes the topic.
+%9Parameters:%9
+
+ -delete: Removes the topic.
+
+ The channel and topic; if no channel is given, the active channel will be
+ used. If no argument is given, the current topic will be displayed.
+
+%9Description:%9
+
+ Displays or modifies the topic of a channel.
+
+%9Examples:%9
+
+ /TOPIC
+ /TOPIC The robots are taking over!
+ /TOPIC -delete #irssi
+ /TOPIC #shakespeare /bb|[^b]{2}/
-Shows or/and changes the topic of the current or specified
-channel.
+%9See also:%9 CHANNEL, DEOP, DEVOICE, JOIN, OP, VOICE
diff --git a/docs/help/in/trace.in b/docs/help/in/trace.in
index 03aaeb55..f3192f1d 100644
--- a/docs/help/in/trace.in
+++ b/docs/help/in/trace.in
@@ -1,12 +1,25 @@
+%9Syntax:%9
+
@SYNTAX:trace@
-Without a specified server TRACE shows the current connections on
-the local server. If you specify a remote server it will show
-all servers between your current server and that remote server
-as well as the connections on that remote server. With a nick it
-shows the servers in between and information about that nick.
+%9Parameters:%9
+
+ The channel or the nickname; if no argument is given, the active server
+ will be used.
+
+%9Description:%9
+
+ Displays the list of servers and users connects to a server, or a list of
+ the servers between yourself and the target user.
+
+ This command is usually restricted to IRC operators.
+
+%9Examples:%9
+
+ /TRACE
+ /TRACE mike
+ /TRACE ircsource.irssi.org
-On some servers, TRACE shows information such as IP addresses
-and idle times.
+%9See also:%9 MAP, TIME, WHOIS
diff --git a/docs/help/in/ts.in b/docs/help/in/ts.in
index 0f51f96d..98861bb5 100644
--- a/docs/help/in/ts.in
+++ b/docs/help/in/ts.in
@@ -1,7 +1,15 @@
+%9Syntax:%9
+
@SYNTAX:ts@
-Shows topics of all channels you're on.
+%9Description:%9
+
+ Displays a list of the channels you are on and their topics.
+
+%9Examples:%9
+
+ /TS
-See also: CHANNEL, TOPIC
+%9See also:%9 JOIN, TOPIC
diff --git a/docs/help/in/unalias.in b/docs/help/in/unalias.in
index d3b2e744..d610c3ad 100644
--- a/docs/help/in/unalias.in
+++ b/docs/help/in/unalias.in
@@ -1,7 +1,20 @@
+%9Syntax:%9
+
@SYNTAX:unalias@
-Removes an alias.
+%9Parameters:%9
+
+ The name of the alias.
+
+%9Description:%9
+
+ Removes an alias.
+
+%9Examples:%9
+
+ /UNALIAS BAN
+ /UNALIAS K
-See also: ALIAS
+%9See also:%9 ALIAS
diff --git a/docs/help/in/unban.in b/docs/help/in/unban.in
index 556b08e9..2c0c8a57 100644
--- a/docs/help/in/unban.in
+++ b/docs/help/in/unban.in
@@ -1,13 +1,45 @@
+%9Syntax:%9
+
@SYNTAX:unban@
-Removes the specified ban(s) from the channel.
+%9Parameters:%9
+
+ -normal: Uses the *!*user@*.domain.tld format.
+ -user: Uses the *!*user@* format.
+ -host: Uses the *!*@host.domain.tld format.
+ -domain: Uses the *!*@*.domain.tld format.
+ -custom: Uses the custom format.
+ -first: Removes the first ban from the list.
+ -last: Removes the last ban from the list.
+
+ A channel and the nicknames, hostnames or ban identifier to unban; if no
+ channel is given, the active channel will be used.
+
+ If no ban format parameter is given, the value of the ban_type setting will
+ be used to generate the hostmask to ban.
+
+%9Description:%9
+
+ Removes one or more bans from a channel.
+
+%9Configuring the custom format:%9
+
+ You must set the custom ban_type to the format you would like to use. For
+ example, if you set the custom ban_type to 'nick domain', it will generate
+ a ban based on the nick!*@*.domain.tld format.
+
+%9Examples:%9
+
+ /UNBAN mike
+ /UNBAN -host bob
+ /UNBAN *!*@*.irssi.org
+ /UNBAN *!*@*.users.irssi.org *!*@*.staff.irssi.org
+ /UNBAN -first
+ /UNBAN 5
+
+ /SET ban_type custom nick domain
+ /SET ban_type custom user host
-Examples:
- /UNBAN *!*@*.fi
- /UNBAN larry!*@* *!me@*.mydomain.net
- /UNBAN 3 - removes 3rd ban in list
- /UNBAN -first - removes 1st ban (equal to /UNBAN 1)
- /UNBAN -last - removes last ban in list
-See also: BAN, KNOCKOUT
+%9See also:%9 BAN, DEOP, KICKBAN, KNOCKOUT, OP
diff --git a/docs/help/in/unignore.in b/docs/help/in/unignore.in
index 784be9a2..a3538508 100644
--- a/docs/help/in/unignore.in
+++ b/docs/help/in/unignore.in
@@ -1,8 +1,20 @@
+%9Syntax:%9
+
@SYNTAX:unignore@
-Unignores the specified userhost mask. If you want to unignore only some
-levels, use /IGNORE <mask> -<level>.
+%9Parameters:%9
+
+ The ignore identifier or pattern to remove.
+
+%9Description:%9
+
+ Removes an entry from the ignore list.
+
+%9Examples:%9
+
+ /UNIGNORE 5
+ /UNIGNORE mike
-See also: IGNORE
+%9See also:%9 ACCEPT, IGNORE, SILENCE
diff --git a/docs/help/in/unload.in b/docs/help/in/unload.in
index 4bfdeb95..b804e093 100644
--- a/docs/help/in/unload.in
+++ b/docs/help/in/unload.in
@@ -1,8 +1,19 @@
+%9Syntax:%9
+
@SYNTAX:unload@
-Unload a running plugin. List of running plugins can be shown with
-/LOAD.
+%9Parameters:%9
+
+ The name of the module to unload.
+
+%9Description:%9
+
+ Removes a module from the memory.
+
+%9Examples:%9
+
+ /UNLOAD fish
-See also: LOAD
+%9See also:%9 LOAD, SCRIPT
diff --git a/docs/help/in/unnotify.in b/docs/help/in/unnotify.in
index 5d74ce80..1dfbb400 100644
--- a/docs/help/in/unnotify.in
+++ b/docs/help/in/unnotify.in
@@ -1,7 +1,20 @@
+%9Syntax:%9
+
@SYNTAX:unnotify@
-Removes an entry from the notify list.
+%9Parameters:%9
+
+ The notify pattern to remove.
+
+%9Description:%9
+
+ Removes an entry from the notify list.
+
+%9Examples:%9
+
+ /UNNOTIFY bob
+ /UNNOTIFY *!*@staff.irssi.org
-See also: NOTIFY
+%9See also:%9 AWAY, HILIGHT, NOTIFY
diff --git a/docs/help/in/unquery.in b/docs/help/in/unquery.in
index 0d488c64..78f52b17 100644
--- a/docs/help/in/unquery.in
+++ b/docs/help/in/unquery.in
@@ -1,7 +1,21 @@
+%9Syntax:%9
+
@SYNTAX:unquery@
-Removes a query window of specified nick.
+%9Parameters:%9
+
+ The nickname to close the query for; if no argument is given, the active
+ query will be used.
+
+%9Description:%9
+
+ Closes a query window for a nickname.
+
+%9Examples:%9
+
+ /UNQUERY
+ /UNQUERY mike
-See also: QUERY, SET QUERY
+%9See also:%9 MSG, QUERY, WINDOW
diff --git a/docs/help/in/unsilence.in b/docs/help/in/unsilence.in
index c46f77a7..1e6d226d 100644
--- a/docs/help/in/unsilence.in
+++ b/docs/help/in/unsilence.in
@@ -1,9 +1,21 @@
+%9Syntax:%9
+
@SYNTAX:unsilence@
-Works only in some IRC networks.
+%9Parameters:%9
+
+ The silence pattern to remove.
+
+%9Description:%9
+
+ Removes an entry from the silence list. This command does not work on all
+ IRC networks.
+
+%9Examples:%9
-Removes a pattern from your silence list.
+ /UNSILENCE mike
+ /UNSILENCE *!*@*.irssi.org
-See also: SILENCE
+%9See also:%9 ACCEPT, IGNORE, SILENCE
diff --git a/docs/help/in/upgrade.in b/docs/help/in/upgrade.in
index b130aff1..e182f7ee 100644
--- a/docs/help/in/upgrade.in
+++ b/docs/help/in/upgrade.in
@@ -1,10 +1,22 @@
+%9Syntax:%9
+
@SYNTAX:upgrade@
-Upgrade irssi to new version on-the-fly without disconnecting from
-server, so other people won't even notice you quit from IRC. This ONLY
-executes the new binary, it does NOT download/compile/whatever irssi.
+%9Parameters:%9
+
+ The location of the new binary; if no arguments are given, the current
+ binary file will be used.
+
+%9Description:%9
+
+ Upgrades to a new version without disconnecting from non-SSL servers; please
+ bear in mind that it does not download or compile a new version.
+
+%9Examples:%9
+
+ /UPGRADE
+ /UPGRADE /home/mike/irssi-dev/bin/irssi
-Warning: This will not work with SSL connections to IRC, you will be
-disconnected.
+%9See also:%9 CONNECT, DISCONNECT, HELP
diff --git a/docs/help/in/uping.in b/docs/help/in/uping.in
deleted file mode 100644
index 0fc003b8..00000000
--- a/docs/help/in/uping.in
+++ /dev/null
@@ -1,12 +0,0 @@
-
-@SYNTAX:uping@
-
-IRC Operator command. Works only in the Undernet and Open Projects (ircu).
-
-This command works like the PING command (CTCP PING), except
-it is used on a server instead of a client. As with PING, it
-is used to test the relative distance another server is from
-you across the irc network.
-
-See also: RPING, OPER
-
diff --git a/docs/help/in/userhost.in b/docs/help/in/userhost.in
index 74550448..48936499 100644
--- a/docs/help/in/userhost.in
+++ b/docs/help/in/userhost.in
@@ -1,7 +1,22 @@
+%9Syntax:%9
+
@SYNTAX:userhost@
-Shows the user@host, IRC operator (*) and away (-) status of the specified nick.
+%9Parameters:%9
+
+ One or more nicknames separated by space.
+
+%9Description:%9
+
+ Displays the user@host for the given nicknames; some common added attributes
+ are '*' to identify an IRC operator, '-' and '+' to indicate whether the
+ nickname is AWAY or available.
+
+%9Examples:%9
+
+ /USERHOST mike
+ /USERHOST bob sarah
-See also: WHOIS
+%9See also:%9 WHOIS
diff --git a/docs/help/in/ver.in b/docs/help/in/ver.in
index db0ea5cf..1e1afcc1 100644
--- a/docs/help/in/ver.in
+++ b/docs/help/in/ver.in
@@ -1,9 +1,22 @@
+%9Syntax:%9
+
@SYNTAX:ver@
-Sends a CTCP VERSION request to a nick or channel.
-This is used to find out which client and/or
-script the nick is using.
+%9Parameters:%9
+
+ A nickname, channel or the wildcard character '*'.
+
+%9Description:%9
+
+ Send a CTCP VERION request to the target nickname, channel or to all the
+ users on the channel.
+
+%9Examples:%9
+
+ /VER *
+ /VER #irssi
+ /VER mike
-See also: CTCP
+%9See also:%9 CTCP
diff --git a/docs/help/in/version.in b/docs/help/in/version.in
index a7dd5c6f..98891ca6 100644
--- a/docs/help/in/version.in
+++ b/docs/help/in/version.in
@@ -1,8 +1,22 @@
+%9Syntax:%9
+
@SYNTAX:version@
-Shows the version info of the current or specified
-IRC server.
+%9Parameters:%9
+
+ A nickname or server; if no argument is given, the active server will be
+ used.
+
+%9Description:%9
+
+ Displays the version and compatibility parameters of the given server, or
+ for the server the target nickname is on.
+
+%9Examples:%9
+
+ /VERSION mike
+ /VERSION ircsource.irssi.org
-See also: ADMIN, STATS
+%9See also:%9 ADMIN, STATS
diff --git a/docs/help/in/voice.in b/docs/help/in/voice.in
index ee6f243e..33d1a37a 100644
--- a/docs/help/in/voice.in
+++ b/docs/help/in/voice.in
@@ -1,8 +1,23 @@
+%9Syntax:%9
+
@SYNTAX:voice@
-Gives the voice (+v mode) to the nick(s) on the current channel.
-Wildcards in the nick are allowed.
-
-See also: DEVOICE, OP, DEOP
+%9Parameters:%9
+
+ A list of nicknames to voice.
+
+%9Description:%9
+
+ Grants the channel voice privileges to the given nicknames; you may use
+ the wildcard character '*' in a nickname.
+
+%9Examples:%9
+
+ /VOICE mike
+ /VOICE bob sarah
+ /VOICE jo*n
+ /VOICE *
+
+%9See also:%9 DEOP, DEVOICE, KICK, MODE, OP
diff --git a/docs/help/in/wait.in b/docs/help/in/wait.in
index 8b41ec73..263b9fb8 100644
--- a/docs/help/in/wait.in
+++ b/docs/help/in/wait.in
@@ -1,10 +1,21 @@
+%9Syntax:%9
+
@SYNTAX:wait@
-Wait for <milliseconds> before sending the next command to server.
+%9Parameters:%9
+
+ The amount of milliseconds.
+
+%9Description:%9
+
+ Waits the specified amount of milliseconds before sending the next command
+ to the server.
+
+%9Examples:%9
+
+ /WAIT 1000
+ /WAIT 5000
-This could be useful for example when identifying to NickServ; after
-sending the identify message you'd wait 3 seconds before joining to
-channels so any host changes are processed and you can join
-registered-only channels.
+%9See also:%9 ALIAS
diff --git a/docs/help/in/wall.in b/docs/help/in/wall.in
index f1518672..bf1fc12e 100644
--- a/docs/help/in/wall.in
+++ b/docs/help/in/wall.in
@@ -1,8 +1,23 @@
+%9Syntax:%9
+
@SYNTAX:wall@
-This command sends a message to all operators in a channel. If the server
-supports WALLCHOPS or STATUSMSG=@, it sends a notice to @#channel.
-Otherwise it sends a notice separately to each operator, which may not
-be a very good idea to use in a channel with lots of operators.
+%9Parameters:%9
+
+ The channel and the message; if no channel is given, the active channel
+ will be used.
+
+%9Description:%9
+
+ Sends a message to all channel operators. If the server doesn't support
+ WALLCHOPS or STATUSMSG it will send a notice to each channel operator
+ individually.
+
+%9Examples:%9
+
+ /WALL I'm off for today; take care! :)
+ /WALL #irssi I'm feeling supercalifragilisticexpialidocious today :D
+
+%9See also:%9 MSG, NOTICE
diff --git a/docs/help/in/wallops.in b/docs/help/in/wallops.in
index 2c9c51a1..dfc3f5d9 100644
--- a/docs/help/in/wallops.in
+++ b/docs/help/in/wallops.in
@@ -1,9 +1,20 @@
+%9Syntax:%9
+
@SYNTAX:wallops@
-IRC operator command.
+%9Parameters:%9
+
+ The message to broadcast.
+
+%9Description:%9
+
+ Sends a network wide message to all the users which have the usermode 'w'
+ enabled; this command is restricted to IRC operators.
+
+%9Examples:%9
+
+ /WALLOPS Hi everybody!
-This command sends the given message to everyone on
-the network who has user mode +w turned on.
+%9See also:%9 OPER, STATS
-See also: OPER, WALLOPS
diff --git a/docs/help/in/watch.in b/docs/help/in/watch.in
deleted file mode 100644
index 57602053..00000000
--- a/docs/help/in/watch.in
+++ /dev/null
@@ -1,18 +0,0 @@
-
-WATCH %|[[+|-]<nick>][ [+|-]<nick> ...]
-
-Works only in networks using Bahamut ircd.
-
-WATCH is somewhat equal to ISON/NOTIFY, but server-based. With WATCH
-server sends status information to client, instead of client sending
-ISON's. Therefore WATCH is technically a bit smarter solution than
-ISON/NOTIFY. The only disadvantage is your WATCH list not being
-"saved". Once you disconnect, your WATCH list will get cleared.
-
-WATCH is based on a nick, and must be prepended with a plus ('+') to be
-added to your watch list. A minus sign ('-') will remove an entry from
-the list. With no arguments, WATCH returns a list of your WATCH list
-entries.
-
-See also: NOTIFY, WHOIS, WHOWAS
-
diff --git a/docs/help/in/who.in b/docs/help/in/who.in
index b8f0b584..d265fd29 100644
--- a/docs/help/in/who.in
+++ b/docs/help/in/who.in
@@ -1,31 +1,36 @@
+%9Syntax:%9
+
@SYNTAX:who@
-Without parameters, shows all users and their user infos
-on the current channel. If you specify a channel, shows
-all users on the given channel.
-
-If you specify an string with wildcards, you will be
-shown all users whose nick, userhost or realname matches
-the wildcard expression.
-
-If a channel is secret and you're not on it, you will not
-get any output. Otherwise if you're not on it, you will be
-shown only those channel members who do not have the
-invisible (+i) mode set.
-
-The flags field has the following meaning:
- H - The user is not away (here).
- G - The user is set away (gone).
- * - The user is an IRC operator.
- @ - The user is a channel op in the channel listed.
- + - The user is voiced in the channel listed.
-
-Examples:
- /WHO - Shows users on current channel
- /WHO #irssi - Shows users on channel #irssi
- /WHO timo* - Shows users whose nick, userhost,
- or realname begins with string 'timo'
-
-See also: WHOIS, NAMES, CHANNEL
+%9Parameters:%9
+
+ The channel name or output filter; if no arguments are given, the current
+ channel will be used.
+
+%9Description:%9
+
+ Displays information about users in the specified channel. If you specify a
+ filter, all the users whose nick, userhost or realname matches the filter
+ will be returned.
+
+ If the channel is secret and you are not on it, you will not receive any
+ output.
+
+ Common flags:
+
+ H: The user is available.
+ G: The user is away.
+ *: The user is an IRC operator.
+ @: The user is a channel operator.
+ +: The user is a channel voice.
+
+%9Examples:%9
+
+ /WHO
+ /WHO #irssi
+ /WHO bob
+ /WHO sar*
+
+%9See also:%9 CHANNEL, NAMES, WHOIS
diff --git a/docs/help/in/whois.in b/docs/help/in/whois.in
index 56ca30e4..b2801c5a 100644
--- a/docs/help/in/whois.in
+++ b/docs/help/in/whois.in
@@ -1,15 +1,30 @@
+%9Syntax:%9
+
@SYNTAX:whois@
-Shows whois information of the specified nick.
-By default, this is aliased to /WI.
+%9Parameters:%9
+
+ -<server tag>: The server tag the target nickname is on.
+
+ The remote server to query and the nicknames; if no remote server is given,
+ the server you are connected to will be used. If no nickname is given, you
+ will query yourself.
+
+%9Description:%9
+
+ Displays information about users in the specified channel; you may give the
+ same nickname as the argument twice to also query the idle time.
+
+ If the nickname is not online, the WHOWAS command will be automatically
+ performed.
-/WHOIS nick1 nick1 also queries the idle time of
-the user. This is aliased to /WII by default.
+%9Examples:%9
-If given nick is not in the IRC, irssi automatically
-sends a WHOWAS query. Read carefully the reply to see
-if it is a WHOIS or WHOWAS reply.
+ /WHOIS
+ /WHOIS mike
+ /WHOIS ircsource.irssi.org bob
+ /WHOIS sarah sarah
-See also: WHO, CHANNEL
+%9See also:%9 CHANNEL, NAMES, WHO, WHOWAS
diff --git a/docs/help/in/whowas.in b/docs/help/in/whowas.in
index 2c7c68bc..3dec6d29 100644
--- a/docs/help/in/whowas.in
+++ b/docs/help/in/whowas.in
@@ -1,19 +1,24 @@
+%9Syntax:%9
+
@SYNTAX:whowas@
-This command is similar to WHOIS, except it returns information
-about nicknames that were recently in use. Like WHOIS, it shows
-the nickname, address, real name, and server. It may also return
-multiple entries if the nickname has been used recently by several
-people. These multiples may be limited by specifying a count to show.
+%9Parameters:%9
+
+ The nicknames, the maximum amount of results and the remote server. If no
+ arguments are given, your own nickname will be used. If no remote server is
+ given, the server you are connected to will be used.
-WHOWAS will work regardless of whether the queried nick is in use.
-If no arguments are given, the client's current nickname is used.
+%9Description:%9
-Example: To show the last 5 users of the nickname JoeBob:
+ Displays historical user information.
-/whowas joebob 5
+%9Examples:%9
+ /WHOWAS
+ /WHOWAS mike
+ /WHOWAS bob 10
+ /WHOWAS sarah 5 ircsource.irssi.org
-See also: WHOIS
+%9See also:%9 CHANNEL, NAMES, WHO, WHOIS
diff --git a/docs/help/in/window.in b/docs/help/in/window.in
index cd7acae2..c965d3fb 100644
--- a/docs/help/in/window.in
+++ b/docs/help/in/window.in
@@ -1,46 +1,71 @@
+%9Syntax:%9
+
@SYNTAX:window@
-This command includes various subcommands for handling
-irssi windows.
-
-/WINDOW CLOSE
- - Closes the current window.
-/WINDOW MOVE #NUMBER|LEFT|RIGHT
- - Moves current window to another position in the
- window list.
-/WINDOW GOTO #NUMBER
- - Moves into the specified window.
-/WINDOW GOTO ACTIVE
- - finds the first window with the higest
- activity (msgs to you -> msgs -> rest). Alt-A is
- the default shortcut key for this
-/WINDOW GOTO #CHANNEL|NICK|=NICK
- - moves you to the window with the channel, query or
- dcc chat.
-/WINDOW LEVEL [+/-]PUB/MSGS/...
- - /window level msgs - creates messages window
- - /window level all -msgs - creates status window
-/WINDOW NEW [HIDDEN|SPLIT]
- - creates new hidden/splitted window,
-/WINDOW ITEM MOVE <number>|<name>
- - with a numeric argument, moves the active window
- item of the active window to the window with
- refnum <number>.
- with a string argument, moves the window item with
- name <name> to the active window.
-
-Window logging
-
-/WINDOW LOG ON|OFF|TOGGLE [<filename>]
- - Start/stop logging the active window. This works exactly like
- /LOG OPEN -window.
-/WINDOW LOGFILE <filename>
- - Sets the default log file to use in the window, it can be
- overridden by specifying the file name in /WINDOW LOG.
- If no file name is given, Irssi defaults to
- ~/irc.log.<windowname> or ~/irc.log.Window<ref#> if window
- doesn't have a name.
-
-See also: SET CREATE, JOIN, QUERY, LOG, LEVELS
+%9Parameters:%9
+
+ LOG: Modifies the logging status.
+ LOGFILE: Modifies the location to the log file.
+ NEW: Creates a new window.
+ CLOSE: Closes a window.
+ REFNUM: Go to the window with the given number.
+ GOTO: Go to the window with the given nickname, channel or number.
+ NEXT: Go to the next window.
+ LAST: Go to the last window.
+ PREVIOUS: Go to the previous window.
+ LEVEL: Modifies the text levels to display in the window.
+ IMMORTAL: Modifies the window mortality status.
+ SERVER: Set the active server of the window.
+ ITEM PREV: Go to the previous item in the window.
+ ITEM NEXT: Go to the next item in the window.
+ ITEM GOTO: Go to the specified nickname, channel or window item number.
+ ITEM MOVE: Move the active window item to another window.
+ NUMBER: Move the active window to another position.
+ NAME: Give the window a name.
+ HISTORY: Clears the window history buffer.
+ MOVE PREV: Move the window down.
+ MOVE NEXT: Move the window up.
+ MOVE FIRST: Move the window to the first position.
+ MOVE LAST: Move the window to the last position.
+ MOVE: Move the window.
+ LIST: List all the windows.
+ THEME: Applies a theme to the windows.
+ GROW: Increase the window size when using split windows.
+ SHRINK: Decrease the window size when using split windows.
+ SIZE: Modify the window size when using split windows.
+ BALANCE: Balance the window locations when using split windows.
+ HIDE: Hide the window when using split windows.
+ SHOW: Show the window when using split windows.
+ UP: Go to the window above when using split windows.
+ DOWN: Go to the window below when using split windows.
+ LEFT: Go to the previous window.
+ RIGHT: Go to the next window.
+ STICK: Make the window sticky.
+ MOVE LEFT: Move the window to the previous location.
+ MOVE RIGHT: Move the window to the next location.
+ MOVE UP: Move the window up when using split windows.
+ MOVE DOWN: Move the window down when using split windows.
+
+ Add the required arguments for the given command.
+
+%9Description:%9
+
+ Manipulates the window layout and positioning attributes.
+
+%9Examples:%9
+
+ /WINDOW CLOSE
+ /WINDOW ITEM MOVE 10
+ /WINDOW GOTO 15
+ /WINDOW GOTO ACTIVE
+ /WINDOW GOTO mike
+ /WINDOW GOTO #irssi
+ /WINDOW NEW HIDDEN
+ /WINDOW LOG OFF
+ /WINDOW LOG ON ~/logs/debug.log
+ /WINDOW LEVEL -ALL +NOTICES
+ /WINDOW LOGFILE ~/logs/notices.log
+
+%9See also:%9 JOIN, LEVELS, LOG, QUERY
diff --git a/docs/help/in/wjoin.in b/docs/help/in/wjoin.in
deleted file mode 100644
index 8386e178..00000000
--- a/docs/help/in/wjoin.in
+++ /dev/null
@@ -1,9 +0,0 @@
-
-@SYNTAX:wjoin@
-
-With this you can join multiple channels in same
-window. This command does the same as /JOIN but
-it doesn't create a new window for the channel joined.
-
-See also: JOIN, WINDOW
-
diff --git a/docs/help/in/wquery.in b/docs/help/in/wquery.in
deleted file mode 100644
index ae4799af..00000000
--- a/docs/help/in/wquery.in
+++ /dev/null
@@ -1,8 +0,0 @@
-
-@SYNTAX:wquery@
-
-Starts a query in the current window without
-opening a new window.
-
-See also: QUERY, WINDOW, SET AUTOCREATE
-
diff --git a/docs/perl.txt b/docs/perl.txt
index 732b73af..79ab5820 100644
--- a/docs/perl.txt
+++ b/docs/perl.txt
@@ -796,7 +796,7 @@ Query->{}
address - Host address of the queries nick
server_tag - Server tag used for this nick (doesn't get erased if
server gets disconnected)
- unwanted - 1 if the other side closed or some error occured (DCC chats)
+ unwanted - 1 if the other side closed or some error occurred (DCC chats)
Query
query_create(chat_type, server_tag, nick, automatic)
@@ -1123,7 +1123,7 @@ Netsplit->{}
Netsplitserver->{}
server - The server nick was in
- destserver - The other server where split occured.
+ destserver - The other server where split occurred.
count - Number of splits in server
Netsplitchannel->{}
diff --git a/docs/signals.txt b/docs/signals.txt
index ea60d575..f0860d3e 100644
--- a/docs/signals.txt
+++ b/docs/signals.txt
@@ -333,6 +333,7 @@ gui-readline.c:
gui-printtext.c:
"beep"
+ "gui print text after finished", WINDOW_REC, LINE_REC *line, LINE_REC *prev_line
textbuffer-view.c
"gui textbuffer line removed", TEXTBUFFER_VIEW_REC *view, LINE_REC *line, LINE_REC *prev_line
diff --git a/docs/startup-HOWTO.html b/docs/startup-HOWTO.html
index 736f25e9..30caf657 100644
--- a/docs/startup-HOWTO.html
+++ b/docs/startup-HOWTO.html
@@ -493,7 +493,7 @@ scrollback buffer. Simplest usages are</p>
<pre>
/LASTLOG word - print all lines with "word" in them
-/LASTLOG word 10 - print last 10 occurances of "word"
+/LASTLOG word 10 - print last 10 occurrences of "word"
/LASTLOG -topics - print all topic changes
</pre>
diff --git a/irssi.conf b/irssi.conf
index 27a70d1e..ba159f34 100644
--- a/irssi.conf
+++ b/irssi.conf
@@ -94,15 +94,15 @@ chatnets = {
};
channels = (
- { name = "#lobby"; chatnet = "EsperNet"; autojoin = "Yes"; },
- { name = "#freenode"; chatnet = "Freenode"; autojoin = "Yes"; },
- { name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; },
- { name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "Yes"; },
- { name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; },
- { name = "#ircsource"; chatnet = "IRCSource"; autojoin = "Yes"; },
- { name = "#netfuze"; chatnet = "NetFuze"; autojoin = "Yes"; },
- { name = "#oftc"; chatnet = "OFTC"; autojoin = "Yes"; },
- { name = "silc"; chatnet = "SILC"; autojoin = "No"; }
+ { name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; },
+ { name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; },
+ { name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; },
+ { name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; },
+ { name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; },
+ { name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; },
+ { name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; },
+ { name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; },
+ { name = "silc"; chatnet = "SILC"; autojoin = "No"; }
);
aliases = {
diff --git a/m4/glib-2.0.m4 b/m4/glib-2.0.m4
index 2a5afd0c..2c8760b7 100644
--- a/m4/glib-2.0.m4
+++ b/m4/glib-2.0.m4
@@ -187,7 +187,7 @@ main ()
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
- echo "*** exact error that occured. This usually means GLIB is incorrectly installed."])
+ echo "*** exact error that occurred. This usually means GLIB is incorrectly installed."])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
diff --git a/src/core/chat-commands.c b/src/core/chat-commands.c
index 235a9fc4..8d1ac3eb 100644
--- a/src/core/chat-commands.c
+++ b/src/core/chat-commands.c
@@ -321,7 +321,7 @@ static void cmd_quit(const char *data)
signal_emit("gui exit", 0);
}
-/* SYNTAX: MSG [-<server tag>] [-channel | -nick] <targets> <message> */
+/* SYNTAX: MSG [-<server tag>] [-channel | -nick] *|<targets> <message> */
static void cmd_msg(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
{
GHashTable *optlist;
diff --git a/src/core/commands.h b/src/core/commands.h
index c68c5b24..d65185e5 100644
--- a/src/core/commands.h
+++ b/src/core/commands.h
@@ -158,7 +158,7 @@ char *cmd_get_quoted_param(char **data);
/* get parameters from command - you should point free_me somewhere and
cmd_params_free() it after you don't use any of the parameters anymore.
- Returns TRUE if all ok, FALSE if error occured. */
+ Returns TRUE if all ok, FALSE if error occurred. */
int cmd_get_params(const char *data, gpointer *free_me, int count, ...);
void cmd_params_free(void *free_me);
diff --git a/src/core/expandos.c b/src/core/expandos.c
index bed6c5eb..1fc517af 100644
--- a/src/core/expandos.c
+++ b/src/core/expandos.c
@@ -57,7 +57,7 @@ static char *last_sent_msg, *last_sent_msg_body;
static char *last_privmsg_from, *last_public_from;
static char *sysname, *sysrelease, *sysarch;
-static const char *timestamp_format;
+static char *timestamp_format;
static int timestamp_seconds;
static time_t last_timestamp;
@@ -567,7 +567,9 @@ static int sig_timer(void)
static void read_settings(void)
{
- timestamp_format = settings_get_str("timestamp_format");
+ g_free_not_null(timestamp_format);
+ timestamp_format = g_strdup(settings_get_str("timestamp_format"));
+
timestamp_seconds =
strstr(timestamp_format, "%r") != NULL ||
strstr(timestamp_format, "%s") != NULL ||
@@ -708,14 +710,18 @@ void expandos_deinit(void)
g_free_not_null(char_expandos[n]);
g_hash_table_foreach_remove(expandos, free_expando, NULL);
- g_hash_table_destroy(expandos);
+ g_hash_table_destroy(expandos);
- g_free_not_null(last_sent_msg); g_free_not_null(last_sent_msg_body);
- g_free_not_null(last_privmsg_from); g_free_not_null(last_public_from);
- g_free_not_null(sysname); g_free_not_null(sysrelease);
- g_free_not_null(sysarch);
+ g_free_not_null(last_sent_msg);
+ g_free_not_null(last_sent_msg_body);
+ g_free_not_null(last_privmsg_from);
+ g_free_not_null(last_public_from);
+ g_free_not_null(sysname);
+ g_free_not_null(sysrelease);
+ g_free_not_null(sysarch);
+ g_free_not_null(timestamp_format);
- g_source_remove(timer_tag);
+ g_source_remove(timer_tag);
signal_remove("message public", (SIGNAL_FUNC) sig_message_public);
signal_remove("message private", (SIGNAL_FUNC) sig_message_private);
signal_remove("message own_private", (SIGNAL_FUNC) sig_message_own_private);
diff --git a/src/core/log.c b/src/core/log.c
index 263b3526..d4d3853e 100644
--- a/src/core/log.c
+++ b/src/core/log.c
@@ -41,7 +41,7 @@ static const char *log_item_types[] = {
NULL
};
-const char *log_timestamp;
+static char *log_timestamp;
static int log_file_create_mode;
static int log_dir_create_mode;
static int rotate_tag;
@@ -558,13 +558,15 @@ static void log_read_config(void)
static void read_settings(void)
{
- log_timestamp = settings_get_str("log_timestamp");
+ g_free_not_null(log_timestamp);
+ log_timestamp = g_strdup(settings_get_str("log_timestamp"));
+
log_file_create_mode = octal2dec(settings_get_int("log_create_mode"));
- log_dir_create_mode = log_file_create_mode;
- if (log_file_create_mode & 0400) log_dir_create_mode |= 0100;
- if (log_file_create_mode & 0040) log_dir_create_mode |= 0010;
- if (log_file_create_mode & 0004) log_dir_create_mode |= 0001;
+ log_dir_create_mode = log_file_create_mode;
+ if (log_file_create_mode & 0400) log_dir_create_mode |= 0100;
+ if (log_file_create_mode & 0040) log_dir_create_mode |= 0010;
+ if (log_file_create_mode & 0004) log_dir_create_mode |= 0001;
}
void log_init(void)
@@ -595,7 +597,9 @@ void log_deinit(void)
while (logs != NULL)
log_close(logs->data);
+ g_free_not_null(log_timestamp);
+
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
- signal_remove("setup reread", (SIGNAL_FUNC) log_read_config);
- signal_remove("irssi init finished", (SIGNAL_FUNC) log_read_config);
+ signal_remove("setup reread", (SIGNAL_FUNC) log_read_config);
+ signal_remove("irssi init finished", (SIGNAL_FUNC) log_read_config);
}
diff --git a/src/core/net-nonblock.h b/src/core/net-nonblock.h
index 32cfac70..af5968c8 100644
--- a/src/core/net-nonblock.h
+++ b/src/core/net-nonblock.h
@@ -29,7 +29,7 @@ int net_gethostbyname_nonblock(const char *addr, GIOChannel *pipe,
int reverse_lookup);
/* Get host's name, call func when finished */
int net_gethostbyaddr_nonblock(IPADDR *ip, NET_HOST_CALLBACK func, void *data);
-/* get the resolved IP address. returns -1 if some error occured with read() */
+/* get the resolved IP address. returns -1 if some error occurred with read() */
int net_gethostbyname_return(GIOChannel *pipe, RESOLVED_IP_REC *rec);
/* Connect to server, call func when finished */
diff --git a/src/core/net-sendbuffer.c b/src/core/net-sendbuffer.c
index 9d4b0e37..39257486 100644
--- a/src/core/net-sendbuffer.c
+++ b/src/core/net-sendbuffer.c
@@ -109,7 +109,7 @@ static int buffer_add(NET_SENDBUF_REC *rec, const void *data, int size)
/* Send data, if all of it couldn't be sent immediately, it will be resent
automatically after a while. Returns -1 if some unrecoverable error
- occured. */
+ occurred. */
int net_sendbuffer_send(NET_SENDBUF_REC *rec, const void *data, int size)
{
int ret;
diff --git a/src/core/net-sendbuffer.h b/src/core/net-sendbuffer.h
index 785f59ae..bdeb7156 100644
--- a/src/core/net-sendbuffer.h
+++ b/src/core/net-sendbuffer.h
@@ -24,7 +24,7 @@ void net_sendbuffer_destroy(NET_SENDBUF_REC *rec, int close);
/* Send data, if all of it couldn't be sent immediately, it will be resent
automatically after a while. Returns -1 if some unrecoverable error
- occured. */
+ occurred. */
int net_sendbuffer_send(NET_SENDBUF_REC *rec, const void *data, int size);
int net_sendbuffer_receive_line(NET_SENDBUF_REC *rec, char **str, int read_socket);
diff --git a/src/core/network-openssl.c b/src/core/network-openssl.c
index 768fd540..e16403ec 100644
--- a/src/core/network-openssl.c
+++ b/src/core/network-openssl.c
@@ -475,7 +475,7 @@ static GIOChannel *irssi_ssl_get_iochannel(GIOChannel *handle, int port, SERVER_
g_error("Could not allocate memory for SSL context");
return NULL;
}
- SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2);
+ SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3);
SSL_CTX_set_default_passwd_cb(ctx, get_pem_password_callback);
SSL_CTX_set_default_passwd_cb_userdata(ctx, (void *)mypass);
diff --git a/src/core/network.c b/src/core/network.c
index 3659ab36..bfaa47fb 100644
--- a/src/core/network.c
+++ b/src/core/network.c
@@ -624,7 +624,7 @@ const char *net_gethosterror(int error)
int net_hosterror_notfound(int error)
{
#ifdef HAVE_IPV6
-#ifdef EAI_NODATA /* NODATA is depricated */
+#ifdef EAI_NODATA /* NODATA is deprecated */
return error != 1 && (error == EAI_NONAME || error == EAI_NODATA);
#else
return error != 1 && (error == EAI_NONAME);
diff --git a/src/core/nicklist.c b/src/core/nicklist.c
index a5f25f34..b1c9ecef 100644
--- a/src/core/nicklist.c
+++ b/src/core/nicklist.c
@@ -342,7 +342,7 @@ GSList *nicklist_get_same_unique(SERVER_REC *server, void *id)
return rec.list;
}
-/* nick record comparision for sort functions */
+/* nick record comparison for sort functions */
int nicklist_compare(NICK_REC *p1, NICK_REC *p2, const char *nick_prefix)
{
int i;
diff --git a/src/core/query-rec.h b/src/core/query-rec.h
index fc08d2ef..59519ad4 100644
--- a/src/core/query-rec.h
+++ b/src/core/query-rec.h
@@ -7,5 +7,5 @@ char *server_tag;
time_t last_unread_msg;
unsigned int unwanted:1; /* TRUE if the other side closed or
- some error occured (DCC chats!) */
+ some error occurred (DCC chats!) */
unsigned int destroying:1;
diff --git a/src/core/rawlog.c b/src/core/rawlog.c
index e66f20dd..2fa6b850 100644
--- a/src/core/rawlog.c
+++ b/src/core/rawlog.c
@@ -102,14 +102,15 @@ void rawlog_redirect(RAWLOG_REC *rawlog, const char *str)
static void rawlog_dump(RAWLOG_REC *rawlog, int f)
{
GSList *tmp;
- ssize_t ret = 1;
+ ssize_t ret = 0;
- for (tmp = rawlog->lines; ret && tmp != NULL; tmp = tmp->next) {
+ for (tmp = rawlog->lines; ret != -1 && tmp != NULL; tmp = tmp->next) {
ret = write(f, tmp->data, strlen((char *) tmp->data));
- ret &= write(f, "\n", 1);
- }
+ if (ret != -1)
+ ret = write(f, "\n", 1);
+ }
- if (ret <= 0) {
+ if (ret == -1) {
g_warning("rawlog write() failed: %s", strerror(errno));
}
}
diff --git a/src/core/servers-reconnect.c b/src/core/servers-reconnect.c
index 0a08b461..d99a5405 100644
--- a/src/core/servers-reconnect.c
+++ b/src/core/servers-reconnect.c
@@ -253,6 +253,9 @@ static void sig_reconnect(SERVER_REC *server)
conn->port = server->connrec->port;
conn->password = g_strdup(server->connrec->password);
+ if (strchr(conn->address, '/') != NULL)
+ conn->unix_socket = TRUE;
+
server_reconnect_add(conn, (server->connect_time == 0 ? time(NULL) :
server->connect_time) + reconnect_time);
server_connect_unref(conn);
diff --git a/src/core/servers-setup.c b/src/core/servers-setup.c
index 0819ff1a..27d9f1f0 100644
--- a/src/core/servers-setup.c
+++ b/src/core/servers-setup.c
@@ -122,6 +122,9 @@ static void server_setup_fill(SERVER_CONNECT_REC *conn,
conn->address = g_strdup(address);
if (port > 0) conn->port = port;
+ if (strchr(address, '/') != NULL)
+ conn->unix_socket = TRUE;
+
if (!conn->nick) conn->nick = g_strdup(settings_get_str("nick"));
conn->username = g_strdup(settings_get_str("user_name"));
conn->realname = g_strdup(settings_get_str("real_name"));
diff --git a/src/core/servers.c b/src/core/servers.c
index 06f82d4d..6eaad191 100644
--- a/src/core/servers.c
+++ b/src/core/servers.c
@@ -218,9 +218,7 @@ static void server_real_connect(SERVER_REC *server, IPADDR *ip,
return;
if (ip != NULL) {
- own_ip = ip == NULL ? NULL :
- (IPADDR_IS_V6(ip) ? server->connrec->own_ip6 :
- server->connrec->own_ip4);
+ own_ip = IPADDR_IS_V6(ip) ? server->connrec->own_ip6 : server->connrec->own_ip4;
port = server->connrec->proxy != NULL ?
server->connrec->proxy_port : server->connrec->port;
handle = server->connrec->use_ssl ?
diff --git a/src/fe-common/core/chat-completion.c b/src/fe-common/core/chat-completion.c
index d3e018ad..c37c77cd 100644
--- a/src/fe-common/core/chat-completion.c
+++ b/src/fe-common/core/chat-completion.c
@@ -40,7 +40,7 @@
static int keep_privates_count, keep_publics_count;
static int completion_lowercase;
-static const char *completion_char, *cmdchars;
+static char *completion_char, *cmdchars;
static GSList *global_lastmsgs;
static int completion_auto, completion_strict;
@@ -574,7 +574,7 @@ GList *completion_get_aliases(const char *word)
list = g_list_append(list, g_strdup(node->key));
}
-
+
return list;
}
@@ -781,7 +781,7 @@ GList *completion_get_servers(const char *word)
for (tmp = setupservers; tmp != NULL; tmp = tmp->next) {
SERVER_SETUP_REC *rec = tmp->data;
- if (g_ascii_strncasecmp(rec->address, word, len) == 0)
+ if (g_ascii_strncasecmp(rec->address, word, len) == 0)
list = g_list_append(list, g_strdup(rec->address));
}
@@ -814,12 +814,12 @@ GList *completion_get_targets(const char *word)
list = g_list_append(list, g_strdup(node->key));
}
-
+
return list;
}
static void sig_complete_connect(GList **list, WINDOW_REC *window,
- const char *word, const char *line,
+ const char *word, const char *line,
int *want_space)
{
g_return_if_fail(list != NULL);
@@ -895,7 +895,7 @@ static void sig_complete_alias(GList **list, WINDOW_REC *window,
int *want_space)
{
const char *definition;
-
+
g_return_if_fail(list != NULL);
g_return_if_fail(word != NULL);
g_return_if_fail(line != NULL);
@@ -905,7 +905,7 @@ static void sig_complete_alias(GList **list, WINDOW_REC *window,
*list = g_list_append(NULL, g_strdup(definition));
signal_stop();
}
- } else {
+ } else {
*list = completion_get_aliases(word);
if (*list != NULL) signal_stop();
}
@@ -965,7 +965,7 @@ static void sig_complete_target(GList **list, WINDOW_REC *window,
int *want_space)
{
const char *definition;
-
+
g_return_if_fail(list != NULL);
g_return_if_fail(word != NULL);
g_return_if_fail(line != NULL);
@@ -975,7 +975,7 @@ static void sig_complete_target(GList **list, WINDOW_REC *window,
*list = g_list_append(NULL, g_strdup(definition));
signal_stop();
}
- } else {
+ } else {
*list = completion_get_targets(word);
if (*list != NULL) signal_stop();
}
@@ -1126,11 +1126,16 @@ static void read_settings(void)
keep_privates_count = settings_get_int("completion_keep_privates");
keep_publics_count = settings_get_int("completion_keep_publics");
completion_lowercase = settings_get_bool("completion_nicks_lowercase");
- completion_char = settings_get_str("completion_char");
- cmdchars = settings_get_str("cmdchars");
+
completion_auto = settings_get_bool("completion_auto");
completion_strict = settings_get_bool("completion_strict");
+ g_free_not_null(completion_char);
+ completion_char = g_strdup(settings_get_str("completion_char"));
+
+ g_free_not_null(cmdchars);
+ cmdchars = g_strdup(settings_get_str("cmdchars"));
+
if (*completion_char == '\0') {
/* this would break.. */
completion_auto = FALSE;
@@ -1220,4 +1225,7 @@ void chat_completion_deinit(void)
signal_remove("server disconnected", (SIGNAL_FUNC) sig_server_disconnected);
signal_remove("channel destroyed", (SIGNAL_FUNC) sig_channel_destroyed);
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
+
+ g_free_not_null(completion_char);
+ g_free_not_null(cmdchars);
}
diff --git a/src/fe-common/core/command-history.c b/src/fe-common/core/command-history.c
index afe19aa7..37405c43 100644
--- a/src/fe-common/core/command-history.c
+++ b/src/fe-common/core/command-history.c
@@ -45,7 +45,7 @@ void command_history_add(HISTORY_REC *history, const char *text)
if (link != NULL && strcmp(link->data, text) == 0)
return; /* same as previous entry */
- if (settings_get_int("max_command_history") < 1 ||
+ if (settings_get_int("max_command_history") < 1 ||
history->lines < settings_get_int("max_command_history"))
history->lines++;
else {
@@ -78,12 +78,12 @@ HISTORY_REC *command_history_find_name(const char *name)
for (tmp = histories; tmp != NULL; tmp = tmp->next) {
HISTORY_REC *rec = tmp->data;
-
+
if (rec->name != NULL &&
g_ascii_strcasecmp(rec->name, name) == 0)
return rec;
}
-
+
return NULL;
}
@@ -135,7 +135,7 @@ const char *command_history_next(WINDOW_REC *window, const char *text)
GList *pos;
history = command_history_current(window);
- pos = history->pos;
+ pos = history->pos;
if (pos != NULL)
history->pos = history->pos->next;
@@ -160,21 +160,21 @@ void command_history_clear_pos_func(HISTORY_REC *history, gpointer user_data)
void command_history_clear_pos(WINDOW_REC *window)
{
- g_slist_foreach(histories,
+ g_slist_foreach(histories,
(GFunc) command_history_clear_pos_func, NULL);
}
HISTORY_REC *command_history_create(const char *name)
{
HISTORY_REC *rec;
-
+
rec = g_new0(HISTORY_REC, 1);
-
+
if (name != NULL)
rec->name = g_strdup(name);
histories = g_slist_append(histories, rec);
-
+
return rec;
}
diff --git a/src/fe-common/core/fe-channels.c b/src/fe-common/core/fe-channels.c
index 75147fdb..aefd1034 100644
--- a/src/fe-common/core/fe-channels.c
+++ b/src/fe-common/core/fe-channels.c
@@ -403,7 +403,7 @@ static void display_sorted_nicks(CHANNEL_REC *channel, GSList *nicklist)
nickmode[0] = rec->prefixes[0];
else
nickmode[0] = ' ';
-
+
if (linebuf_size < columns[col]-item_extra+1) {
linebuf_size = (columns[col]-item_extra+1)*2;
linebuf = g_realloc(linebuf, linebuf_size);
diff --git a/src/fe-common/core/fe-ignore.c b/src/fe-common/core/fe-ignore.c
index 96242f9e..1a0b8339 100644
--- a/src/fe-common/core/fe-ignore.c
+++ b/src/fe-common/core/fe-ignore.c
@@ -65,7 +65,7 @@ static void ignore_print(int index, IGNORE_REC *rec)
}
if (rec->fullword) g_string_append(options, "-full ");
if (rec->replies) g_string_append(options, "-replies ");
- if (rec->servertag != NULL)
+ if (rec->servertag != NULL)
g_string_append_printf(options, "-network %s ", rec->servertag);
if (rec->pattern != NULL)
g_string_append_printf(options, "-pattern %s ", rec->pattern);
@@ -137,7 +137,7 @@ static void cmd_ignore(const char *data)
/* Allow -ircnet for backwards compatibility */
if (!servertag)
servertag = g_hash_table_lookup(optlist, "ircnet");
-
+
if (*mask == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
if (*levels == '\0') levels = "ALL";
level = level2bits(levels, NULL);
diff --git a/src/fe-common/core/fe-log.c b/src/fe-common/core/fe-log.c
index 5ee72d8b..9d68faf9 100644
--- a/src/fe-common/core/fe-log.c
+++ b/src/fe-common/core/fe-log.c
@@ -43,11 +43,11 @@
static int autolog_level;
static int autoremove_tag;
-static const char *autolog_path;
+static char *autolog_path;
static THEME_REC *log_theme;
static int skip_next_printtext;
-static const char *log_theme_name;
+static char *log_theme_name;
static int log_dir_create_mode;
@@ -675,9 +675,11 @@ static void sig_theme_destroyed(THEME_REC *theme)
static void read_settings(void)
{
int old_autolog = autolog_level;
- int log_file_create_mode;
+ int log_file_create_mode;
+
+ g_free_not_null(autolog_path);
+ autolog_path = g_strdup(settings_get_str("autolog_path"));
- autolog_path = settings_get_str("autolog_path");
autolog_level = !settings_get_bool("autolog") ? 0 :
settings_get_level("autolog_level");
@@ -687,9 +689,14 @@ static void read_settings(void)
/* write to log files with different theme? */
if (log_theme_name != NULL)
signal_remove("print format", (SIGNAL_FUNC) sig_print_format);
- log_theme_name = settings_get_str("log_theme");
- if (*log_theme_name == '\0')
+
+ g_free_not_null(log_theme_name);
+ log_theme_name = g_strdup(settings_get_str("log_theme"));
+
+ if (*log_theme_name == '\0') {
+ g_free(log_theme_name);
log_theme_name = NULL;
+ }
else
signal_add("print format", (SIGNAL_FUNC) sig_print_format);
@@ -752,7 +759,7 @@ void fe_log_deinit(void)
{
g_source_remove(autoremove_tag);
if (log_theme_name != NULL)
- signal_remove("print format", (SIGNAL_FUNC) sig_print_format);
+ signal_remove("print format", (SIGNAL_FUNC) sig_print_format);
command_unbind("log", (SIGNAL_FUNC) cmd_log);
command_unbind("log open", (SIGNAL_FUNC) cmd_log_open);
@@ -776,4 +783,7 @@ void fe_log_deinit(void)
if (autolog_ignore_targets != NULL)
g_strfreev(autolog_ignore_targets);
+
+ g_free_not_null(autolog_path);
+ g_free_not_null(log_theme_name);
}
diff --git a/src/fe-common/core/fe-messages.c b/src/fe-common/core/fe-messages.c
index 56fe89f8..1d44bdd9 100644
--- a/src/fe-common/core/fe-messages.c
+++ b/src/fe-common/core/fe-messages.c
@@ -82,7 +82,9 @@ char *expand_emphasis(WI_ITEM_REC *item, const char *text)
continue;
if (!ishighalnum(end[-1]) || ishighalnum(end[1]) ||
end[1] == type || end[1] == '*' || end[1] == '_' ||
- (type == 29 && end[1] != '\0' && ishighalnum(end[2])))
+ /* special case for italics to not emphasise
+ common paths by skipping /.../.X */
+ (type == 29 && i_ispunct(end[1]) && ishighalnum(end[2])))
continue;
if (IS_CHANNEL(item)) {
@@ -90,7 +92,7 @@ char *expand_emphasis(WI_ITEM_REC *item, const char *text)
use emphasis on them. */
int found;
char c;
- char *end2;
+ char *end2;
/* check if _foo_ is a nick */
c = end[1];
@@ -232,7 +234,7 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
for_me ? TXT_PUBMSG_ME_CHANNEL :
TXT_PUBMSG_CHANNEL,
printnick, target, msg, nickmode);
- }
+ }
g_free_not_null(nickmode);
g_free_not_null(freemsg);
@@ -240,13 +242,16 @@ static void sig_message_public(SERVER_REC *server, const char *msg,
}
static void sig_message_private(SERVER_REC *server, const char *msg,
- const char *nick, const char *address)
+ const char *nick, const char *address, const char *target)
{
QUERY_REC *query;
char *freemsg = NULL;
int level = MSGLEVEL_MSGS;
- query = query_find(server, nick);
+ /* own message returned by bouncer? */
+ int own = (!strcmp(nick, server->nick));
+
+ query = query_find(server, own ? target : nick);
if (settings_get_bool("emphasis"))
msg = freemsg = expand_emphasis((WI_ITEM_REC *) query, msg);
@@ -254,9 +259,15 @@ static void sig_message_private(SERVER_REC *server, const char *msg,
if (ignore_check(server, nick, address, NULL, msg, level | MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
- printformat(server, nick, level,
- query == NULL ? TXT_MSG_PRIVATE :
- TXT_MSG_PRIVATE_QUERY, nick, address, msg);
+ if (own) {
+ printformat(server, target, level,
+ query == NULL ? TXT_OWN_MSG_PRIVATE :
+ TXT_OWN_MSG_PRIVATE_QUERY, target, msg, server->nick);
+ } else {
+ printformat(server, nick, level,
+ query == NULL ? TXT_MSG_PRIVATE :
+ TXT_MSG_PRIVATE_QUERY, nick, address, msg);
+ }
g_free_not_null(freemsg);
}
diff --git a/src/fe-common/core/fe-queries.c b/src/fe-common/core/fe-queries.c
index 7599fb23..5cdf87ee 100644
--- a/src/fe-common/core/fe-queries.c
+++ b/src/fe-common/core/fe-queries.c
@@ -326,12 +326,15 @@ static int sig_query_autoclose(void)
}
static void sig_message_private(SERVER_REC *server, const char *msg,
- const char *nick, const char *address)
+ const char *nick, const char *address, const char *target)
{
QUERY_REC *query;
+ /* own message returned by bouncer? */
+ int own = (!strcmp(nick, server->nick));
+
/* create query window if needed */
- query = privmsg_get_query(server, nick, FALSE, MSGLEVEL_MSGS);
+ query = privmsg_get_query(server, own ? target : nick, FALSE, MSGLEVEL_MSGS);
/* reset the query's last_unread_msg timestamp */
if (query != NULL)
diff --git a/src/fe-common/core/fe-windows.c b/src/fe-common/core/fe-windows.c
index bf9d7154..1049137f 100644
--- a/src/fe-common/core/fe-windows.c
+++ b/src/fe-common/core/fe-windows.c
@@ -184,7 +184,7 @@ void window_change_server(WINDOW_REC *window, void *server)
if (window->active_server != active) {
window->active_server = active;
signal_emit("window server changed", 2, window, active);
- }
+ }
}
void window_set_refnum(WINDOW_REC *window, int refnum)
diff --git a/src/fe-common/core/hilight-text.h b/src/fe-common/core/hilight-text.h
index d54ec4b5..1692b8ab 100644
--- a/src/fe-common/core/hilight-text.h
+++ b/src/fe-common/core/hilight-text.h
@@ -42,7 +42,7 @@ HILIGHT_REC *hilight_match(SERVER_REC *server, const char *channel,
HILIGHT_REC *hilight_match_nick(SERVER_REC *server, const char *channel,
const char *nick, const char *address,
int level, const char *msg);
-
+
char *hilight_get_color(HILIGHT_REC *rec);
void hilight_update_text_dest(TEXT_DEST_REC *dest, HILIGHT_REC *rec);
diff --git a/src/fe-common/core/printtext.c b/src/fe-common/core/printtext.c
index a5eaa38f..466a2825 100644
--- a/src/fe-common/core/printtext.c
+++ b/src/fe-common/core/printtext.c
@@ -170,13 +170,13 @@ static void print_line(TEXT_DEST_REC *dest, const char *text)
g_return_if_fail(dest != NULL);
g_return_if_fail(text != NULL);
-
+
theme = window_get_theme(dest->window);
tmp = format_get_level_tag(theme, dest);
str = !theme->info_eol ? format_add_linestart(text, tmp) :
format_add_lineend(text, tmp);
g_free_not_null(tmp);
-
+
/* send both the formatted + stripped (for logging etc.) */
stripped = strip_codes(str);
signal_emit_id(signal_print_text, 3, dest, str, stripped);
diff --git a/src/fe-common/core/themes.c b/src/fe-common/core/themes.c
index d92d23fe..c0741cef 100644
--- a/src/fe-common/core/themes.c
+++ b/src/fe-common/core/themes.c
@@ -385,7 +385,7 @@ char *theme_format_expand_get(THEME_REC *theme, const char **format)
&dummy, &dummy, 0);
continue;
}
-
+
if (braces == 0) {
(*format)++;
break;
diff --git a/src/fe-common/core/wcwidth.c b/src/fe-common/core/wcwidth.c
index 4ebfaca9..80d20fa1 100644
--- a/src/fe-common/core/wcwidth.c
+++ b/src/fe-common/core/wcwidth.c
@@ -187,7 +187,7 @@ int mk_wcwidth(unichar ucs)
/* if we arrive here, ucs is not a combining or C0/C1 control character */
- return 1 +
+ return 1 +
(ucs >= 0x1100 &&
(ucs <= 0x115f || /* Hangul Jamo init. consonants */
ucs == 0x2329 || ucs == 0x232a ||
diff --git a/src/fe-common/core/window-commands.c b/src/fe-common/core/window-commands.c
index a975fe5c..61357324 100644
--- a/src/fe-common/core/window-commands.c
+++ b/src/fe-common/core/window-commands.c
@@ -529,7 +529,7 @@ static void cmd_window_item_goto(const char *data, SERVER_REC *server)
GSList *tmp;
void *free_arg;
char *target;
-
+
if (!cmd_get_params(data, &free_arg, 1, &target))
return;
diff --git a/src/fe-common/core/windows-layout.c b/src/fe-common/core/windows-layout.c
index 65741a73..54d7dcbf 100644
--- a/src/fe-common/core/windows-layout.c
+++ b/src/fe-common/core/windows-layout.c
@@ -68,7 +68,7 @@ static void sig_layout_restore_item(WINDOW_REC *window, const char *type,
(SIGNAL_FUNC) signal_query_created_curwin);
restore_win = window;
-
+
protocol = chat_protocol_find(chat_type);
if (protocol == NULL)
window_bind_add(window, tag, name);
diff --git a/src/fe-common/irc/dcc/fe-dcc-chat-messages.c b/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
index 93e10943..45791f56 100644
--- a/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
+++ b/src/fe-common/irc/dcc/fe-dcc-chat-messages.c
@@ -60,7 +60,7 @@ static void sig_message_dcc_own_action(CHAT_DCC_REC *dcc, const char *msg)
format_create_dest_tag(&dest, dcc->server, dcc->servertag, tag,
MSGLEVEL_DCCMSGS | MSGLEVEL_ACTIONS |
MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT, NULL);
-
+
printformat_dest(&dest, query != NULL ? IRCTXT_OWN_DCC_ACTION_QUERY :
IRCTXT_OWN_DCC_ACTION, dcc->mynick, dcc->id, msg);
g_free(tag);
diff --git a/src/fe-common/irc/fe-events-numeric.c b/src/fe-common/irc/fe-events-numeric.c
index d1cd12d4..d6c02d9f 100644
--- a/src/fe-common/irc/fe-events-numeric.c
+++ b/src/fe-common/irc/fe-events-numeric.c
@@ -118,7 +118,7 @@ static void event_who(IRC_SERVER_REC *server, const char *data)
while (*realname != '\0' && *realname != ' ') realname++;
if (*realname == ' ')
*realname++ = '\0';
-
+
recoded = recode_in(SERVER(server), realname, nick);
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_WHO,
channel, nick, stat, hops, user, host, recoded, serv);
diff --git a/src/fe-common/irc/fe-irc-commands.c b/src/fe-common/irc/fe-irc-commands.c
index 765b5340..b380c214 100644
--- a/src/fe-common/irc/fe-irc-commands.c
+++ b/src/fe-common/irc/fe-irc-commands.c
@@ -115,9 +115,9 @@ static void cmd_notice(const char *data, IRC_SERVER_REC *server,
if (*target == '\0' || *msg == '\0')
cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
-
+
signal_emit("message irc own_notice", 3, server, msg, target);
-
+
cmd_params_free(free_arg);
}
diff --git a/src/fe-common/irc/fe-irc-messages.c b/src/fe-common/irc/fe-irc-messages.c
index a8d52745..e0849c75 100644
--- a/src/fe-common/irc/fe-irc-messages.c
+++ b/src/fe-common/irc/fe-irc-messages.c
@@ -87,7 +87,7 @@ static void sig_message_own_public(SERVER_REC *server, const char *msg,
g_free(nickmode);
signal_stop();
}
-
+
}
/* received msg to all ops in channel */
@@ -160,6 +160,7 @@ static void sig_message_irc_action(IRC_SERVER_REC *server, const char *msg,
const char *oldtarget;
char *freemsg = NULL;
int level;
+ int own = FALSE;
oldtarget = target;
target = skip_target(IRC_SERVER(server), target);
@@ -174,10 +175,12 @@ static void sig_message_irc_action(IRC_SERVER_REC *server, const char *msg,
level | MSGLEVEL_NO_ACT))
level |= MSGLEVEL_NO_ACT;
- if (ischannel(*target))
+ if (ischannel(*target)) {
item = irc_channel_find(server, target);
- else
- item = privmsg_get_query(SERVER(server), nick, FALSE, level);
+ } else {
+ own = (!strcmp(nick, server->nick));
+ item = privmsg_get_query(SERVER(server), own ? nick : target, FALSE, level);
+ }
if (settings_get_bool("emphasis"))
msg = freemsg = expand_emphasis(item, msg);
@@ -195,13 +198,21 @@ static void sig_message_irc_action(IRC_SERVER_REC *server, const char *msg,
nick, oldtarget, msg);
}
} else {
- /* private action */
- printformat(server, nick, MSGLEVEL_ACTIONS | MSGLEVEL_MSGS,
- item == NULL ? IRCTXT_ACTION_PRIVATE :
- IRCTXT_ACTION_PRIVATE_QUERY,
- nick, address == NULL ? "" : address, msg);
+ if (own) {
+ /* own action bounced */
+ printformat(server, target,
+ MSGLEVEL_ACTIONS | MSGLEVEL_MSGS,
+ item != NULL && oldtarget == target ? IRCTXT_OWN_ACTION : IRCTXT_OWN_ACTION_TARGET,
+ server->nick, msg, oldtarget);
+ } else {
+ /* private action */
+ printformat(server, nick, MSGLEVEL_ACTIONS | MSGLEVEL_MSGS,
+ item == NULL ? IRCTXT_ACTION_PRIVATE :
+ IRCTXT_ACTION_PRIVATE_QUERY,
+ nick, address == NULL ? "" : address, msg);
+ }
}
-
+
g_free_not_null(freemsg);
}
@@ -219,7 +230,7 @@ static void sig_message_irc_notice(SERVER_REC *server, const char *msg,
{
const char *oldtarget;
int level = MSGLEVEL_NOTICES;
-
+
oldtarget = target;
target = skip_target(IRC_SERVER(server), target);
diff --git a/src/fe-common/irc/fe-irc-server.c b/src/fe-common/irc/fe-irc-server.c
index fbfe4d9d..abde1112 100644
--- a/src/fe-common/irc/fe-irc-server.c
+++ b/src/fe-common/irc/fe-irc-server.c
@@ -63,7 +63,7 @@ static void sig_server_add_fill(IRC_SERVER_SETUP_REC *rec,
char *value;
value = g_hash_table_lookup(optlist, "network");
- /* For backwards compatibility, also allow the old name 'ircnet'.
+ /* For backwards compatibility, also allow the old name 'ircnet'.
But of course only if -network was not given. */
if (!value)
value = g_hash_table_lookup(optlist, "ircnet");
@@ -121,7 +121,7 @@ static void cmd_server_list(const char *data)
g_string_append_printf(str, "ssl_cafile: %s, ", rec->ssl_cafile);
if (rec->ssl_capath)
g_string_append_printf(str, "ssl_capath: %s, ", rec->ssl_capath);
-
+
}
if (rec->max_cmds_at_once > 0)
g_string_append_printf(str, "cmdmax: %d, ", rec->max_cmds_at_once);
diff --git a/src/fe-common/irc/fe-whois.c b/src/fe-common/irc/fe-whois.c
index c5726124..a9c3775e 100644
--- a/src/fe-common/irc/fe-whois.c
+++ b/src/fe-common/irc/fe-whois.c
@@ -92,7 +92,7 @@ static void event_whois_oper(IRC_SERVER_REC *server, const char *data)
params = event_get_params(data, 3, NULL, &nick, &type);
- /* Bugfix: http://bugs.irssi.org/?do=details&id=99
+ /* Bugfix: http://bugs.irssi.org/?do=details&task_id=99
* Author: Geert Hauwaerts <geert@irssi.org>
* Date: Wed Sep 15 20:17:24 CEST 2004
*/
@@ -409,8 +409,8 @@ void fe_whois_init(void)
signal_add("event 311", (SIGNAL_FUNC) event_whois);
signal_add("event 312", (SIGNAL_FUNC) event_whois_server);
- /* readding this events fixes the printing of /whois -yes *
- Bug http://bugs.irssi.org/?do=details&id=123 */
+ /* readding this events fixes the printing of /whois -yes *
+ Bug http://bugs.irssi.org/?do=details&task_id=123 */
signal_add("event 317", (SIGNAL_FUNC) event_whois_idle);
signal_add("event 319", (SIGNAL_FUNC) event_whois_channels);
signal_add("event 313", (SIGNAL_FUNC) event_whois_oper);
diff --git a/src/fe-text/gui-entry.c b/src/fe-text/gui-entry.c
index f123ce4c..17a7c507 100644
--- a/src/fe-text/gui-entry.c
+++ b/src/fe-text/gui-entry.c
@@ -226,8 +226,8 @@ static void gui_entry_draw_from(GUI_ENTRY_REC *entry, int pos)
int i;
int xpos, end_xpos;
- xpos = entry->xpos + entry->promptlen +
- pos2scrpos(entry, pos + entry->scrstart) -
+ xpos = entry->xpos + entry->promptlen +
+ pos2scrpos(entry, pos + entry->scrstart) -
pos2scrpos(entry, entry->scrstart);
end_xpos = entry->xpos + entry->width;
@@ -730,7 +730,7 @@ void gui_entry_transpose_words(GUI_ENTRY_REC *entry)
g_free(second);
}
-
+
gui_entry_redraw_from(entry, spos1);
gui_entry_fix_cursor(entry);
gui_entry_draw(entry);
diff --git a/src/fe-text/gui-printtext.c b/src/fe-text/gui-printtext.c
index cf6028b5..547d39c9 100644
--- a/src/fe-text/gui-printtext.c
+++ b/src/fe-text/gui-printtext.c
@@ -120,6 +120,7 @@ void gui_printtext_after_time(TEXT_DEST_REC *dest, LINE_REC *prev, const char *s
gui->insert_after_time = time;
format_send_to_gui(dest, str);
gui->use_insert_after = FALSE;
+ signal_emit("gui print text after finished", 3, dest->window, gui->insert_after, prev);
}
void gui_printtext_after(TEXT_DEST_REC *dest, LINE_REC *prev, const char *str)
@@ -158,8 +159,11 @@ static void get_colors(int flags, int *fg, int *bg, int *attr)
if (*bg >= 0) {
*bg = mirc_colors[*bg % 100];
flags &= ~GUI_PRINT_FLAG_COLOR_24_BG;
- if (settings_get_bool("mirc_blink_fix"))
- *bg = term_color256map[*bg&0xff] & ~0x08;
+ if (settings_get_bool("mirc_blink_fix")) {
+ if (*bg < 16) /* ansi bit flip :-( */
+ *bg = (*bg&8) | (*bg&4)>>2 | (*bg&2) | (*bg&1)<<2;
+ *bg = term_color256map[*bg&0xff] & 7;
+ }
}
if (*fg >= 0) {
*fg = mirc_colors[*fg % 100];
diff --git a/src/fe-text/irssi.c b/src/fe-text/irssi.c
index c0524247..77033d7a 100644
--- a/src/fe-text/irssi.c
+++ b/src/fe-text/irssi.c
@@ -346,9 +346,9 @@ int main(int argc, char **argv)
before this call.
locales aren't actually used for anything else than autodetection
- of UTF-8 currently..
+ of UTF-8 currently..
- furthermore to get the users's charset with g_get_charset() properly
+ furthermore to get the users's charset with g_get_charset() properly
you have to call setlocale(LC_ALL, "") */
setlocale(LC_ALL, "");
diff --git a/src/fe-text/statusbar.c b/src/fe-text/statusbar.c
index 5453c2d5..b340553f 100644
--- a/src/fe-text/statusbar.c
+++ b/src/fe-text/statusbar.c
@@ -355,7 +355,7 @@ void statusbar_item_redraw(SBAR_ITEM_REC *item)
if (item->max_size != item->size) {
/* item wants a new size - we'll need to redraw
the statusbar to see if this is allowed */
- statusbar_redraw(item->bar, FALSE);
+ statusbar_redraw(item->bar, item->config->right_alignment);
}
active_win = old_active_win;
@@ -668,7 +668,7 @@ void statusbar_item_default_handler(SBAR_ITEM_REC *item, int get_size_only,
int escape_vars)
{
SERVER_REC *server;
- WI_ITEM_REC *wiitem;
+ WI_ITEM_REC *wiitem;
char *tmpstr, *tmpstr2;
theme_rm_col reset;
strcpy(reset.m, "n");
diff --git a/src/fe-text/term-terminfo.c b/src/fe-text/term-terminfo.c
index a0b257c4..29d3f7eb 100644
--- a/src/fe-text/term-terminfo.c
+++ b/src/fe-text/term-terminfo.c
@@ -293,7 +293,7 @@ void term_window_scroll(TERM_WINDOW *window, int count)
term_move_reset(vcx, vcy);
/* set the newly scrolled area dirty */
- for (y = 0; y < window->height; y++)
+ for (y = 0; (window->y+y) < term_height && y < window->height; y++)
term_lines_empty[window->y+y] = FALSE;
}
@@ -324,6 +324,7 @@ static int termctl_set_color_24bit(int bg, unsigned int lc)
}
#define COLOR_RESET UINT_MAX
+#define COLOR_BLACK24 COLOR_RESET - 1
/* Change active color */
#ifdef TERM_TRUECOLOR
@@ -334,17 +335,26 @@ void term_set_color(TERM_WINDOW *window, int col)
{
int set_normal;
- unsigned int fg =
+ unsigned int fg, bg;
#ifdef TERM_TRUECOLOR
- (col & ATTR_FGCOLOR24) ? fgcol24 << 8 :
+ if (col & ATTR_FGCOLOR24) {
+ if (fgcol24)
+ fg = fgcol24 << 8;
+ else
+ fg = COLOR_BLACK24;
+ } else
#endif
- (col & FG_MASK);
+ fg = (col & FG_MASK);
- unsigned int bg =
#ifdef TERM_TRUECOLOR
- (col & ATTR_BGCOLOR24) ? bgcol24 << 8 :
+ if (col & ATTR_BGCOLOR24) {
+ if (bgcol24)
+ bg = bgcol24 << 8;
+ else
+ bg = COLOR_BLACK24;
+ } else
#endif
- ((col & BG_MASK) >> BG_SHIFT);
+ bg = ((col & BG_MASK) >> BG_SHIFT);
if (!term_use_colors && bg > 0)
col |= ATTR_REVERSE;
@@ -370,8 +380,10 @@ void term_set_color(TERM_WINDOW *window, int col)
(fg != 0 || (col & ATTR_RESETFG) == 0)) {
if (term_use_colors) {
last_fg = fg;
- if (!(fg & 0xff))
- termctl_set_color_24bit(0, last_fg >> 8);
+ if (fg >> 8)
+ termctl_set_color_24bit(0,
+ last_fg == COLOR_BLACK24 ? 0
+ : last_fg >> 8);
else
terminfo_set_fg(last_fg);
}
@@ -387,8 +399,10 @@ void term_set_color(TERM_WINDOW *window, int col)
(bg != 0 || (col & ATTR_RESETBG) == 0)) {
if (term_use_colors) {
last_bg = bg;
- if (!(bg & 0xff))
- termctl_set_color_24bit(1, last_bg >> 8);
+ if (bg >> 8)
+ termctl_set_color_24bit(1,
+ last_bg == COLOR_BLACK24 ? 0
+ : last_bg >> 8);
else
terminfo_set_bg(last_bg);
}
diff --git a/src/fe-text/textbuffer-view.c b/src/fe-text/textbuffer-view.c
index 3099ee3e..e2e3707b 100644
--- a/src/fe-text/textbuffer-view.c
+++ b/src/fe-text/textbuffer-view.c
@@ -1228,7 +1228,7 @@ void textbuffer_view_remove_line(TEXT_BUFFER_VIEW_REC *view, LINE_REC *line)
void textbuffer_view_remove_lines_by_level(TEXT_BUFFER_VIEW_REC *view, int level)
{
LINE_REC *line, *next;
-
+
term_refresh_freeze();
line = textbuffer_view_get_lines(view);
diff --git a/src/fe-text/textbuffer-view.h b/src/fe-text/textbuffer-view.h
index ab6786e0..21a9bde6 100644
--- a/src/fe-text/textbuffer-view.h
+++ b/src/fe-text/textbuffer-view.h
@@ -72,7 +72,7 @@ struct _TEXT_BUFFER_VIEW_REC {
/* how many empty lines are in screen. a screenful when started
or used /CLEAR */
- int empty_linecount;
+ int empty_linecount;
/* window is at the bottom of the text buffer */
unsigned int bottom:1;
/* if !bottom - new text has been printed since we were at bottom */
diff --git a/src/fe-text/tparm.c b/src/fe-text/tparm.c
index 3f58e6f3..97c790da 100644
--- a/src/fe-text/tparm.c
+++ b/src/fe-text/tparm.c
@@ -153,7 +153,7 @@ static int termcap;
all terminfo codes are invalid unless something has been pushed on
the stack and termcap strings will never push things on the stack
(%p isn't used by termcap). So where we have a choice we make the
- decision by wether or not somthing has been pushed on the stack.
+ decision by whether or not somthing has been pushed on the stack.
The static variable termcap keeps track of this; it starts out set
to 1 and is incremented as each argument processed by a termcap % code,
however if something is pushed on the stack it's set to 0 and the
@@ -170,7 +170,7 @@ static int termcap;
%c output pop as a char
%'c' push character constant c.
%{n} push decimal constant n.
- %p[1-9] push paramter [1-9]
+ %p[1-9] push parameter [1-9]
%g[a-z] push variable [a-z]
%P[a-z] put pop in variable [a-z]
%l push the length of pop (a string)
@@ -188,7 +188,7 @@ static int termcap;
%O logical or pop and pop and push the result
%! push the logical not of pop
%? condition %t if_true [%e if_false] %;
- if condtion evaulates as true then evaluate if_true,
+ if condition evaulates as true then evaluate if_true,
else evaluate if_false. elseif's can be done:
%? cond %t true [%e cond2 %t true2] ... [%e condN %t trueN] [%e false] %;
%i add one to parameters 1 and 2. (ANSI)
@@ -208,7 +208,7 @@ static int termcap;
(UW) %sx subtract parameter FROM the character x
%>xy if parameter > character x then add character y to parameter
%B convert to BCD (parameter = (parameter/10)*16 + parameter%16)
- %D Delta Data encode (parameter = parameter - 2*(paramter%16))
+ %D Delta Data encode (parameter = parameter - 2*(parameter%16))
%i increment the first two parameters by one
%n xor the first two parameters by 0140
(GNU) %m xor the first two parameters by 0177
@@ -216,7 +216,7 @@ static int termcap;
(GNU) %b backup to previous parameter
(GNU) %f skip this parameter
- Note the two definitions of %a, the GNU defintion is used if the characters
+ Note the two definitions of %a, the GNU definition is used if the characters
after the 'a' are valid, otherwise the UW definition is used.
(GNU) used by GNU Emacs termcap libraries
@@ -316,7 +316,7 @@ char *tparm(const char *str, ...) {
if ((sp[1] == 'p' || sp[1] == 'c')
&& sp[2] != '\0' && fmt == NULL) {
/* GNU aritmitic parameter, what they
- realy need is terminfo. */
+ really need is terminfo. */
int val, lc;
if (sp[1] == 'p'
&& getarg(termcap - 1 + sp[2] - '@',
diff --git a/src/irc/core/bans.c b/src/irc/core/bans.c
index de799812..d8d5d448 100644
--- a/src/irc/core/bans.c
+++ b/src/irc/core/bans.c
@@ -309,7 +309,7 @@ static void cmd_unban(const char *data, IRC_SERVER_REC *server, void *item)
ban = g_strdup(BAN_LAST);
command_set_ban(ban ? ban : data, server, item, FALSE, 0);
-
+
g_free(ban);
cmd_params_free(free_arg);
diff --git a/src/irc/core/channel-events.c b/src/irc/core/channel-events.c
index 9198ed82..6fdfeef3 100644
--- a/src/irc/core/channel-events.c
+++ b/src/irc/core/channel-events.c
@@ -123,10 +123,10 @@ static void channel_change_topic(IRC_SERVER_REC *server, const char *channel,
{
CHANNEL_REC *chanrec;
char *recoded = NULL;
-
+
chanrec = channel_find(SERVER(server), channel);
if (chanrec == NULL) return;
- /* the topic may be send out encoded, so we need to
+ /* the topic may be send out encoded, so we need to
recode it back or /topic <tab> will not work properly */
recoded = recode_in(SERVER(server), topic, channel);
if (topic != NULL) {
@@ -137,7 +137,7 @@ static void channel_change_topic(IRC_SERVER_REC *server, const char *channel,
g_free_not_null(chanrec->topic_by);
chanrec->topic_by = g_strdup(setby);
-
+
chanrec->topic_time = settime;
signal_emit("channel topic changed", 1, chanrec);
diff --git a/src/irc/core/channel-rejoin.c b/src/irc/core/channel-rejoin.c
index d518f0c2..68a1dee1 100644
--- a/src/irc/core/channel-rejoin.c
+++ b/src/irc/core/channel-rejoin.c
@@ -84,7 +84,7 @@ static int channel_rejoin(IRC_SERVER_REC *server, const char *channel)
channel_destroy(CHANNEL(chanrec));
return 0;
}
-
+
rec = rejoin_find(server, channel);
if (rec != NULL) {
/* already exists */
diff --git a/src/irc/core/channels-query.c b/src/irc/core/channels-query.c
index 48ba5703..857ebaf0 100644
--- a/src/irc/core/channels-query.c
+++ b/src/irc/core/channels-query.c
@@ -311,7 +311,7 @@ static void channel_checksync(IRC_CHANNEL_REC *channel)
signal_emit("channel sync", 1, channel);
}
-/* Error occured when trying to execute query - abort and try again. */
+/* Error occurred when trying to execute query - abort and try again. */
static void query_current_error(IRC_SERVER_REC *server)
{
SERVER_QUERY_REC *rec;
diff --git a/src/irc/core/irc-channels.c b/src/irc/core/irc-channels.c
index dd6e29ce..e38cb98b 100644
--- a/src/irc/core/irc-channels.c
+++ b/src/irc/core/irc-channels.c
@@ -114,7 +114,7 @@ static void irc_channels_join(IRC_SERVER_REC *server, const char *data,
use_keys = TRUE;
key = schannel->password;
} else key = NULL;
-
+
g_string_append_printf(outkeys, "%s,", get_join_key(key));
channame = channel + (channel[0] == '!' &&
channel[1] == '!');
@@ -126,11 +126,11 @@ static void irc_channels_join(IRC_SERVER_REC *server, const char *data,
if (*tmpkey != NULL)
tmpkey++;
-
+
tmpstr = tmp;
tmpstr++;
cmdlen = outchans->len-1;
-
+
if (use_keys)
cmdlen += outkeys->len;
if (*tmpstr != NULL)
@@ -138,8 +138,8 @@ static void irc_channels_join(IRC_SERVER_REC *server, const char *data,
strlen(*tmpstr)+1;
if (*tmpkey != NULL)
cmdlen += strlen(*tmpkey);
-
- /* don't try to send too long lines
+
+ /* don't try to send too long lines
make sure it's not longer than 510
so 510 - strlen("JOIN ") = 505 */
if (cmdlen < 505)
diff --git a/src/irc/core/irc-commands.c b/src/irc/core/irc-commands.c
index 71828022..7c3d3f5f 100644
--- a/src/irc/core/irc-commands.c
+++ b/src/irc/core/irc-commands.c
@@ -790,7 +790,7 @@ static void cmd_knockout(const char *data, IRC_SERVER_REC *server,
bancmd = *banmasks == '\0'? NULL :
g_strdup_printf("%s %s", channel->name, banmasks);
-
+
if (settings_get_bool("kick_first_on_kickban")) {
signal_emit("command kick", 3, kickcmd, server, channel);
if (bancmd != NULL)
@@ -894,7 +894,7 @@ static void cmd_accept(const char *data, IRC_SERVER_REC *server)
{
CMD_IRC_SERVER(server);
- if (*data == '\0')
+ if (*data == '\0')
irc_send_cmd(server, "ACCEPT *");
else
irc_send_cmdv(server, "ACCEPT %s", data);
@@ -905,7 +905,7 @@ static void cmd_unsilence(const char *data, IRC_SERVER_REC *server)
{
CMD_IRC_SERVER(server);
- if (*data == '\0')
+ if (*data == '\0')
cmd_return_error(CMDERR_NOT_ENOUGH_PARAMS);
irc_send_cmdv(server, "SILENCE -%s", data);
@@ -998,15 +998,11 @@ void irc_commands_init(void)
command_bind_irc("trace", NULL, (SIGNAL_FUNC) command_self);
/* SYNTAX: VERSION [<server>|<nick>] */
command_bind_irc("version", NULL, (SIGNAL_FUNC) command_self);
- /* SYNTAX: SERVLIST [<server mask>] */
- command_bind_irc("servlist", NULL, (SIGNAL_FUNC) command_self);
/* SYNTAX: SILENCE [[+|-]<nick!user@host>]
SILENCE [<nick>] */
command_bind_irc("silence", NULL, (SIGNAL_FUNC) command_self);
command_bind_irc("unsilence", NULL, (SIGNAL_FUNC) cmd_unsilence);
command_bind_irc("sconnect", NULL, (SIGNAL_FUNC) cmd_sconnect);
- /* SYNTAX: SQUERY <service> [<commands>] */
- command_bind_irc("squery", NULL, (SIGNAL_FUNC) command_2self);
/* SYNTAX: DIE */
command_bind_irc("die", NULL, (SIGNAL_FUNC) command_self);
/* SYNTAX: HASH */
@@ -1016,8 +1012,6 @@ void irc_commands_init(void)
command_bind_irc("restart", NULL, (SIGNAL_FUNC) command_self);
/* SYNTAX: SQUIT <server>|<mask> <reason> */
command_bind_irc("squit", NULL, (SIGNAL_FUNC) command_2self);
- /* SYNTAX: UPING <server> */
- command_bind_irc("uping", NULL, (SIGNAL_FUNC) command_self);
/* SYNTAX: USERHOST <nicks> */
command_bind_irc("userhost", NULL, (SIGNAL_FUNC) command_self);
command_bind_irc("quote", NULL, (SIGNAL_FUNC) cmd_quote);
@@ -1077,17 +1071,14 @@ void irc_commands_deinit(void)
command_unbind("time", (SIGNAL_FUNC) command_self);
command_unbind("trace", (SIGNAL_FUNC) command_self);
command_unbind("version", (SIGNAL_FUNC) command_self);
- command_unbind("servlist", (SIGNAL_FUNC) command_self);
command_unbind("silence", (SIGNAL_FUNC) command_self);
command_unbind("unsilence", (SIGNAL_FUNC) cmd_unsilence);
command_unbind("sconnect", (SIGNAL_FUNC) cmd_sconnect);
- command_unbind("squery", (SIGNAL_FUNC) command_2self);
command_unbind("die", (SIGNAL_FUNC) command_self);
command_unbind("hash", (SIGNAL_FUNC) command_self);
command_unbind("oper", (SIGNAL_FUNC) cmd_oper);
command_unbind("restart", (SIGNAL_FUNC) command_self);
command_unbind("squit", (SIGNAL_FUNC) command_2self);
- command_unbind("uping", (SIGNAL_FUNC) command_self);
command_unbind("userhost", (SIGNAL_FUNC) command_self);
command_unbind("quote", (SIGNAL_FUNC) cmd_quote);
command_unbind("wall", (SIGNAL_FUNC) cmd_wall);
diff --git a/src/irc/core/irc-nicklist.c b/src/irc/core/irc-nicklist.c
index da9d4aca..5438509e 100644
--- a/src/irc/core/irc-nicklist.c
+++ b/src/irc/core/irc-nicklist.c
@@ -195,7 +195,7 @@ static void event_end_of_names(IRC_SERVER_REC *server, const char *data)
IRC_CHANNEL_REC *chanrec;
NICK_REC *ownnick;
int nicks;
-
+
g_return_if_fail(server != NULL);
params = event_get_params(data, 2, NULL, &channel);
@@ -384,7 +384,7 @@ static void event_nick_in_use(IRC_SERVER_REC *server, const char *data)
cmd = g_strdup_printf("NICK %s", server->nick);
irc_send_cmd_now(server, cmd);
- g_free(cmd);
+ g_free(cmd);
}
static void event_target_unavailable(IRC_SERVER_REC *server, const char *data)
diff --git a/src/irc/core/irc-servers-reconnect.c b/src/irc/core/irc-servers-reconnect.c
index 1587d4e6..b0aad26f 100644
--- a/src/irc/core/irc-servers-reconnect.c
+++ b/src/irc/core/irc-servers-reconnect.c
@@ -71,7 +71,7 @@ static void sig_connected(IRC_SERVER_REC *server)
return;
if (server->connrec->away_reason != NULL)
- irc_server_send_away(server, server->connrec->away_reason);
+ irc_server_send_away(server, server->connrec->away_reason);
}
static void event_nick_collision(IRC_SERVER_REC *server, const char *data)
diff --git a/src/irc/core/irc-servers.c b/src/irc/core/irc-servers.c
index 13784f88..27878989 100644
--- a/src/irc/core/irc-servers.c
+++ b/src/irc/core/irc-servers.c
@@ -178,23 +178,15 @@ static char **split_message(SERVER_REC *server, const char *target,
const char *msg)
{
IRC_SERVER_REC *ircserver = IRC_SERVER(server);
- int userhostlen = MAX_USERHOST_LEN;
g_return_val_if_fail(ircserver != NULL, NULL);
g_return_val_if_fail(target != NULL, NULL);
g_return_val_if_fail(msg != NULL, NULL);
- /*
- * If we have joined a channel, userhost will be set, so we can
- * calculate the exact maximum length.
- */
- if (ircserver->userhost != NULL)
- userhostlen = strlen(ircserver->userhost);
-
- /* length calculation shamelessly stolen from splitlong.pl */
+ /* length calculation shamelessly stolen from splitlong_safe.pl */
return split_line(SERVER(server), msg, target,
510 - strlen(":! PRIVMSG :") -
- strlen(ircserver->nick) - userhostlen -
+ strlen(ircserver->nick) - MAX_USERHOST_LEN -
strlen(target));
}
@@ -458,18 +450,14 @@ void irc_server_send_action(IRC_SERVER_REC *server, const char *target, const ch
char **irc_server_split_action(IRC_SERVER_REC *server, const char *target,
const char *data)
{
- int userhostlen = MAX_USERHOST_LEN;
-
g_return_val_if_fail(server != NULL, NULL);
g_return_val_if_fail(target != NULL, NULL);
g_return_val_if_fail(data != NULL, NULL);
- if (server->userhost != NULL)
- userhostlen = strlen(server->userhost);
-
return split_line(SERVER(server), data, target,
510 - strlen(":! PRIVMSG :\001ACTION \001") -
- strlen(server->nick) - userhostlen - strlen(target));
+ strlen(server->nick) - MAX_USERHOST_LEN -
+ strlen(target));
}
void irc_server_send_away(IRC_SERVER_REC *server, const char *reason)
@@ -484,9 +472,11 @@ void irc_server_send_away(IRC_SERVER_REC *server, const char *reason)
if (*reason != '\0') {
server->away_reason = g_strdup(reason);
reason = recoded = recode_out(SERVER(server), reason, NULL);
+ irc_send_cmdv(server, "AWAY :%s", reason);
+ } else {
+ irc_send_cmdv(server, "AWAY");
}
- irc_send_cmdv(server, "AWAY :%s", reason);
}
g_free(recoded);
}
@@ -753,7 +743,7 @@ static void event_isupport(IRC_SERVER_REC *server, const char *data)
char **item, *sptr, *eptr;
char **isupport;
gpointer key, value;
-
+
g_return_if_fail(server != NULL);
server->isupport_sent = TRUE;
diff --git a/src/irc/core/irc-session.c b/src/irc/core/irc-session.c
index bcb0a122..42d82734 100644
--- a/src/irc/core/irc-session.c
+++ b/src/irc/core/irc-session.c
@@ -69,7 +69,7 @@ static void sig_session_save_server(IRC_SERVER_REC *server, CONFIG_REC *config,
isupport = config_node_section(node, "isupport", NODE_TYPE_BLOCK);
isupport_data.config = config;
isupport_data.node = isupport;
-
+
g_hash_table_foreach(server->isupport, (GHFunc) session_isupport_foreach, &isupport_data);
}
diff --git a/src/irc/core/modes.c b/src/irc/core/modes.c
index 7054182f..ebaf4b8f 100644
--- a/src/irc/core/modes.c
+++ b/src/irc/core/modes.c
@@ -78,7 +78,7 @@ void prefix_add(char prefixes[MAX_USER_PREFIXES+1], char newprefix, SERVER_REC *
if (*prefixlst == newprefix)
break; /* insert the new prefix here */
-
+
if (*prefixlst == prefixes[oldpos]) {
/* this prefix is present.
* the one we are inserting goes after it.
@@ -88,7 +88,7 @@ void prefix_add(char prefixes[MAX_USER_PREFIXES+1], char newprefix, SERVER_REC *
}
prefixlst++;
}
-
+
/* newpos is now the position in which we wish to insert the prefix */
newprefixes[newpos++] = newprefix;
@@ -274,7 +274,7 @@ void modes_type_b(IRC_CHANNEL_REC *channel, const char *setby, char type,
channel->key = g_strdup(arg);
}
}
-
+
mode_set_arg(channel->server, newmode, type, mode, arg, FALSE);
}
@@ -285,7 +285,7 @@ void modes_type_c(IRC_CHANNEL_REC *channel, const char *setby,
if (mode == 'l') {
channel->limit = type == '-' ? 0 : atoi(arg);
}
-
+
mode_set_arg(channel->server, newmode, type, mode, arg, FALSE);
}
diff --git a/src/irc/core/servers-redirect.c b/src/irc/core/servers-redirect.c
index 34beaef6..518248cb 100644
--- a/src/irc/core/servers-redirect.c
+++ b/src/irc/core/servers-redirect.c
@@ -734,7 +734,7 @@ void servers_redirect_init(void)
"event 403", 1, /* no such channel */
"event 442", 1, /* "you're not on that channel" */
"event 479", 1, /* "Cannot join channel (illegal name)" IMHO this is not a logical reply from server. */
- "event 472", -1, /* unknown mode (you should check e-mode's existance from 004 event instead of relying on this) */
+ "event 472", -1, /* unknown mode (you should check e-mode's existence from 004 event instead of relying on this) */
NULL,
NULL);
@@ -747,7 +747,7 @@ void servers_redirect_init(void)
"event 403", 1, /* no such channel */
"event 442", 1, /* "you're not on that channel" */
"event 479", 1, /* "Cannot join channel (illegal name)" IMHO this is not a logical reply from server. */
- "event 472", -1, /* unknown mode (you should check I-mode's existance from 004 event instead of relying on this) */
+ "event 472", -1, /* unknown mode (you should check I-mode's existence from 004 event instead of relying on this) */
NULL,
NULL);
diff --git a/src/irc/dcc/dcc-chat.c b/src/irc/dcc/dcc-chat.c
index ad1442fc..8ee4decd 100644
--- a/src/irc/dcc/dcc-chat.c
+++ b/src/irc/dcc/dcc-chat.c
@@ -428,7 +428,7 @@ static void dcc_chat_passive(CHAT_DCC_REC *dcc)
dcc_ip2str(&own_ip, host);
irc_send_cmdv(dcc->server, "PRIVMSG %s :\001DCC CHAT CHAT %s %d %d\001",
dcc->nick, host, port, dcc->pasv_id);
-
+
}
/* SYNTAX: DCC CHAT [-passive] [<nick>] */
@@ -615,7 +615,7 @@ static void ctcp_msg_dcc_chat(IRC_SERVER_REC *server, const char *data,
char **params;
int paramcount;
int passive, autoallow = FALSE;
-
+
/* CHAT <unused> <address> <port> */
/* CHAT <unused> <address> 0 <id> (DCC CHAT passive protocol) */
params = g_strsplit(data, " ", -1);
@@ -656,14 +656,14 @@ static void ctcp_msg_dcc_chat(IRC_SERVER_REC *server, const char *data,
}
}
}
-
+
dcc = dcc_chat_create(server, chat, nick, params[0]);
dcc->target = g_strdup(target);
dcc->port = atoi(params[2]);
-
+
if (passive)
dcc->pasv_id = atoi(params[3]);
-
+
dcc_str2ip(params[1], &dcc->addr);
net_ip2host(&dcc->addr, dcc->addrstr);
diff --git a/src/irc/dcc/dcc-get.c b/src/irc/dcc/dcc-get.c
index 8eee81b3..69fdc746 100644
--- a/src/irc/dcc/dcc-get.c
+++ b/src/irc/dcc/dcc-get.c
@@ -454,7 +454,7 @@ static void ctcp_msg_dcc_send(IRC_SERVER_REC *server, const char *data,
g_memmove(fname, fname+1, len);
quoted = TRUE;
}
-
+
if (passive && port != 0) {
/* This is NOT a DCC SEND request! This is a reply to our
passive request. We MUST check the IDs and then connect to
@@ -501,7 +501,7 @@ static void ctcp_msg_dcc_send(IRC_SERVER_REC *server, const char *data,
if (passive && port == 0)
dcc->pasv_id = p_id; /* Assign the ID to the DCC */
-
+
memcpy(&dcc->addr, &ip, sizeof(ip));
if (dcc->addr.family == AF_INET)
net_ip2host(&dcc->addr, dcc->addrstr);
diff --git a/src/irc/dcc/dcc-resume.c b/src/irc/dcc/dcc-resume.c
index 28871986..11b28aef 100644
--- a/src/irc/dcc/dcc-resume.c
+++ b/src/irc/dcc/dcc-resume.c
@@ -94,7 +94,7 @@ static int dcc_ctcp_resume_parse(int type, const char *data, const char *nick,
return 0;
fileparams = get_file_params_count_resume(params, paramcount);
-
+
if (paramcount >= fileparams + 2) {
port = atoi(params[fileparams]);
*size = str_to_uofft(params[fileparams+1]);
diff --git a/src/irc/dcc/dcc-send.c b/src/irc/dcc/dcc-send.c
index 558fd109..2ce84f18 100644
--- a/src/irc/dcc/dcc-send.c
+++ b/src/irc/dcc/dcc-send.c
@@ -194,7 +194,7 @@ static void cmd_dcc_send(const char *data, IRC_SERVER_REC *server,
cmd_param_error(CMDERR_NOT_CONNECTED);
passive = g_hash_table_lookup(optlist, "passive") != NULL;
-
+
if (g_hash_table_lookup(optlist, "rmhead") != NULL) {
queue = dcc_queue_old(nick, servertag);
if (queue != -1)
@@ -217,7 +217,7 @@ static void cmd_dcc_send(const char *data, IRC_SERVER_REC *server,
if (*fileargs == '\0')
cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
-
+
dcc_send_add(servertag, chat, nick, fileargs, mode, passive);
}
@@ -434,11 +434,11 @@ static int dcc_send_one_file(int queue, const char *target, const char *fname,
if (passive) {
dcc->pasv_id = rand() % 64;
}
-
+
/* send DCC request */
signal_emit("dcc request send", 1, dcc);
-
+
dcc_ip2str(&own_ip, host);
if (passive == FALSE) {
str = g_strdup_printf(dcc->file_quoted ?
diff --git a/src/irc/dcc/dcc.c b/src/irc/dcc/dcc.c
index e4ee4b7c..6f0d5c81 100644
--- a/src/irc/dcc/dcc.c
+++ b/src/irc/dcc/dcc.c
@@ -90,9 +90,9 @@ void dcc_init_rec(DCC_REC *dcc, IRC_SERVER_REC *server, CHAT_DCC_REC *chat,
dcc->servertag = server != NULL ? g_strdup(server->tag) :
(chat == NULL ? NULL : g_strdup(chat->servertag));
-
+
dcc->pasv_id = -1; /* Not a passive DCC */
-
+
dcc_conns = g_slist_append(dcc_conns, dcc);
signal_emit("dcc created", 1, dcc);
}
@@ -454,8 +454,8 @@ static int dcc_timeout_func(void)
/* Timed out - don't send DCC REJECT CTCP so CTCP
flooders won't affect us and it really doesn't
matter that much anyway if the other side doen't
- get it..
-
+ get it..
+
We don't want dcc servers to time out. */
dcc_close(dcc);
}
diff --git a/src/irc/dcc/dcc.h b/src/irc/dcc/dcc.h
index 10639207..144cc89b 100644
--- a/src/irc/dcc/dcc.h
+++ b/src/irc/dcc/dcc.h
@@ -27,7 +27,7 @@ typedef struct {
/* passive DCC */
#define dcc_is_passive(dcc) \
((dcc)->pasv_id >= 0)
-
+
extern GSList *dcc_conns;
void dcc_register_type(const char *type);
diff --git a/src/irc/flood/autoignore.c b/src/irc/flood/autoignore.c
index 94adf167..250a1fe8 100644
--- a/src/irc/flood/autoignore.c
+++ b/src/irc/flood/autoignore.c
@@ -38,7 +38,7 @@ void autoignore_update(IGNORE_REC *rec, int level)
ignore_update_rec(rec);
}
-void autoignore_add(IRC_SERVER_REC *server, char *mask, int level)
+void autoignore_add(IRC_SERVER_REC *server, char *mask, int level)
{
IGNORE_REC *rec;
diff --git a/src/irc/proxy/listen.c b/src/irc/proxy/listen.c
index 8edffbd3..33392285 100644
--- a/src/irc/proxy/listen.c
+++ b/src/irc/proxy/listen.c
@@ -178,7 +178,7 @@ static void handle_client_cmd(CLIENT_REC *client, char *cmd, char *args,
rec->proxy_address, rec->nick, rec->listen->ircnet);
rec->want_ctcp = 0;
}
-
+
}
proxy_outdata(client, ":%s NOTICE %s :You're now receiving CTCPs sent to %s\n",
client->proxy_address, client->nick,client->listen->ircnet);
@@ -421,7 +421,7 @@ static void sig_server_event(IRC_SERVER_REC *server, const char *line,
/* CTCP - either answer ourself or forward it to one client */
for (tmp = proxy_clients; tmp != NULL; tmp = tmp->next) {
CLIENT_REC *rec = tmp->data;
-
+
if (rec->want_ctcp == 1) {
/* only CTCP for the chatnet where client is connected to will be forwarded */
if (strstr(rec->proxy_address, server->connrec->chatnet) != NULL) {
diff --git a/src/perl/perl-common.c b/src/perl/perl-common.c
index 1fbd000b..0a8a5d92 100644
--- a/src/perl/perl-common.c
+++ b/src/perl/perl-common.c
@@ -629,7 +629,7 @@ static void perl_register_protocol(CHAT_PROTOCOL_REC *rec)
perl_eval_pv(code, TRUE);
}
- pcode = g_strdup_printf(find_use_code,
+ pcode = g_strdup_printf(find_use_code,
settings_get_str("perl_use_lib"), name);
sv = perl_eval_pv(pcode, TRUE);
g_free(pcode);
diff --git a/src/perl/perl-signals.c b/src/perl/perl-signals.c
index be4a9a5d..1f602c66 100644
--- a/src/perl/perl-signals.c
+++ b/src/perl/perl-signals.c
@@ -475,7 +475,7 @@ void perl_command_bind_to(const char *cmd, const char *category,
g_free(signal);
}
-void perl_command_runsub(const char *cmd, const char *data,
+void perl_command_runsub(const char *cmd, const char *data,
SERVER_REC *server, WI_ITEM_REC *item)
{
command_runsub(cmd, data, server, item);
diff --git a/src/perl/perl-signals.h b/src/perl/perl-signals.h
index e2c3db61..78a95bed 100644
--- a/src/perl/perl-signals.h
+++ b/src/perl/perl-signals.h
@@ -21,7 +21,7 @@ void perl_command_bind_to(const char *cmd, const char *category,
void perl_command_unbind(const char *cmd, SV *func);
-void perl_command_runsub(const char *cmd, const char *data,
+void perl_command_runsub(const char *cmd, const char *data,
SERVER_REC *server, WI_ITEM_REC *item);
void perl_signal_register(const char *signal, const char **args);