Compare commits

..

1,815 commits

Author SHA1 Message Date
ailin-nemui
43f1727ef9
Merge pull request #1611 from horgh/horgh/muon-meson-fmt-workflow
Add muon-meson fmt GitHub Actions workflow
2026-01-27 08:02:34 +00:00
William Storey
54bb34e14f Add muon fmt GitHub Actions workflow 2026-01-26 21:02:10 -08:00
William Storey
7ca9fd5aee Format root meson.build 2026-01-26 21:02:10 -08:00
Ailin Nemui
221d520c37 run meson formatter 2026-01-25 22:07:44 +01:00
ailin-nemui
80b8875fea
Merge pull request #1607 from ailin-nemui/gio-resolver-fixes
GResolver fixes
2026-01-25 18:22:20 +00:00
Ailin Nemui
88afc78aac GResolver fixes
fix issues brought up by @horgh in #1580
2026-01-25 00:25:44 +01:00
ailin-nemui
00466fe5be
Merge pull request #1605 from ailin-nemui/gio-resolver-old
add compatibility code for older GResolver
2026-01-24 20:04:17 +00:00
ailin-nemui
64db7abcec
Merge pull request #1606 from ailin-nemui/comment-warning
fix space in end comment
2026-01-24 20:03:33 +00:00
Ailin Nemui
0157a4424b fix clang-format-xs boot code 2026-01-24 20:53:29 +01:00
Ailin Nemui
00146211d0 fix space in end comment 2026-01-24 18:06:21 +01:00
Ailin Nemui
e9281b2f11 add compatibility code for older GResolver 2026-01-24 18:05:05 +01:00
ailin-nemui
3629a122c6
Merge pull request #1604 from ailin-nemui/perl-irc-dcc
make Irssi::Irc usable without dcc
2026-01-24 15:28:52 +00:00
Ailin Nemui
45d3013f9e up abi 2026-01-24 14:27:18 +01:00
Ailin Nemui
a54677ce99 up perl api 2026-01-24 14:27:16 +01:00
Ailin Nemui
2012668bef make Irssi::Irc usable without dcc 2026-01-24 14:27:16 +01:00
Ailin Nemui
51322d6af1 restore ip4_any 2026-01-24 13:53:23 +01:00
ailin-nemui
3c65684643
Merge pull request #1568 from nikolas/patch-2
Add a few more compile dependencies to INSTALL document
2026-01-23 21:18:17 +00:00
nikolas
c6d15ee461 Add a few more compile dependencies to INSTALL document 2026-01-23 22:17:39 +01:00
ailin-nemui
62031f5bdc
Merge pull request #1580 from ailin-nemui/gio-resolver
use GIO resolver
2026-01-23 20:42:55 +00:00
Ailin Nemui
e64ed836a5 up glib wrap 2026-01-23 21:21:10 +01:00
Ailin Nemui
51f2a4f7fb use GIO resolver
change: rename resolve_prefer_ipv6 -> irssiproxy_prefer_ipv6
2026-01-23 21:21:10 +01:00
ailin-nemui
d5be7d7756
Merge pull request #1578 from ailin-nemui/cygwin
make compilation work on cygwin
2026-01-23 20:20:43 +00:00
ailin-nemui
81887a6224
Merge pull request #1599 from ailin-nemui/docs
run syncdocs.sh
2025-12-27 21:46:58 +00:00
ailin-nemui
97304bb7c0
Merge pull request #1600 from ailin-nemui/github
github actions: update package lists
2025-12-27 21:46:19 +00:00
Ailin Nemui
d30cdafcff github actions: update package lists 2025-12-27 22:41:02 +01:00
Ailin Nemui
82b253f63e run syncdocs.sh
added New-users and qna, removed faq and startup-HOWTO from sync
2025-12-27 22:35:23 +01:00
ailin-nemui
ebdf863925
Merge pull request #1597 from ailin-nemui/scripts
run syncscripts.sh
2025-12-27 19:42:18 +00:00
Ailin Nemui
d145f24c22 run syncscripts.sh
autoop 1.10 -> 1.11
mail 2.92 -> 2.93
scriptassist 2022053100 -> 2023111700
2025-12-27 20:41:26 +01:00
ailin-nemui
6c72dc14fa
Merge pull request #1594 from soulseller/fix/hide-text-style-colors
formats: fix hide_text_style and hide_colors to mitigate color bleed
2025-11-27 11:16:35 +00:00
soulseller
3811b1ffc9 formats: fix hide_text_style and hide_colors to mitigate color bleed 2025-11-27 00:59:18 +02:00
ailin-nemui
89dc74cbdd
Merge pull request #1591 from soulseller/fix/netsplit-nickname-truncation
fe-netsplit: fix nickname truncation to avoid trailing comma-space
2025-11-25 13:19:12 +00:00
ailin-nemui
bab97b4c0c
Merge pull request #1588 from arza-zara/patch-1
Increase default scrollback_lines
2025-11-25 12:23:40 +00:00
soulseller
5416843d2d fe-netsplit: fix nickname truncation to avoid trailing comma-space 2025-11-23 15:15:24 +02:00
ailin-nemui
f4a4bcb4b8
Merge pull request #1590 from jremes-foss/lusers-in-typo-fix
Typo fix in docs/help/in/lusers.in
2025-11-22 15:08:00 +00:00
Juha Remes
3316202c48 Typo fix in docs/help/in/lusers.in 2025-11-22 14:27:53 +00:00
arza
f293277765
Increase default scrollback_lines
It seems common that people miss important messages when being away and want to increase the scrollback.
2025-09-23 00:01:54 +03:00
ailin-nemui
e70993c4b6
Merge pull request #1577 from ailin-nemui/glib276
replace str->str & g_string_free with g_string_free_and_steal
2025-07-26 17:32:43 +00:00
Ailin Nemui
989ddd8429 replace shared_module with shared_library
according to mesonbuild irc chat
2025-07-25 19:49:53 +02:00
Ailin Nemui
df8aa42778 make compilation work on cygwin 2025-07-25 16:20:28 +01:00
ailin-nemui
cc24b2c54c
Merge pull request #1579 from ailin-nemui/ghvoid
fix xbps github action
2025-07-25 14:48:09 +00:00
Ailin Nemui
d21ff2e658 fix xbps 2025-07-25 16:24:11 +02:00
Ailin Nemui
8eee36d1ea replace str->str & g_string_free with g_string_free_and_steal
solving unused warning in GLib 2.76
2025-07-22 12:03:49 +02:00
ailin-nemui
995e77c30d
Merge pull request #1575 from irssi/hilight_syntax_update
Add -priority to hilight syntax line
2025-07-21 16:51:55 +00:00
ailin-nemui
216715bc81
Merge pull request #1576 from ailin-nemui/solaris
fix github solaris test
2025-07-21 16:51:40 +00:00
Ailin Nemui
9f0b2bc50d detect third argument type of puts 2025-07-21 18:35:09 +02:00
Ailin Nemui
6276fe1a68 debug logging solarisvm prepare 2025-07-20 23:03:52 +02:00
Jari Matilainen
7681cb7585
Add -priority to hilight syntax line 2025-07-20 22:40:59 +02:00
ailin-nemui
aa285d45cd
Merge pull request #1572 from ailin-nemui/perl-redefined
fix _GNU_SOURCE redefined warning due to perl ccflags
2025-07-13 17:57:31 +00:00
Ailin Nemui
838f8d179e fix _GNU_SOURCE redefined warning due to perl ccflags 2025-07-13 19:33:52 +02:00
ailin-nemui
599448af2e
Merge pull request #1566 from ar-an-ribe/fix-for-issue-1513
Resolve issue #1513.
2025-05-02 05:56:26 +00:00
Christian Carey
f12ed4ff54 Resolve issue #1513. 2025-05-02 00:02:46 -04:00
ailin-nemui
4ec9d10904
Merge pull request #1560 from ailin-nemui/wchar
add missing include for wcwidth thread test
2025-04-29 20:34:42 +00:00
Ailin Nemui
9fd6df2a15 add missing include for wcwidth thread test 2025-04-29 22:27:14 +02:00
ailin-nemui
4b33824249
Merge pull request #1565 from ailin-nemui/void
Void Linux github action fixes
2025-04-29 20:26:31 +00:00
Ailin Nemui
8eea7bef92 curl render 2025-04-29 22:19:02 +02:00
Ailin Nemui
af4fa60d3e s/gsed/sed 2025-04-29 22:14:52 +02:00
ailin-nemui
824c1aa376
Merge pull request #1563 from ailin-nemui/void
test the void
2025-04-29 20:08:05 +00:00
Ailin Nemui
5c53f2a329 test the void 2025-04-29 22:03:33 +02:00
ailin-nemui
f857f29eaf
Merge pull request #1564 from ailin-nemui/pep440
adapt pep440 dev version in make-dist.sh
2025-04-29 20:02:49 +00:00
Ailin Nemui
4857586564 adapt pep440 dev version in make-dist.sh 2025-04-29 20:52:56 +02:00
ailin-nemui
b14bc4a2fc
Merge pull request #1559 from ailin-nemui/bitwarnings
make bitfields unsigned
2025-04-27 12:41:57 +00:00
Ailin Nemui
c7c8d074bd up abi 2025-04-27 14:31:53 +02:00
Ailin Nemui
8acda3f9eb make bitfields unsigned 2025-04-27 14:31:01 +02:00
ailin-nemui
39d15558d2
Merge pull request #1561 from ailin-nemui/ghactions
update to ubuntu 22.04 in github actions
2025-04-27 10:35:46 +00:00
Ailin Nemui
b9511a9b7e update to ubuntu 22.04 in github actions 2025-04-27 12:23:54 +02:00
ailin-nemui
4449455113
Merge pull request #1558 from ailin-nemui/darwin-warning
fe-text: remove const for better Darwin support
2025-04-14 17:23:36 +00:00
Emil Engler
32adf7c1dd fe-text: remove const for better Darwin support
This commit removes the `const` qualifier from certain member fields,
as the Darwin version of several `<term.h>` related functions only
accept a `char *` rather than a `const char *`, thereby resulting in
dozens of compiler warnings.
2025-04-14 18:16:04 +02:00
ailin-nemui
a5441f62b9
Merge pull request #1542 from sortie/HOST_NOT_FOUND
Fix using HOST_NOT_FOUND instead of EAI_NONAME.
2025-04-14 13:36:51 +00:00
ailin-nemui
a1c8edfa44
Merge pull request #1541 from sortie/inet_aton
Replace obsolescent inet_addr(3)/inet_aton(3) with inet_pton(3).
2025-04-14 13:36:44 +00:00
ailin-nemui
efd8f9b3a5
Merge pull request #1540 from sortie/select
Include <sys/select.h> to get select(3).
2025-04-14 13:36:35 +00:00
Jonas 'Sortie' Termansen
f24d859c80 Fix using HOST_NOT_FOUND instead of EAI_NONAME.
HOST_NOT_FOUND is a gethostbyname(3) error condition rather than a
getaddrinfo(3) error condition and cannot be passed to net_gethosterror
as documented as it calls gai_strerror(3). EAI_NONAME is the appropriate
similar error condition as standardized by POSIX for getaddrinfo(3).
2025-04-14 15:09:27 +02:00
Jonas 'Sortie' Termansen
38440cf340 Replace obsolescent inet_addr(3)/inet_aton(3) with inet_pton(3).
inet_addr has become obsolescent as of POSIX-1.2024 and is not available
on strict POSIX 2024 libc implementations.

inet_pton(3) is the standard and portable replacement available on all
POSIX-1.2001 systems.
2025-04-14 15:08:55 +02:00
Jonas 'Sortie' Termansen
4b2951c828 Include <sys/select.h> to get select(3).
This is the header required by POSIX-1.2024.

This change is needed to build irssi on operating systems such as Sortix
that have a strict libc without obsolete behaviors.
2025-04-14 15:08:02 +02:00
ailin-nemui
5a9a9ababa
Merge pull request #1557 from ailin-nemui/solarisvm
test solaris build with github/vmactions
2025-04-14 13:07:23 +00:00
Ailin Nemui
6dce0a091b test solaris build with vmactions 2025-04-08 09:03:10 +02:00
Ailin Nemui
382bde9ab3 namespace TERM_REC functions (conflict with curses.h) 2025-04-08 09:03:00 +02:00
Ailin Nemui
7bac5eb762 include curses.h when needed 2025-04-08 09:03:00 +02:00
ailin-nemui
fca3e83e68
Merge pull request #1543 from Steering7253/master
add ipaddr and family to perl SERVER_REC (and connrec)
2025-04-08 06:05:42 +00:00
ailin-nemui
23ec63ae39
Merge pull request #1556 from Steering7253/fix_sasl_multi_cap
fix irssi SASL negotiation with multiple CAP ACK
2025-04-07 20:37:18 +00:00
steering7253
99c37387a4
bump ABI_VERSION 2025-04-07 14:36:10 -06:00
ailin-nemui
85bb6ef008
Merge pull request #1552 from ailin-nemui/tv2
initialise memory in ctcp ping reply
2025-04-07 20:33:53 +00:00
steering7253
49d7302e98
fix irssi SASL negotiation with multiple CAP ACK
when attempting SASL, if multiple CAP ACK were received (for example,
because a script sent an additional CAP REQ), then any not containing
`sasl` would cause SASL to fail (immediately aborting the connection
with no message, depending on sasl_disconnect_on_failure setting)

check not only if SASL is set in this line, but also if we've already
seen it in a previous line.
2025-04-07 13:53:39 -06:00
steering7253
26fd0585cd
add ipaddr and family to connrec and perl SERVER_REC 2025-04-07 13:51:49 -06:00
Ailin Nemui
d6c146a1fa initialise memory in ctcp ping reply 2025-03-24 08:54:01 +01:00
ailin-nemui
ee4471a118
Merge pull request #1546 from ailin-nemui/setuptools
fix github workflow setuptools
2024-12-16 20:00:54 +00:00
Ailin Nemui
e8e5bf5d81 patch old setuptools for python 3.12 for github workflow 2024-12-16 20:57:44 +01:00
Ailin Nemui
a7bb40f530 pin setuptools and meson ver for make dist in workflow 2024-12-16 20:57:27 +01:00
Ailin Nemui
a775f50572 add glib dependency to github workflows 2024-12-16 20:57:27 +01:00
Ailin Nemui
ca1cd7a26a new setuptools broken in github workflow 2024-12-16 20:57:27 +01:00
ailin-nemui
344dd0fbd4
Merge pull request #1545 from plundra/plundra/actions-upload-fix
github workflows: Bump actions/upload-artifact from deprecated (defunct) v1 to v4.
2024-12-16 19:56:05 +00:00
Pontus Lundkvist
ae094ba3e6 Bump actions/upload-artifact from deprecated (defunct) v1 to v4. 2024-11-18 22:43:57 +01:00
ailin-nemui
0697e3eaf1
Merge pull request #1527 from ardovm/capsicumdoc
Mention the section for capsicum settings.
2024-05-13 20:11:09 +00:00
Arrigo Marchiori
2dce273264 Mention the section of the capsicum settings. 2024-04-27 21:38:21 +02:00
ailin-nemui
5c15937554
Merge pull request #1525 from ailin-nemui/bans
fix /ban command
2024-04-12 21:18:39 +00:00
Ailin Nemui
19e7d3f6b8 up abi 2024-04-12 23:00:52 +02:00
Ailin Nemui
822fd50132 fix /ban command 2024-04-12 22:55:20 +02:00
ailin-nemui
4b48cdce65
Merge pull request #1523 from irssi/from-codeberg
From codeberg
2024-04-02 06:29:49 +00:00
ailin-nemui
c906b769fd
Merge pull request #1522 from dwfreed/fix-missing-nl
Ensure all text files have newlines at the end
2024-04-02 06:27:24 +00:00
Doug Freed
9d0787fc10 Ensure all files have newlines at the end 2024-04-02 05:23:10 +00:00
ailin-nemui
89f3e1acf5
Merge pull request #1519 from ailin-nemui/openssl3
deprecated openssl3 function
2024-04-01 20:36:00 +00:00
ailin-nemui
7b56ffdc2e
Merge pull request #1518 from ailin-nemui/dylib
fix deprecation in new glib module_open
2024-04-01 20:35:05 +00:00
ailin-nemui
bb4ed2b14f
Merge pull request #1521 from ailin-nemui/nodejs
github actions nodejs churn
2024-04-01 20:33:21 +00:00
Ailin Nemui
455dcb18ec deprecated openssl3 function 2024-04-01 22:31:53 +02:00
Ailin Nemui
111e9160a9 github actions nodejs churn 2024-04-01 22:28:17 +02:00
ailin-nemui
d30653f7f9
Merge pull request #1520 from irssi/readme-perl-ver
Update minimum required Perl version in readme
2024-04-01 20:11:15 +00:00
ailin-nemui
c48354307e
Update minimum required Perl version in readme 2024-04-01 22:10:35 +02:00
Ailin Nemui
e13df83dc8 new code for g_module_open which might work with apple dylibs given new enough glib 2024-04-01 17:38:30 +02:00
ailin-nemui
b18832bf3b
Merge pull request #1500 from patrick-irc/scram
Added support for SCRAM-SHA-1, SCRAM-SHA-256 and SCRAM-SHA-512
2024-04-01 15:17:16 +00:00
Ailin Nemui
2f2fa029f9 up abi 2024-04-01 16:37:35 +02:00
Ailin Nemui
08bb648850 proper sasl mechanism variable initialisation 2024-04-01 16:33:57 +02:00
Ailin Nemui
98b391f62e minor cleanup 2024-04-01 16:33:36 +02:00
Patrick Okraku
f2b97631e1 Added support for SCRAM-SHA-1, SCRAM-SHA-256 and SCRAM-SHA-512 2024-04-01 15:12:01 +02:00
ailin-nemui
215be29035 Merge pull request 'Fix github issue #1504 - irssi switches to af_unix if network name contains /' (!6) from ticho/irssi:gh1504 into master
Reviewed-on: https://codeberg.org/irssi/irssi/pulls/6
2024-04-01 08:42:17 +00:00
Andrej Kacian
e295caa866 Fix github issue #1504 - irssi switches to af_unix if network name contains /
In addition to looking for a /, we also check if the network name is
known.
2024-04-01 08:42:17 +00:00
ailin-nemui
91dac0e5a1
Merge pull request #1512 from ailin-nemui/shquote
missing shell quotes
2024-03-31 16:53:57 +00:00
ailin-nemui
aebc0667a6
Merge pull request #1515 from maflcko/patch-1
Update server.c: Add missing include
2024-03-31 16:53:44 +00:00
maflcko
cf6615a70e
Update server.c: Add missing include 2024-03-28 19:33:24 +01:00
Ailin Nemui
4dd57cf24e missing shell quotes 2024-02-23 17:04:41 +01:00
ailin-nemui
b3f6ed0b11
Merge pull request #1511 from soliton-/patch-1
typo fixes
2024-02-01 21:24:30 +00:00
Gunter Labes
41f8213fe0
typo fixes 2024-02-01 21:56:20 +01:00
ailin-nemui
504fd7bc60
Merge pull request #1510 from ailin-nemui/perl-again
restore locale if perl breaks it
2024-01-27 17:42:42 +00:00
Ailin Nemui
a0caf5e5e6 restore locale if perl breaks it 2023-12-22 15:06:23 +01:00
Ailin Nemui
514f1cdcf6 Revert "Merge pull request #1498 from ailin-nemui/perl5380locale"
This reverts commit 48bc90eb17, reversing
changes made to 2a1291f26f.
2023-12-22 15:06:23 +01:00
ailin-nemui
2f16b554b5
Merge pull request #1509 from ailin-nemui/compile-deps
explicitly list pkg-config as build dependency
2023-12-19 12:53:20 +00:00
Ailin Nemui
a11df816b7 explicitly list pkg-config as build dependency, since meson needs it to find glib 2023-12-19 13:51:46 +01:00
ailin-nemui
89adcc4ee8
Merge pull request #1505 from irssi/vague666-patch-1
Update bind.in
2023-11-11 13:55:37 +00:00
Jari Matilainen
ed2825f28b
Update bind.in
Better explanation for upper-/lowercase usage for keys
2023-11-11 02:13:34 +01:00
ailin-nemui
363fbf048f
Merge pull request #1502 from irssi/ailin-nemui/window-default-help
Add SET window_default_ to See also in window help
2023-10-31 10:00:46 +00:00
ailin-nemui
ea434591f4
Add SET window_default_ to See also in window help 2023-10-31 10:58:14 +01:00
Ailin Nemui
465d3188a4 Merge tag '1.4.5' into integrate/1.4.5 2023-10-01 19:19:33 +02:00
Ailin Nemui
bcf07a2546 tag as 1.4.5 2023-10-01 15:46:01 +02:00
ailin-nemui
ce4dd911bc Merge pull request #1497 from ailin-nemui/github-workflow-error
Slightly improve GitHub workflow

(cherry picked from commit 2a1291f26f)
2023-10-01 14:25:50 +02:00
ailin-nemui
6438fcfe70 Merge pull request #1498 from ailin-nemui/perl5380locale
Restore locale after loading Perl

(cherry picked from commit 48bc90eb17)
2023-10-01 14:03:11 +02:00
ailin-nemui
91593cfec3 Merge pull request #1495 from ailin-nemui/terminclude
fe-text: include the real tputs(3) from term.h
(cherry picked from commit db32744ee4)
2023-10-01 14:01:47 +02:00
ailin-nemui
7145e1ef20 Merge pull request #1494 from RealKindOne/master
Add -notls and -notls_verify into help file and src/core/chat-commands.c

(cherry picked from commit e7f1268478)
2023-10-01 14:01:21 +02:00
ailin-nemui
db4dad3dd0 Merge pull request #1493 from ailin-nemui/macsuffix
add explicit name_suffix to shared modules

(cherry picked from commit f1c9fb4296)
2023-10-01 14:01:11 +02:00
ailin-nemui
1226a587b7 Merge pull request #1492 from ailin-nemui/meson-apple
document meson apple workaround

(cherry picked from commit 8c8e4e34d4)
2023-10-01 13:57:17 +02:00
ailin-nemui
5a0dc0db09 Merge pull request #1488 from emilengler/remove-unused-var
core: remove unused len variable
(cherry picked from commit f04375668c)
2023-10-01 13:55:52 +02:00
ailin-nemui
590ca4dbdf Merge pull request #1484 from ailin-nemui/realposix
change realpath to use syntax based on _POSIX_VERSION

(cherry picked from commit f9c9485d15)
2023-10-01 13:54:39 +02:00
ailin-nemui
edfbc1f2f6 Merge pull request #1478 from ailin-nemui/buildperl
update perl requirement in install file

(cherry picked from commit 3f203dc382)
2023-10-01 13:53:35 +02:00
ailin-nemui
7f32ed012c Merge pull request #1474 from ailin-nemui/perl5380
fix usage of $type in ExtUtils::ParseXS 3.50

(cherry picked from commit da49ec62e6)
2023-10-01 13:51:11 +02:00
ailin-nemui
7f67b5deb0 Merge pull request #1471 from irssi/from-codeberg
Sync

(cherry picked from commit 274977a587)
2023-10-01 13:50:19 +02:00
ailin-nemui
8afbd6511c Merge pull request #1467 from ScoreUnder/perl_warning_to_stderr
Print perl import warning to STDERR

(cherry picked from commit e732b601f7)
2023-10-01 13:48:49 +02:00
ailin-nemui
6b65492b65 Merge pull request #1462 from mauke/upgrade-tilde-expand
expand ~ to $HOME in /upgrade

(cherry picked from commit 5c42345ea2)
2023-10-01 13:47:36 +02:00
ailin-nemui
160c2401a5 Merge pull request #1458 from ailin-nemui/help-toglev
update level toggle help

(cherry picked from commit c6ad171fe9)
2023-10-01 13:46:28 +02:00
ailin-nemui
48bc90eb17
Merge pull request #1498 from ailin-nemui/perl5380locale
Restore locale after loading Perl
2023-10-01 11:31:07 +00:00
Ailin Nemui
dfca0a9f84 Restore locale after loading Perl 2023-09-22 14:59:22 +02:00
ailin-nemui
2a1291f26f
Merge pull request #1497 from ailin-nemui/github-workflow-error
Slightly improve GitHub workflow
2023-09-14 13:32:44 +00:00
Ailin Nemui
7c5b2db269 add separate annotation-warnings step
see 2908d82845/src/Runner.Worker/Handlers/OutputManager.cs (L320)
see https://github.com/actions/runner/issues/763#issuecomment-1435735340
2023-09-14 15:24:19 +02:00
ailin-nemui
db32744ee4
Merge pull request #1495 from ailin-nemui/terminclude
fe-text: include the real tputs(3) from term.h
2023-09-13 20:55:21 +00:00
Ailin Nemui
4bc354d5e4 load all modules in the right order during check 2023-09-13 22:54:46 +02:00
Ailin Nemui
8c2fa0687e silence clang perl warning on affected version 2023-09-13 22:51:29 +02:00
Emil Engler
4ceafbeea4 fe-text: include the real tputs(3) from term.h
This commit includes the real `tpus(3)` function from the appropriate
`term.h` header file, if found.

This commit is necessary to fix a compiler warning on Darwin.
2023-09-12 17:20:21 +02:00
ailin-nemui
f04375668c
Merge pull request #1488 from emilengler/remove-unused-var
core: remove unused len variable
2023-09-12 14:53:59 +00:00
Ailin Nemui
fe6013be42 improve code formatting 2023-09-12 13:51:36 +02:00
ailin-nemui
f1c9fb4296
Merge pull request #1493 from ailin-nemui/macsuffix
add explicit name_suffix to shared modules
2023-09-12 11:27:03 +00:00
ailin-nemui
e7f1268478
Merge pull request #1494 from RealKindOne/master
Add -notls and -notls_verify into help file and src/core/chat-commands.c
2023-09-09 11:00:37 +00:00
KindOne
9ab78d0160 Add -notls and -notls_verify into help file and src/core/chat-commands.c 2023-09-09 05:25:30 -04:00
ailin-nemui
8c8e4e34d4
Merge pull request #1492 from ailin-nemui/meson-apple
document meson apple workaround
2023-09-06 14:04:20 +00:00
Ailin Nemui
523a42e6f0 document meson apple workaround
workaround for https://github.com/mesonbuild/meson/issues/11165
2023-09-04 21:42:18 +02:00
ailin-nemui
58ca3af360
Merge pull request #1491 from ailin-nemui/serveradd-crash
stop crash on server add
2023-08-26 17:11:38 +00:00
Ailin Nemui
a037f68f02 stop crash on server add
reported by nsprra
2023-08-22 22:28:36 +02:00
ailin-nemui
07b971cf0c
Merge pull request #1486 from vague666/edit_command_history
patch by petteri_ to enable bash-like editing of window history
2023-08-18 13:57:14 +00:00
Emil Engler
3aa9734c1c
core: remove unused len variable
This commit removes the unused `len` variable, which gets set quite a
few times, but whose value is totally unused.

This also fixes a compiler warning I get on my Darwin.
2023-08-14 12:01:31 +02:00
vague666
96dbcef166 patch by petteri_ to enable bash-like editing of window history 2023-08-14 11:35:06 +02:00
Ailin Nemui
c0db0b8cb8 add explicit name_suffix to shared modules 2023-08-10 10:19:01 +02:00
ailin-nemui
f9c9485d15
Merge pull request #1484 from ailin-nemui/realposix
change realpath to use syntax based on _POSIX_VERSION
2023-08-09 18:52:16 +00:00
Ailin Nemui
1131a881cf change realpath to use syntax based on _POSIX_VERSION 2023-08-08 07:59:31 +02:00
ailin-nemui
3f203dc382
Merge pull request #1478 from ailin-nemui/buildperl
update perl requirement in install file
2023-07-19 18:26:45 +00:00
Ailin Nemui
c93c61bf99 update perl requirement in install file 2023-07-19 20:04:25 +02:00
ailin-nemui
da49ec62e6
Merge pull request #1474 from ailin-nemui/perl5380
fix usage of $type in ExtUtils::ParseXS 3.50
2023-07-18 22:05:28 +00:00
Ailin Nemui
3ec05851a0 fix usage of $type in ExtUtils::ParseXS 3.50 2023-07-04 12:33:01 +02:00
ailin-nemui
274977a587
Merge pull request #1471 from irssi/from-codeberg
Sync
2023-05-25 11:00:40 +00:00
ailin-nemui
83ebc0a0e3
Merge pull request #1457 from examknow/listmode-timestamps
properly format listmodes and their timestamps
2023-05-25 11:00:32 +00:00
Ailin Nemui
685816e945 up abi 2023-05-25 11:48:31 +02:00
Ailin Nemui
0355ed0bea format 2023-05-25 11:42:15 +02:00
Ailin Nemui
0bcff291e9 order 2023-05-25 11:36:25 +02:00
ailin-nemui
ffe4dbac67 Merge pull request 'Fix logic in how own actions are printed for other protocols' (!5) from ticho/irssi:nonirc-own-action-print-fix into master
Reviewed-on: https://codeberg.org/irssi/irssi/pulls/5
2023-05-05 11:33:59 +00:00
Andrej Kacian
9e9858638d Fix logic in how own actions are printed for other protocols
When working with channels belonging to other, non-IRC protocols,
calling irc_channel_find() returns NULL, which makes irssi
use IRCTXT_OWN_ACTION_TARGET format, instead of the correct
IRCTXT_OWN_ACTION.

Using generic channel_find() instead fixes the issue.
2023-05-04 23:10:27 +02:00
ailin-nemui
e732b601f7
Merge pull request #1467 from ScoreUnder/perl_warning_to_stderr
Print perl import warning to STDERR
2023-04-15 14:08:31 +00:00
Score_Under
c5df1c01cc
Print perl import warning to STDERR
Printing to STDOUT can interfere with programs which intend to produce
machine-readable output and yet for whatever reason import Irssi.pm from
outside of irssi.

Closes https://github.com/irssi/irssi/issues/1465
2023-04-15 00:39:38 +01:00
ailin-nemui
a8a2460531
Merge pull request #1463 from ailin-nemui/github-ubuntu
update github workflows ubuntu
2023-04-04 13:29:32 +00:00
Ailin Nemui
a93c51796d update github workflows ubuntu 2023-04-04 15:18:54 +02:00
ailin-nemui
5c42345ea2
Merge pull request #1462 from mauke/upgrade-tilde-expand
expand ~ to $HOME in /upgrade
2023-04-04 13:12:50 +00:00
Lukas Mai
ca148a0122 expand ~ to $HOME in /upgrade
Fixes #1460.
2023-04-04 11:24:18 +02:00
ailin-nemui
c6ad171fe9
Merge pull request #1458 from ailin-nemui/help-toglev
update level toggle help
2023-03-31 12:43:36 +00:00
Ailin Nemui
960d185b42 update level toggle help 2023-03-31 14:42:50 +02:00
Ailin Nemui
152468efd0 Merge tag '1.4.4' into integrate/1.4.4 2023-03-31 04:24:56 +08:00
Ailin Nemui
a09fcb9093 tag as 1.4.4 2023-03-28 14:12:28 +02:00
David Schultz
ee12134812
clean up time_ago()
Co-authored-by: Doug Freed <dwfreed@mtu.edu>
2023-03-27 19:37:48 -05:00
David Schultz
201296a0da add time_ago() in addition to timestamps; deduplicate qlist logic 2023-03-27 18:21:36 -05:00
ailin-nemui
78d00b99b4 Merge pull request #1456 from ailin-nemui/collector
fix stale special collector use after free

(cherry picked from commit c03057f36a)
2023-03-27 23:21:04 +02:00
ailin-nemui
9948a18fce Merge pull request #1455 from irssi/vague666-typo-fix
Update ignore.in

(cherry picked from commit 6671fec9a9)
2023-03-27 23:21:00 +02:00
ailin-nemui
6d3284f7e9 Merge pull request #1454 from irssi/from-codeberg
Sync

(cherry picked from commit 2b91c45f5d)
2023-03-27 23:20:56 +02:00
ailin-nemui
38a80b21ea Merge pull request #1453 from irssi/vague666-ignore-in-update
Update ignore.in

(cherry picked from commit 706b6fff81)
2023-03-27 23:20:43 +02:00
ailin-nemui
d1319b422b Merge pull request #1452 from irssi/vague666-levels-in-update
Update levels.in

(cherry picked from commit 1c9990acab)
2023-03-27 23:20:30 +02:00
ailin-nemui
75fd596084 Merge pull request #1447 from ailin-nemui/signalsfile-fix
fix signalsfile some more

(cherry picked from commit c1fd4b17f5)
2023-03-27 23:19:50 +02:00
ailin-nemui
82618ce25d Merge pull request #1446 from ailin-nemui/signalsfile-fix
fix signals file

(cherry picked from commit 2ac1f01b94)
2023-03-27 23:19:43 +02:00
ailin-nemui
377824ae7f Merge pull request #1442 from lheckemann/master
Support receiving monospace

(cherry picked from commit c06be88d8f)
2023-03-27 23:19:16 +02:00
ailin-nemui
2f0a165569 Merge pull request #1439 from irssi/from-codeberg
Sync

(cherry picked from commit de43e9e067)
2023-03-27 23:18:15 +02:00
ailin-nemui
0438c7f0b2 Merge pull request #1438 from qoreQyaS/master
Lang-Fix: Use more general messages
(cherry picked from commit 162dc256be)
2023-03-27 23:18:00 +02:00
ailin-nemui
af8e40b744 Merge pull request #1434 from irssi/ailin-nemui/statusbar-help
correct statusbar help text

(cherry picked from commit 7445ad1f15)
2023-03-27 23:17:36 +02:00
ailin-nemui
473cf8ca3f Merge pull request #1432 from horgh/horgh/win-logfile
Check window logfile parameter

(cherry picked from commit 6f5026fd49)
2023-03-27 23:17:12 +02:00
ailin-nemui
f422b98613 Merge pull request #1431 from ailin-nemui/missing-news
add missing news reference

(cherry picked from commit f8500320cf)
2023-03-27 23:15:41 +02:00
ailin-nemui
8a8fb77408 Merge pull request #1429 from ailin-nemui/docs-revamp
remove ported sections from manual and add links

(cherry picked from commit 42f83fc130)
2023-03-27 23:14:58 +02:00
ailin-nemui
8f79457769 Merge pull request #1428 from ailin-nemui/flip-level
add (hide)level flip command

(cherry picked from commit 88cc48651d)
2023-03-27 23:14:28 +02:00
ailin-nemui
1426ae87b1 Merge pull request #1424 from ailin-nemui/lastlog
fix lastlog -window

(cherry picked from commit 6e3745f423)
2023-03-27 23:13:48 +02:00
ailin-nemui
f32701b906 Merge pull request #1421 from j1mmie/patch-1
Add parameter LIST to STATUSBAR documentation

(cherry picked from commit b988b2925b)
2023-03-27 23:00:46 +02:00
Ailin Nemui
f21df708b0 up version 2023-03-27 22:59:49 +02:00
ailin-nemui
c03057f36a
Merge pull request #1456 from ailin-nemui/collector
fix stale special collector use after free
2023-03-27 20:46:56 +00:00
ailin-nemui
d627e56021
Merge pull request #1450 from ailin-nemui/fix-1449
fix crash on connect in startup
2023-03-27 20:46:41 +00:00
David Schultz
9324ff9f68 this should work for everyone 2023-03-27 11:05:40 -05:00
David Schultz
556f580f67 add support for ircd-hybrid quiet lists 2023-03-26 19:27:48 -05:00
Ailin Nemui
c554a45738 fix stale special collector use after free
reported by ednash and investigated by @dwfreed
2023-03-26 23:37:12 +02:00
David Schultz
2db9dfbb46 properly format listmodes and their timestamps 2023-03-26 16:36:27 -05:00
ailin-nemui
6671fec9a9
Merge pull request #1455 from irssi/vague666-typo-fix
Update ignore.in
2023-03-21 08:49:09 +00:00
Jari Matilainen
5153bb3ff5
Update ignore.in
Fix typo
2023-03-21 09:44:01 +01:00
ailin-nemui
2b91c45f5d
Merge pull request #1454 from irssi/from-codeberg
Sync
2023-03-21 07:05:33 +00:00
ailin-nemui
bdec87e208 Merge pull request 'Fix logic in how actions are printed for other protocols' (!3) from ticho/irssi:nonirc-action-print-fix into master
Reviewed-on: https://codeberg.org/irssi/irssi/pulls/3
2023-03-21 06:25:57 +00:00
Andrej Kacian
3057c9e920 Fix logic in how actions are printed for other protocols
This causes subsequent window_item_set_active() check, further
down in the same function, to evaluate correctly, and getting
the action message printed using correct format.
2023-03-21 06:25:57 +00:00
ailin-nemui
1c9990acab
Merge pull request #1452 from irssi/vague666-levels-in-update
Update levels.in
2023-03-20 19:31:56 +00:00
ailin-nemui
706b6fff81
Merge pull request #1453 from irssi/vague666-ignore-in-update
Update ignore.in
2023-03-20 19:31:40 +00:00
Jari Matilainen
82bfd3abfe
Update ignore.in
Add NOHILIGHT description to help
2023-03-20 11:04:39 +01:00
Jari Matilainen
0334de0a05
Update levels.in
Make it more clear what NOHILIGHT can be used for
2023-03-20 11:00:37 +01:00
Ailin Nemui
7d3640ce2e fix crash on connect in startup
fixes #1449

does not completely fix the issue (connect still does not work, error message is misleading)
2023-02-25 20:44:12 +01:00
ailin-nemui
c1fd4b17f5
Merge pull request #1447 from ailin-nemui/signalsfile-fix
fix signalsfile some more
2023-02-13 08:51:33 +00:00
Ailin Nemui
25273898bf still didn't work 2023-02-12 16:31:23 +01:00
ailin-nemui
2ac1f01b94
Merge pull request #1446 from ailin-nemui/signalsfile-fix
fix signals file
2023-02-12 13:51:44 +00:00
Ailin Nemui
fcbe19eb8c fix signals file 2023-02-12 10:35:12 +01:00
ailin-nemui
72df66524b
Merge pull request #1445 from jesopo/ipv6-default
switch to prefering ipv6 by default
2023-02-09 17:41:11 +00:00
jesopo
9a29bf1022 switch to prefering ipv6 by default 2023-02-09 17:18:52 +00:00
ailin-nemui
c06be88d8f
Merge pull request #1442 from lheckemann/master
Support receiving monospace
2023-02-02 17:03:53 +01:00
Linus Heckemann
b91a56c2cd Support receiving monospace
0x11 (decimal 17) is used to denote monospace by a number of clients
according to https://modern.ircdocs.horse/formatting.html
2023-01-28 19:31:14 +01:00
ailin-nemui
3fb147ec72
Merge pull request #1441 from ailin-nemui/gh-actions
chores: update for github workflows deprecations
2023-01-22 16:49:20 +01:00
Ailin Nemui
274868d560 chores: update for github workflows deprecations 2023-01-22 16:39:05 +01:00
ailin-nemui
de43e9e067
Merge pull request #1439 from irssi/from-codeberg
Sync
2023-01-21 16:48:36 +01:00
ailin-nemui
fe8f2a5dc8
Merge pull request #1440 from ailin-nemui/termux-git
update termux package to git+
2023-01-21 16:44:18 +01:00
ailin-nemui
6bab6e2c06
update termux package to git+
20bd0f0dc0
2023-01-21 16:38:40 +01:00
ailin-nemui
251522685d Merge pull request 'Expose location of signals.txt via pkg-config' (!1) from ticho/irssi:signalsfile into master
Reviewed-on: https://codeberg.org/irssi/irssi/pulls/1
2023-01-19 21:50:41 +00:00
Andrej Kacian
c65bf6899f Expose location of signals.txt via pkg-config
Adds "signalsfile" variable to installed irssi-1.pc.
2023-01-19 22:41:51 +01:00
ailin-nemui
162dc256be
Merge pull request #1438 from qoreQyaS/master
Lang-Fix: Use more general messages
2022-12-25 17:51:32 +01:00
Sven "qoreQyaS" Grewe
f852cc4eb3 Lang-Fix: Use more general messages
* Changed the messages for /window level and /window immortal to a more
  general tone.
  Executing both commands without parameter show the current state but
  the old messages indicate a change of state.

Signed-off-by: Sven "qoreQyaS" Grewe <git@gucke.net>
2022-12-25 16:09:27 +01:00
ailin-nemui
6f5026fd49
Merge pull request #1432 from horgh/horgh/win-logfile
Check window logfile parameter
2022-12-23 10:34:56 +01:00
Will Storey
3415718ea7 Check a logfile parameter is given
Previously this continued with an empty filename, resulting in a broken
config file.

Fixes #1392.
2022-12-23 10:01:51 +01:00
Will Storey
6dfcde5acd Fix indentation issues in fe-log.c 2022-12-23 10:01:51 +01:00
ailin-nemui
8eca391b74
Merge pull request #1430 from ailin-nemui/config-lol
add list_of_lists to config and more error messages
2022-12-23 09:59:51 +01:00
ailin-nemui
7445ad1f15
Merge pull request #1434 from irssi/ailin-nemui/statusbar-help
correct statusbar help text
2022-12-18 21:53:34 +01:00
ailin-nemui
a83f94484c
correct statusbar help text 2022-12-18 21:53:27 +01:00
Ailin Nemui
19be330489 up abi 2022-12-18 21:11:54 +01:00
Ailin Nemui
e7fb82db89 update glib version to fix timezone assertion bug 2022-12-18 20:00:29 +01:00
Ailin Nemui
1453f46fcf add timezone to g_date_time_new_from_iso8601 call 2022-12-18 16:34:15 +01:00
ailin-nemui
f8500320cf
Merge pull request #1431 from ailin-nemui/missing-news
add missing news reference
2022-12-18 12:27:29 +01:00
Ailin Nemui
7f4bf738a3 add missing news reference 2022-12-18 12:27:00 +01:00
Ailin Nemui
8d7449d26f add list_of_lists to config and more error messages 2022-12-18 12:20:07 +01:00
ailin-nemui
b988b2925b
Merge pull request #1421 from j1mmie/patch-1
Add parameter LIST to STATUSBAR documentation
2022-12-18 12:18:13 +01:00
Jimmie Tyrrell
41071247f2 Add parameter LIST to STATUSBAR documentation
This command was not outlined in the documentation. `/STATUSBAR LIST` is an integral part of statusbar management and should be included.
2022-12-18 12:17:26 +01:00
ailin-nemui
42f83fc130
Merge pull request #1429 from ailin-nemui/docs-revamp
remove ported sections from manual and add links
2022-12-18 12:14:22 +01:00
Ailin Nemui
119d3203e1 remove ported sections from manual and add links 2022-12-18 12:13:38 +01:00
ailin-nemui
88cc48651d
Merge pull request #1428 from ailin-nemui/flip-level
add (hide)level flip command
2022-11-29 20:05:52 +01:00
Ailin Nemui
261a7ce76e add (hide)level flip command 2022-11-27 17:14:19 +01:00
ailin-nemui
6e3745f423
Merge pull request #1424 from ailin-nemui/lastlog
fix lastlog -window
2022-11-26 15:09:50 +01:00
Ailin Nemui
7d20ea92ae fix lastlog -window 2022-11-13 11:35:41 +01:00
Ailin Nemui
684094aa85 Merge tag '1.4.3' into integrate/1.4.3 2022-10-29 12:22:58 +02:00
Ailin Nemui
c99c8b444d tag as 1.4.3 2022-10-29 12:13:46 +02:00
ailin-nemui
f9f6341c20 Merge pull request #1420 from ailin-nemui/starttls-config
enable saving of -disallow_starttls

(cherry picked from commit afba148056)
2022-10-29 12:07:34 +02:00
ailin-nemui
9a95edc69a Merge pull request #1419 from ailin-nemui/init-irc-funcs
move irc server functions to object creation time

(cherry picked from commit a661e2fb35)
2022-10-29 12:07:23 +02:00
ailin-nemui
93a94308bd Merge pull request #1417 from ailin-nemui/loop
do not freeze on alt+left/right

(cherry picked from commit 0c97433c7c)
2022-10-29 12:07:05 +02:00
ailin-nemui
afba148056
Merge pull request #1420 from ailin-nemui/starttls-config
enable saving of -disallow_starttls
2022-10-15 08:52:40 +02:00
ailin-nemui
a661e2fb35
Merge pull request #1419 from ailin-nemui/init-irc-funcs
move irc server functions to object creation time
2022-10-15 08:52:32 +02:00
ailin-nemui
0c97433c7c
Merge pull request #1417 from ailin-nemui/loop
do not freeze on alt+left/right
2022-10-15 08:52:20 +02:00
ailin-nemui
26f9750ad1 Merge pull request #1414 from irssi/vague666-patch-4
Add -nocap to /connect and /server connect syntax

(cherry picked from commit 55913ade13)
2022-10-14 22:41:21 +02:00
ailin-nemui
277923aaac Merge pull request #1413 from irssi/vague666-patch-3
Update /server syntax line

(cherry picked from commit 238d7cfd08)
2022-10-14 22:41:21 +02:00
ailin-nemui
23419e5866 Merge pull request #1415 from irssi/vague666-patch-5
/server: Add help for -cap/-nocap

(cherry picked from commit f76d41953f)
2022-10-14 22:41:21 +02:00
ailin-nemui
2c18da3cc6 Merge pull request #1411 from irssi/vague666-patch-1
/connect: Add help for -nocap

(cherry picked from commit 38b18bd84d)
2022-10-14 22:41:21 +02:00
ailin-nemui
c01b35b062 Merge pull request #1407 from madpilot78/Fix_libnv_detection
Fix libnv detection on recent FreeBSD

(cherry picked from commit f32d0ab51a)
2022-10-14 22:41:21 +02:00
ailin-nemui
f51bc42429 Merge pull request #1380 from ailin-nemui/scriptassist
run syncscripts.sh

(cherry picked from commit 68823eb6af)
2022-10-14 21:46:50 +02:00
ailin-nemui
be5f917f07 Merge pull request #1393 from ailin-nemui/eval-help
minor rendering fix in eval help

(cherry picked from commit 0bf18beed7)
2022-10-14 21:46:30 +02:00
Ailin Nemui
833f41179d enable saving of -disallow_starttls 2022-10-14 21:37:09 +02:00
Ailin Nemui
c2457c7d94 move irc server functions to object creation time 2022-10-14 21:06:51 +02:00
Ailin Nemui
093dcd423f no infinite loops please 2022-09-22 22:25:02 +02:00
ailin-nemui
55913ade13
Merge pull request #1414 from irssi/vague666-patch-4
Add -nocap to /connect and /server connect syntax
2022-09-14 09:24:35 +02:00
ailin-nemui
de2bf6707f fix clang-format 2022-09-14 09:19:18 +02:00
ailin-nemui
238d7cfd08
Merge pull request #1413 from irssi/vague666-patch-3
Update /server syntax line
2022-09-13 09:52:30 +02:00
ailin-nemui
f76d41953f
Merge pull request #1415 from irssi/vague666-patch-5
/server: Add help for -cap/-nocap
2022-09-13 09:51:57 +02:00
ailin-nemui
38b18bd84d
Merge pull request #1411 from irssi/vague666-patch-1
/connect: Add help for -nocap
2022-09-13 09:51:43 +02:00
Jari Matilainen
d448ca3341
/server: Add help for -cap/-nocap 2022-09-12 14:17:34 +02:00
Jari Matilainen
07041c37d4
Add -nocap to /connect and /server connect syntax 2022-09-12 14:15:11 +02:00
Jari Matilainen
fe77b7e06f
Update /server syntax line 2022-09-12 14:07:05 +02:00
Jari Matilainen
03edebd54c
/connect: Add help for -nocap 2022-09-12 14:03:21 +02:00
ailin-nemui
f32d0ab51a
Merge pull request #1407 from madpilot78/Fix_libnv_detection
Fix libnv detection on recent FreeBSD
2022-08-19 10:42:05 +02:00
Guido Falsi
7baefc3315 Fix libnv detection on recent FreeBSD
On recent FreeBSD systems it is required to include the sys/nv.h file, otherwise symbols are missing.

Reported here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=265397

Patch suggested by: Kristof Provost <kp@freebsd.org>
2022-08-19 10:32:47 +02:00
ailin-nemui
58109aeeed
Merge pull request #1403 from lnde/fetext-sigterm
Re-write SIGTERM handling
2022-08-12 12:17:49 +02:00
Andreas Lundin
a237321b33 re-write SIGTERM handling
Exit safely on SIGTERM by emitting "gui exit" from the main loops of
fe-text and fe-none rather than from the signal handler itself.

Based on feedback from Nei and dwfreed.
2022-08-11 20:09:59 +00:00
ailin-nemui
555030a2ad
Merge pull request #1405 from ailin-nemui/no-chatnet-crash
fix crash when loading server without chatnet
2022-08-08 22:20:19 +02:00
Ailin Nemui
252656cad4 fix crash when loading server without chatnet 2022-07-24 19:32:47 +02:00
Ailin Nemui
722d3c4c3d Merge tag '1.4.2' into integrate/1.4.2 2022-07-13 20:33:59 +02:00
Ailin Nemui
bc805f9bcd tag as 1.4.2 2022-07-13 20:08:52 +02:00
ailin-nemui
476774662a Merge pull request #1398 from ailin-nemui/lastlog-crash
get line texts before printing lastlog

(cherry picked from commit a57cc1c55e)
2022-07-13 19:12:01 +02:00
ailin-nemui
a57cc1c55e
Merge pull request #1398 from ailin-nemui/lastlog-crash
get line texts before printing lastlog
2022-07-13 19:10:50 +02:00
Ailin Nemui
7fe7de3c2e get line texts before printing lastlog 2022-07-12 20:50:01 +02:00
ailin-nemui
1b6b92ffff Merge pull request #1388 from ailin-nemui/default-hash-chan
default to hash channels

(cherry picked from commit a5f5ea7d79)
2022-07-03 00:14:14 +02:00
ailin-nemui
730c3c1a12 Merge pull request #1377 from ailin-nemui/meson
fix yet another meson regression

(cherry picked from commit 07aa061b6d)
2022-07-03 00:14:14 +02:00
ailin-nemui
c6a7f02042 Merge pull request #1383 from ailin-nemui/pc-moduledir
add irssimoduledir to irssi-1.pc

(cherry picked from commit 545d97f8d6)
2022-07-03 00:14:14 +02:00
ailin-nemui
f17fb68257 Merge pull request #1387 from ailin-nemui/textbufferview
Textbufferview

(cherry picked from commit 783dd37533)
2022-07-03 00:14:14 +02:00
ailin-nemui
3404d822c8 Merge pull request #1384 from ailin-nemui/meson-system-includes
use -isystem instead of -I for include directories

(cherry picked from commit 593afc2e40)
2022-07-03 00:14:14 +02:00
ailin-nemui
5b0f7f7899
Merge pull request #1394 from ailin-nemui/faster-termux-pkg
use less time on termux pkg
2022-07-02 16:09:05 +02:00
Ailin Nemui
3fec4d894f use less time on termux pkg
hard-code the values instead of building perl
2022-07-02 14:12:15 +02:00
ailin-nemui
0bf18beed7
Merge pull request #1393 from ailin-nemui/eval-help
minor rendering fix in eval help
2022-06-30 23:25:35 +02:00
Ailin Nemui
f135339e27 minor rendering fix in eval help 2022-06-30 23:13:48 +02:00
ailin-nemui
593afc2e40
Merge pull request #1384 from ailin-nemui/meson-system-includes
use -isystem instead of -I for include directories
2022-06-18 12:43:01 +02:00
ailin-nemui
783dd37533
Merge pull request #1387 from ailin-nemui/textbufferview
Textbufferview
2022-06-18 12:42:47 +02:00
Ailin Nemui
4dc3eb1048 update clang-format 2022-06-13 09:41:46 +02:00
Ailin Nemui
453e65bbfe misc cleanup 2022-06-13 09:41:46 +02:00
Ailin Nemui
b028b8e19d fix recount of lines after scroll 2022-06-13 09:41:46 +02:00
Ailin Nemui
48edd6f5fa fix recount of lines after window set 2022-06-13 08:22:18 +02:00
ailin-nemui
a5f5ea7d79
Merge pull request #1388 from ailin-nemui/default-hash-chan
default to hash channels
2022-06-13 07:39:29 +02:00
Ailin Nemui
891ef5df10 default to hash channels 2022-06-13 02:44:33 +02:00
Ailin Nemui
04b914dcb0 fix visible lines expiring from cache 2022-06-13 01:17:19 +02:00
Ailin Nemui
67aa2baf62 fix memory leak when updating single line 2022-06-13 01:17:19 +02:00
Ailin Nemui
ae8ec99d5c fix scrollback redraw not updating linecount 2022-06-13 01:17:19 +02:00
ailin-nemui
68823eb6af
Merge pull request #1380 from ailin-nemui/scriptassist
run syncscripts.sh
2022-06-12 18:11:05 +02:00
ailin-nemui
545d97f8d6
Merge pull request #1383 from ailin-nemui/pc-moduledir
add irssimoduledir to irssi-1.pc
2022-06-12 18:10:50 +02:00
Ailin Nemui
279fa4e5b8 remove relevant code from termux receipe 2022-06-12 17:18:53 +02:00
Ailin Nemui
528632bba2 use -isystem instead of -I for include directories
limits warnings to our own code
2022-06-12 17:13:28 +02:00
Ailin Nemui
34d45ac678 add irssimoduledir to irssi-1.pc
for module authors to know where to install to
2022-06-12 16:52:31 +02:00
Ailin Nemui
88745d2941 run syncscripts.sh 2022-06-12 12:34:33 +02:00
ailin-nemui
07aa061b6d
Merge pull request #1377 from ailin-nemui/meson
fix yet another meson regression
2022-06-12 05:33:41 +02:00
Ailin Nemui
ac35fe010e fix yet another meson regression
broken by meson 0.60.0
2022-06-11 22:58:56 +02:00
Ailin Nemui
de46fee864 update website 2022-06-11 18:10:29 +02:00
Ailin Nemui
f2c5e60766 revert branding 2022-06-07 15:47:49 +02:00
Ailin Nemui
531c68ed09 Merge tag '1.4.1' into integrate/1.4.1 2022-06-06 21:11:30 +02:00
Ailin Nemui
0e0bc17992 tag as 1.4.1 2022-06-06 19:31:27 +02:00
ailin-nemui
580b05a7f3 Merge pull request #88 from ailin-nemui/arraycopy
fix missing len in g_array_copy

(cherry picked from commit 47b0661e96)
2022-06-06 12:05:26 +02:00
ailin-nemui
47b0661e96
Merge pull request #88 from ailin-nemui/arraycopy
fix missing len in g_array_copy
2022-06-01 18:38:15 +02:00
Ailin Nemui
a39bc0601c fix missing len in g_array_copy 2022-05-31 21:09:39 +02:00
Ailin Nemui
c33d0c2384 Merge tag '1.4.0-an' into integrate/1.4.0-an 2022-05-31 12:34:27 +02:00
Ailin Nemui
7207a26d1e revert branding 2022-05-31 10:25:01 +02:00
Ailin Nemui
a558430a0a Merge tag '1.4.0-an' into HEAD 2022-05-31 10:20:57 +02:00
Ailin Nemui
612fdb9c2d tag as 1.4.0-an 2022-05-30 11:33:44 +02:00
Ailin Nemui
cbb155e73c remove install_rpath
reported by dwfreed / Unit193

(cherry picked from commit e692f85f4a)
2022-05-30 11:27:50 +02:00
ailin-nemui
84de64d6da Merge pull request #84 from ailin-nemui/ignore-leak
avoid memory leak in ignore cache

(cherry picked from commit af5feb16be)
2022-05-29 20:44:18 +02:00
ailin-nemui
d6bc4cf5b7 Merge pull request #76 from ailin-nemui/scroll_page_count
fix scroll_page_count settings with .

(cherry picked from commit 84a98d0e08)
2022-05-29 20:41:43 +02:00
ailin-nemui
d193ca1784 Merge pull request #83 from ailin-nemui/shelp
new SHELP default alias

(cherry picked from commit 4cec2d98c5)
2022-05-29 20:27:54 +02:00
ailin-nemui
afed542bfb Merge pull request #82 from ailin-nemui/progval-help
Format RPL_HELPSTART/RPL_HELPTXT/RPL_ENDOFHELP

(cherry picked from commit b446d06b9d)
2022-05-29 20:26:30 +02:00
ailin-nemui
1598c88cfd Merge pull request #77 from ailin-nemui/fix_ignore_help
Clarify the help for /ignore -time

(cherry picked from commit c62505386f)
2022-05-29 19:19:07 +02:00
ailin-nemui
3e9a270562 Merge pull request #72 from ailin-nemui/load-silent-doc
add -silent switch in syntax comment and respect it without args

(cherry picked from commit 06a7dcad99)
2022-05-29 19:16:40 +02:00
ailin-nemui
8530917397 Merge pull request #70 from ailin-nemui/update-screenshot
update screenshot

(cherry picked from commit 854c88da03)
2022-05-29 19:15:54 +02:00
ailin-nemui
aa54da3811 Merge pull request #68 from ailin-nemui/gint64fmt
use gint64 define

(cherry picked from commit cf6bc31172)
2022-05-29 19:14:41 +02:00
ailin-nemui
45b6df7902 Merge pull request #67 from ailin-nemui/spelling
spelling fixes

(cherry picked from commit 7ec61c4ec0)
2022-05-29 19:11:46 +02:00
ailin-nemui
44ad0fce90 Merge pull request #60 from ailin-nemui/paste
Add "paste event" signal

(cherry picked from commit 738931762b)
2022-05-29 19:11:07 +02:00
ailin-nemui
dc15cc3969 Merge pull request #61 from ailin-nemui/actlist_separator
Actlist separator

(cherry picked from commit d523ceacf0)
2022-05-29 19:09:50 +02:00
ailin-nemui
5997b2654b Merge pull request #58 from ailin-nemui/erase-cutbuffer
Add empty_kill_clears_cutbuffer option

(cherry picked from commit 27008bf447)
2022-05-29 19:09:31 +02:00
ailin-nemui
baf2a43da2 Merge pull request #57 from ailin-nemui/lr-skip-visible
Make window left/right skip windows that are already visible in other…

(cherry picked from commit 53187de6a2)
2022-05-29 19:02:25 +02:00
ailin-nemui
26c4cd8bbf Merge pull request #50 from ailin-nemui/gliblog
Improve handling of GLib log messages

(cherry picked from commit 0e3f6aa4a2)
2022-05-29 19:02:03 +02:00
ailin-nemui
27046adabe Merge pull request #59 from ailin-nemui/ilog-domain
fix crash when accessing settings during shutdown

(cherry picked from commit cc411a1be0)
2022-05-29 18:59:38 +02:00
ailin-nemui
ff0e76bbb9 Merge pull request #45 from ailin-nemui/server-outgoing
simplify duplicate code in outgoing modify

(cherry picked from commit f5d74bd81b)
2022-05-29 18:12:52 +02:00
ailin-nemui
af5feb16be
Merge pull request #84 from ailin-nemui/ignore-leak
avoid memory leak in ignore cache
2022-05-26 00:20:13 +02:00
Ailin Nemui
66e3b0e578 avoid memory leak in ignore cache
#1373
2022-05-22 11:06:53 +02:00
ailin-nemui
7285da27e0
Merge pull request #87 from ailin-nemui/names
stop IRC names when using /names
2022-05-22 11:00:02 +02:00
Ailin Nemui
5b340d7d2b stop IRC names when using /names 2022-05-19 14:54:15 +02:00
Ailin Nemui
9f71a391c3 test OBS workflow 2022-05-19 14:37:59 +02:00
Ailin Nemui
fb5c99d27f Merge remote-tracking branch 'irssi/master' 2022-04-25 23:33:58 +02:00
Tom Wesley
7d673653a1
Merge pull request #1372 from dwfreed/rebrand-1.3.2
Merge Nei's changes
2022-04-25 18:09:44 +01:00
Doug Freed
6d2cfc24b7 Clean up remaining branding reverts 2022-04-24 20:40:01 +00:00
Doug Freed
2f700bebc7 NEWS: remove 2 lines that would be confusing 2022-04-24 20:07:30 +00:00
ailin-nemui
4cec2d98c5
Merge pull request #83 from ailin-nemui/shelp
new SHELP default alias
2022-04-24 15:40:54 +02:00
Ailin Nemui
37e65ba168 new SHELP default alias 2022-04-24 15:40:20 +02:00
ailin-nemui
b446d06b9d
Merge pull request #82 from ailin-nemui/progval-help
Format RPL_HELPSTART/RPL_HELPTXT/RPL_ENDOFHELP
2022-04-21 23:02:17 +02:00
Ailin Nemui
49479f151c up abi 2022-04-21 22:18:33 +02:00
Ailin Nemui
4f1e5f35a3 fix formatting 2022-04-21 22:00:18 +02:00
Ailin Nemui
ba16d71e9f add SERVER_ to constants 2022-04-21 22:00:18 +02:00
Valentin Lorentz
f684c18867 s/irctxt_/server_/ 2022-04-21 22:00:18 +02:00
Valentin Lorentz
48571389c7 Revert "Add ERR_HELPNOTFOUND"
This reverts commit 91439c099e1bbf848dac03f67a3239fcc4c1f771;
because it adds handling for numeric 524, which conflicts with
ERR_QUARANTINED and ERR_OPERSPVERIFY.
2022-04-21 22:00:18 +02:00
Valentin Lorentz
41b3895ce3 Free signals 2022-04-21 22:00:18 +02:00
Valentin Lorentz
1415ef5389 Add ERR_HELPNOTFOUND 2022-04-21 22:00:18 +02:00
Valentin Lorentz
3a3301e19b Format RPL_HELPSTART/RPL_HELPTXT/RPL_ENDOFHELP
They are typical replies when using the HELP command.
2022-04-21 22:00:18 +02:00
ailin-nemui
e300fee93d
Merge pull request #81 from ailin-nemui/pubnotices
add new PUBNOTICES level
2022-04-21 21:09:20 +02:00
Ailin Nemui
7360944900 add new PUBNOTICES level
separating private notices and channel notices
2022-04-21 13:38:40 +02:00
Ailin Nemui
0bd7fc459c revert branding 2022-03-23 17:16:32 +01:00
ailin-nemui
ae5a9283ee
Merge pull request #79 from ailin-nemui/query-bounds
restore irc bound queries
2022-03-18 22:58:39 +01:00
ailin-nemui
ed4ec313a2
Merge pull request #80 from ailin-nemui/meson
don't do stupid things
2022-03-18 22:45:00 +01:00
Ailin Nemui
cfd421a948 update meson requirement, add check for built files 2022-03-18 22:31:40 +01:00
Ailin Nemui
8381e13e4c up abi 2022-03-16 00:07:06 +01:00
Ailin Nemui
884cabd55d restore irc bound queries 2022-03-16 00:02:29 +01:00
ailin-nemui
84a98d0e08
Merge pull request #76 from ailin-nemui/scroll_page_count
fix scroll_page_count settings with .
2022-03-11 12:11:18 +01:00
ailin-nemui
c62505386f
Merge pull request #77 from ailin-nemui/fix_ignore_help
Clarify the help for /ignore -time
2022-03-11 12:09:26 +01:00
ailin-nemui
4986a4f9db
Merge pull request #75 from ailin-nemui/termux
simplify termux github workflow
2022-03-11 09:14:08 +01:00
Ailin Nemui
0c49ba0bda fix clang-format 2022-03-11 09:06:37 +01:00
vague666
344398dd2a Update SYNTAX 2022-03-11 08:58:05 +01:00
vague666
82dd550184 Clarify the help 2022-03-11 08:58:05 +01:00
Ailin Nemui
8fa2d01a7f fix scroll_page_count settings with . 2022-03-11 08:56:35 +01:00
Ailin Nemui
bb4859d3d5 simplify termux github workflow 2022-03-11 08:54:44 +01:00
ailin-nemui
4bf129084f
Merge pull request #74 from ailin-nemui/makedist
Add some missing files to make-dist
2022-02-21 17:52:15 +01:00
ailin-nemui
4115e47434
Merge pull request #73 from ailin-nemui/cruft
remove deprecated defines
2022-02-21 17:15:18 +01:00
Ailin Nemui
c0929e3aaf Add some missing files to make-dist 2022-02-20 18:55:45 +01:00
Ailin Nemui
883510a3fd remove deprecated defines
- PERL_STATIC_LIBS (was not tested anymore)
- HAVE_GMODULE (always required)
- HAVE_STATIC_IRC
- HAVE_STATIC_PERL
- HAVE_SOCKS (was not working properly)
- USE_GREGEX (we use it)
2022-02-20 17:33:36 +01:00
ailin-nemui
06a7dcad99
Merge pull request #72 from ailin-nemui/load-silent-doc
add -silent switch in syntax comment and respect it without args
2022-02-20 16:29:21 +01:00
Ailin Nemui
10caed057a add -silent switch in syntax comment and respect it without args 2022-02-20 15:54:04 +01:00
ailin-nemui
854c88da03
Merge pull request #70 from ailin-nemui/update-screenshot
update screenshot
2022-02-19 23:24:58 +01:00
ailin-nemui
9b768abfd7
update screenshot 2022-02-19 23:17:49 +01:00
ailin-nemui
3a5f93bbcc
Merge pull request #69 from ailin-nemui/always-24bit
remove enable-true-color compile time switch
2022-02-19 22:45:37 +01:00
Ailin Nemui
0682cbed3c remove TERM_TRUECOLOR define 2022-02-19 22:23:29 +01:00
Ailin Nemui
b34f16e9df remove enable-true-color compile time switch 2022-02-19 22:23:29 +01:00
ailin-nemui
58efc6371a
Merge pull request #64 from ailin-nemui/remove-autotools
good-bye and thanks, autotools
2022-02-19 22:22:42 +01:00
Ailin Nemui
e692f85f4a remove install_rpath
reported by dwfreed / Unit193
2022-02-19 21:44:10 +01:00
Ailin Nemui
b8736225cf good-bye and thanks, autotools 2022-02-19 21:44:10 +01:00
ailin-nemui
cf6bc31172
Merge pull request #68 from ailin-nemui/gint64fmt
use gint64 define
2022-02-19 11:00:34 +01:00
ailin-nemui
7ec61c4ec0
Merge pull request #67 from ailin-nemui/spelling
spelling fixes
2022-02-19 10:58:05 +01:00
Ailin Nemui
9b73d152fe use gint64 define 2022-02-19 00:34:06 +01:00
Ailin Nemui
bfcafa76c0 spelling fixes
by lintian / dwfreed
2022-02-19 00:27:02 +01:00
ailin-nemui
d9b181e4a1
Merge pull request #42 from ailin-nemui/module-autoload
Protocol module autoloading
2022-02-17 18:03:12 +01:00
Ailin Nemui
b335e5526d up abi 2022-02-16 23:54:51 +01:00
Ailin Nemui
1f8e167295 test termux pkg 2022-02-16 23:54:51 +01:00
Ailin Nemui
ef2c55fc18 fix irc module in fuzzer 2022-02-16 22:05:04 +01:00
Ailin Nemui
2e6c376342 add android cross link deps 2022-02-16 21:49:11 +01:00
Ailin Nemui
89bcff606f fix meson deprecations 2022-02-16 21:49:11 +01:00
Ailin Nemui
f4938a2804 remove unused function 2022-02-16 21:49:11 +01:00
Ailin Nemui
3760fcd1ca load config on chat protocol cre 2022-02-16 21:49:11 +01:00
Ailin Nemui
bee057ff21 fix something 2022-02-16 21:49:11 +01:00
Ailin Nemui
82f8ee57c3 autoload the IRC module 2022-02-16 21:49:11 +01:00
ailin-nemui
738931762b
Merge pull request #60 from ailin-nemui/paste
Add "paste event" signal
2022-02-11 14:17:49 +01:00
Ailin Nemui
76d140650a add settings*choice functions to perl 2022-02-07 16:44:14 +01:00
ailin-nemui
27008bf447
Merge pull request #58 from ailin-nemui/erase-cutbuffer
Add empty_kill_clears_cutbuffer option
2022-02-06 16:33:20 +01:00
ailin-nemui
d523ceacf0
Merge pull request #61 from ailin-nemui/actlist_separator
Actlist separator
2022-02-06 14:38:57 +01:00
Ailin Nemui
e5d02bd57b simplify 2022-02-06 14:22:56 +01:00
Ailin Nemui
32ab41625f simplify code 2022-02-06 09:50:38 +01:00
Ailin Nemui
089cab715f fix formatting 2022-02-06 02:27:36 +01:00
Ailin Nemui
75e56297fc fix intentation 2022-02-06 02:25:19 +01:00
Mikael Magnusson
d652055060 Add empty_kill_clears_cutbuffer option
Adapted revert of 13524b1f76bb.
2022-02-06 02:24:17 +01:00
vague666
d6b55c6d43 Make redrawing of item actually work 2022-02-06 01:49:24 +01:00
vague666
de626250b5 Added statusbar_items_redraw code 2022-02-06 01:49:24 +01:00
vague666
cdda5ab759 Make actlist separator a setting 2022-02-06 01:49:24 +01:00
Ailin Nemui
f47154d1a9 support multiple scripts 2022-02-06 01:47:55 +01:00
ailin-nemui
cc411a1be0
Merge pull request #59 from ailin-nemui/ilog-domain
fix crash when accessing settings during shutdown
2022-02-06 01:11:41 +01:00
Ailin Nemui
d4ed3460fc fix some stupidness 2022-02-06 00:41:13 +01:00
Ailin Nemui
5cd13d6ea2 compatibility code for old GLib 2022-02-05 23:24:52 +01:00
Ailin Nemui
17f185d833 add setting to ignore first newline 2022-02-05 23:01:55 +01:00
Ailin Nemui
5f29b35fbe fix crash when accessing settings during shutdown 2022-02-05 22:33:34 +01:00
Ailin Nemui
4846e4f319 Add "paste event" signal 2022-02-05 22:32:57 +01:00
ailin-nemui
53187de6a2
Merge pull request #57 from ailin-nemui/lr-skip-visible
Make window left/right skip windows that are already visible in other…
2022-01-31 10:47:31 +01:00
Ailin Nemui
2e6375d4ff Merge tag '1.3.2-an' into HEAD 2022-01-21 13:37:41 +01:00
Ailin Nemui
7b22f41ec5 formatting 2022-01-19 20:49:56 +01:00
Mikael Magnusson
29e36a8fb0 Make window left/right skip windows that are already visible in other mainwins 2022-01-19 20:41:52 +01:00
Ailin Nemui
c0123a1487 Merge tag '1.3.2-an' into integrate/1.3.2-an 2022-01-14 13:40:56 +01:00
Ailin Nemui
b60b0f0ff9 tag as 1.3.2-an 2022-01-14 13:18:41 +01:00
ailin-nemui
3603d47990 Merge pull request #56 from ailin-nemui/line-bookmark
fix crash in Perl's $view->set_bookmark

(cherry picked from commit 95e3fea622)
2022-01-14 11:36:21 +01:00
ailin-nemui
c96a8d9fae Merge pull request #54 from ailin-nemui/chantypes
use chantypes instead of # for irc channel defaults

(cherry picked from commit f7fd4d72e4)
2022-01-14 11:36:17 +01:00
ailin-nemui
95e3fea622
Merge pull request #56 from ailin-nemui/line-bookmark
fix crash in Perl's $view->set_bookmark
2022-01-14 11:29:25 +01:00
Ailin Nemui
937786b731 fix crash in Perl's $view->set_bookmark
reported on the freebsd issue tracker https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254237#c13
2022-01-13 19:38:36 +01:00
Ailin Nemui
d4e3655f1f update news 2021-12-30 23:25:23 +01:00
ailin-nemui
f7fd4d72e4
Merge pull request #54 from ailin-nemui/chantypes
use chantypes instead of # for irc channel defaults
2021-12-30 23:23:53 +01:00
Ailin Nemui
3e4d7ded77 use chantypes instead of # for irc channel defaults 2021-12-26 01:13:57 +01:00
Ailin Nemui
d4ad71c831 Merge tag '1.3.1-an' into integrate/1.3.1-an 2021-12-17 22:47:18 +01:00
Ailin Nemui
85a6ade7e8 tag as 1.3.1-an 2021-12-17 22:42:13 +01:00
ailin-nemui
dbf9fc3dfc Merge pull request #53 from ailin-nemui/keepops
keep own ops status on /upgrade

(cherry picked from commit a2feef5e73)
2021-12-17 22:37:46 +01:00
ailin-nemui
6763be847f Merge pull request #52 from ailin-nemui/help
fix help text wrt SERVER LIST command

(cherry picked from commit 8281b10310)
2021-12-17 22:37:26 +01:00
ailin-nemui
bb1957bafb Merge pull request #51 from ailin-nemui/help
fix help text wrt SERVER command

(cherry picked from commit d33fd0c5da)
2021-12-17 22:37:20 +01:00
ailin-nemui
a2feef5e73
Merge pull request #53 from ailin-nemui/keepops
keep own ops status on /upgrade
2021-12-17 22:29:15 +01:00
Ailin Nemui
60cb9451b3 keep own ops status on /upgrade 2021-12-13 15:32:30 +01:00
ailin-nemui
8281b10310
Merge pull request #52 from ailin-nemui/help
fix help text wrt SERVER LIST command
2021-12-01 23:34:53 +01:00
Ailin Nemui
62eff3d2a7 fix help text wrt SERVER LIST command 2021-12-01 23:34:20 +01:00
ailin-nemui
d33fd0c5da
Merge pull request #51 from ailin-nemui/help
fix help text wrt SERVER command
2021-12-01 22:51:43 +01:00
Ailin Nemui
8088353ed0 fix help text wrt SERVER command
reported by Remco
2021-12-01 22:50:06 +01:00
Ailin Nemui
920e827ae5 Merge commit '2cdcf86174' into HEAD 2021-12-01 13:37:13 +01:00
ailin-nemui
0e3f6aa4a2
Merge pull request #50 from ailin-nemui/gliblog
Improve handling of GLib log messages
2021-11-17 11:17:59 +01:00
Ailin Nemui
9579105748 up abi 2021-11-17 11:00:16 +01:00
Andrej Kacian
9b79749f6c Improve handling of GLib log messages
This patch introduces setting "glib_log_domains", which is
a space-separated list of log domain names, optionally prefixed
with a '-'. The list is parsed from left to right to determine
whether or not user wants to see message from a particular log
domain. Keywords 'all' or '*' are allowed as well.
Examples: "GLib-GIO", "all -GLib-GIO", "-*"

This patch also changes the default format for displaying GLib log
messages to include the log domain.
2021-11-17 10:59:39 +01:00
Ailin Nemui
608c7b09d7 Merge tag '1.3.0-pre8' into integrate/1.3.0 2021-11-12 09:25:47 +01:00
Ailin Nemui
05063da999 tag as 1.3.0-pre8 2021-11-11 10:54:09 +01:00
ailin-nemui
eed9b32f97 Merge pull request #49 from ailin-nemui/dccmsgs
fix stuck meta on dcc chat

(cherry picked from commit a54a00c803)
2021-11-11 10:50:10 +01:00
ailin-nemui
bdadbb183f Merge pull request #48 from ailin-nemui/news
add news ref

(cherry picked from commit b9f773ba6a)
2021-11-11 10:47:45 +01:00
ailin-nemui
a54a00c803
Merge pull request #49 from ailin-nemui/dccmsgs
fix stuck meta on dcc chat
2021-11-10 14:12:47 +01:00
Ailin Nemui
2f99f3a5d3 update news 2021-11-10 13:52:18 +01:00
Ailin Nemui
c5dc3fc2a0 fix stuck meta on dcc chat 2021-11-09 21:18:40 +01:00
ailin-nemui
b9f773ba6a
Merge pull request #48 from ailin-nemui/news
add news ref
2021-11-09 14:48:54 +01:00
Ailin Nemui
8f40b3ba7b add news ref 2021-10-23 11:04:47 +02:00
Ailin Nemui
815ee7b2dd Merge tag '1.3.0-pre7' into integrate/1.3.0 2021-10-11 22:21:22 +02:00
Ailin Nemui
47f8582e68 update NEWS 2021-10-11 22:11:17 +02:00
ailin-nemui
23abfb9123 Merge pull request #44 from ailin-nemui/lag
fix max_lag disconnect

(cherry picked from commit 6db881d8ef)
2021-10-11 22:08:53 +02:00
ailin-nemui
6db881d8ef
Merge pull request #44 from ailin-nemui/lag
fix max_lag disconnect
2021-10-11 22:08:14 +02:00
ailin-nemui
3bb8c619e2 Merge pull request #43 from ailin-nemui/server-outgoing
remove newline from "server outgoing modify"

(cherry picked from commit ea961623f5)
2021-10-11 22:07:44 +02:00
Ailin Nemui
44298db814 chghost news 2021-10-11 22:01:44 +02:00
ailin-nemui
f5d74bd81b
Merge pull request #45 from ailin-nemui/server-outgoing
simplify duplicate code in outgoing modify
2021-10-10 22:16:46 +02:00
Ailin Nemui
bec9e04714 up abi 2021-10-10 13:15:49 +02:00
Ailin Nemui
b22588a9ad simplify duplicate code in outgoing modify 2021-10-10 13:15:49 +02:00
ailin-nemui
ea961623f5
Merge pull request #43 from ailin-nemui/server-outgoing
remove newline from "server outgoing modify"
2021-10-10 12:45:21 +02:00
Ailin Nemui
db200f266b remove newline from "server outgoing modify" 2021-10-10 11:03:00 +02:00
Ailin Nemui
b878c7f079 fix max_lag disconnect 2021-10-09 21:26:01 +02:00
Ailin Nemui
1d3cdfa2d2 Merge tag '1.3.0-pre6' into integrate/1.3.0 2021-10-01 13:43:20 +02:00
Ailin Nemui
96d99534c3 update NEWS 2021-09-29 20:20:56 +02:00
ailin-nemui
5bff40593f Merge pull request #41 from ailin-nemui/ports
fix /server modify port argument order

(cherry picked from commit 235c5b0328)
2021-09-29 19:03:25 +02:00
ailin-nemui
0ba449d8be Merge pull request #39 from ailin-nemui/sync
run syncdocs.sh and syncscripts.sh

(cherry picked from commit 85a9dc146d)
2021-09-29 19:03:21 +02:00
ailin-nemui
117758fb90 Merge pull request #40 from ailin-nemui/gh-actions
update github actions ubuntu version to 18.04 and meson to <0.60.0

(cherry picked from commit db705278d2)
2021-09-29 19:03:17 +02:00
ailin-nemui
0932bbed7b Merge pull request #37 from ailin-nemui/int-min-reached
fix pedantic error in MSGLEVEL enum

(cherry picked from commit b0fdbb144d)
2021-09-29 19:03:11 +02:00
ailin-nemui
235c5b0328
Merge pull request #41 from ailin-nemui/ports
fix /server modify port argument order
2021-09-29 18:59:09 +02:00
Ailin Nemui
2d9c27d617 fix wrong argument type in printformat 2021-09-28 13:27:56 +02:00
Ailin Nemui
4943cc5e58 fix /server modify port argument order 2021-09-27 22:20:15 +02:00
ailin-nemui
85a9dc146d
Merge pull request #39 from ailin-nemui/sync
run syncdocs.sh and syncscripts.sh
2021-09-22 12:33:10 +02:00
ailin-nemui
9f9d49a2f1
Merge pull request #38 from ailin-nemui/docs
update docs
2021-09-22 12:32:51 +02:00
Ailin Nemui
6a83eddf84 run syncdocs.sh and syncscripts.sh 2021-09-22 11:26:24 +02:00
bw1
32a3f4463c update docs
+ version()
+ $abiversion
+ parse_special()
2021-09-22 11:26:13 +02:00
ailin-nemui
db705278d2
Merge pull request #40 from ailin-nemui/gh-actions
update github actions ubuntu version to 18.04 and meson to <0.60.0
2021-09-22 11:25:32 +02:00
Ailin Nemui
df227eb094 update github actions ubuntu version to 18.04 and meson to <0.60.0 2021-09-22 11:14:13 +02:00
ailin-nemui
b0fdbb144d
Merge pull request #37 from ailin-nemui/int-min-reached
fix pedantic error in MSGLEVEL enum
2021-09-21 22:35:30 +02:00
Ailin Nemui
bcea697e7c fix pedantic error in MSGLEVEL enum
reported by horgh
2021-09-19 20:59:14 +02:00
ailin-nemui
8b49cd012d Merge pull request #36 from ailin-nemui/missing-hilights
correctly store updated message levels e.g. from /hilight

(cherry picked from commit ad8221835c)
2021-09-15 17:57:21 +02:00
ailin-nemui
ad8221835c
Merge pull request #36 from ailin-nemui/missing-hilights
correctly store updated message levels e.g. from /hilight
2021-09-15 17:56:45 +02:00
Ailin Nemui
515e493db3 update news 2021-09-15 17:52:44 +02:00
Ailin Nemui
949dc06af3 correctly store updated message levels e.g. from /hilight 2021-09-15 17:48:27 +02:00
ailin-nemui
0f3e95892d Merge pull request #35 from ailin-nemui/fixes
duplicate issue in NEWS

(cherry picked from commit d3e105a396)
2021-09-08 17:37:53 +02:00
ailin-nemui
42f749346b Merge pull request #34 from ailin-nemui/no-maxline
remove oragono.io/maxline-2

(cherry picked from commit 7e14011404)
2021-09-08 17:37:34 +02:00
ailin-nemui
d3e105a396
Merge pull request #35 from ailin-nemui/fixes
duplicate issue in NEWS
2021-09-08 13:03:14 +02:00
ailin-nemui
7e14011404
Merge pull request #34 from ailin-nemui/no-maxline
remove oragono.io/maxline-2
2021-09-08 13:03:03 +02:00
Ailin Nemui
27a73e253b duplicate issue in NEWS
reported by @tobbez
2021-09-08 12:04:18 +02:00
Ailin Nemui
85eb4f118f also remove from NEWS 2021-09-08 12:03:05 +02:00
Ailin Nemui
521c0d4e6f remove oragono.io/maxline-2 2021-09-08 11:57:25 +02:00
Ailin Nemui
2003446e98 continue head 2021-09-08 11:54:44 +02:00
Ailin Nemui
2cdcf86174 branding 2021-09-06 23:44:23 +02:00
ailin-nemui
921c40f09b
Merge pull request #31 from ailin-nemui/package-version
add a PACKAGE_VERSION override for meson
2021-09-03 20:26:31 +02:00
ailin-nemui
69358fbe7c
Merge pull request #15 from ailin-nemui/server-outgoing
Add a "server outgoing modify" signal to intercept outgoing messages
2021-09-03 20:26:12 +02:00
Ailin Nemui
9e12890110 add a "server outgoing modify" signal to intercept outgoing messages 2021-09-03 20:04:29 +02:00
ailin-nemui
3e08ac538d
Merge pull request #33 from ailin-nemui/queues
fix queue bug
2021-09-03 20:03:58 +02:00
Ailin Nemui
37eb6c351c fix queue bug 2021-09-03 19:44:29 +02:00
ailin-nemui
fe09dccdcb
Merge pull request #21 from ailin-nemui/sasl-plain-nonull
only enable sasl plain when username and password are set
2021-09-03 18:00:31 +02:00
ailin-nemui
ce1eed94d1
Merge pull request #26 from ailin-nemui/queues
send channel sync requests "later" in the command queue
2021-09-03 18:00:12 +02:00
Ailin Nemui
cb11fd9cf7 add a PACKAGE_VERSION override for meson 2021-09-03 16:18:21 +02:00
ailin-nemui
03217a487e
Merge pull request #29 from ailin-nemui/hilight-color
actually remember the hilight -color
2021-09-03 11:41:15 +02:00
ailin-nemui
10b5087ded
Merge pull request #30 from vague666/patch-1
Allow -tls_ca{file,path} '' to unset an argument
2021-09-02 23:46:43 +02:00
Jari Matilainen
cf90384023
Allow -tls_ca{file,path} '' to unset an argument 2021-09-02 23:10:37 +02:00
Ailin Nemui
37237f377e actually remember the hilight -color 2021-09-02 22:39:14 +02:00
Ailin Nemui
2de9c25376 up abi 2021-09-02 19:58:00 +02:00
Ailin Nemui
157913bd98 do not chase during netsplit 2021-09-02 19:58:00 +02:00
Ailin Nemui
240b79aa26 send channel sync requests "later" in the command queue 2021-09-02 19:58:00 +02:00
ailin-nemui
0e8717acf6
Merge pull request #23 from ailin-nemui/ssl-flip
do not unconditionally enable tls on /connect -!
2021-09-01 22:51:53 +02:00
Ailin Nemui
82d2cd88e7 Revert "Irssi does not take a political stance."
This reverts commit a4486c236a.
2021-09-01 13:37:37 +02:00
Ailin Nemui
1a30e646d9 Revert "Applied the updated docs changes in line with the upcoming blog post."
This reverts commit 1773fa8d19.
2021-09-01 13:37:17 +02:00
Ailin Nemui
939b773b8b Revert "Changed the support channel to LiberaChat."
This reverts commit a5d4fd5aa7.
2021-09-01 13:37:07 +02:00
Ailin Nemui
1a6d74ac26 fix reading of starttls = "no" in config, attempt 2 2021-08-31 21:54:41 +02:00
Ailin Nemui
6c47fcf10d Revert "Merge pull request #19 from ailin-nemui/starttls-no"
This reverts commit 3324c5da89, reversing
changes made to d3115f3855.
2021-08-31 21:49:29 +02:00
Ailin Nemui
21701a1299 do not unconditionally enable tls on /connect -! 2021-08-31 17:30:28 +02:00
ailin-nemui
b7b91ed2bf
Merge pull request #22 from ailin-nemui/ports
Something with server add
2021-08-31 15:30:48 +02:00
ailin-nemui
3324c5da89
Merge pull request #19 from ailin-nemui/starttls-no
fix reading of starttls = "no" in config
2021-08-31 15:17:03 +02:00
ailin-nemui
d3115f3855
Merge pull request #18 from ailin-nemui/ssl-verify
fix reading of old config ssl_verify key
2021-08-31 15:16:54 +02:00
Ailin Nemui
215cf08828 fuzz server ssl init 2021-08-31 14:54:08 +02:00
Ailin Nemui
e10e1c2da7 fix reading of old config ssl_verify key 2021-08-31 14:54:08 +02:00
Ailin Nemui
92ade2f591 fuzz server ssl init 2021-08-31 14:53:53 +02:00
Ailin Nemui
6710b35736 fix reading of starttls = "no" in config 2021-08-31 14:53:53 +02:00
Ailin Nemui
63a5b80ba7 only enable sasl plain when username and password are set
may fix #1325
2021-08-31 14:53:31 +02:00
Ailin Nemui
4b506fc45c remove duplicated servers on load 2021-08-31 14:49:56 +02:00
Ailin Nemui
c4fd417cce up abi 2021-08-31 12:34:01 +02:00
Ailin Nemui
49903f4185 mess with server ports 2021-08-31 12:34:01 +02:00
ailin-nemui
4001871552
Merge pull request #20 from ailin-nemui/fuzz-test
use an internal build of openssl when fuzzer is enabled
2021-08-30 22:15:08 +02:00
Ailin Nemui
a07a4c1ea8 use an internal build of openssl when fuzzer is enabled 2021-08-30 21:07:03 +02:00
ailin-nemui
e88f476115
Merge pull request #16 from ailin-nemui/log-server-time
add a log_server_time setting
2021-08-15 16:17:49 +02:00
Ailin Nemui
b3f74fe0ab up abi 2021-08-15 15:58:10 +02:00
Ailin Nemui
6a33139939 compat for glib 2.55 2021-08-15 15:57:34 +02:00
Ailin Nemui
fdd61f5898 add a log_server_time setting 2021-08-15 15:57:34 +02:00
ailin-nemui
d6f876d5ca
Merge pull request #17 from ailin-nemui/cifuzz-fork
Run CIFuzz docker manually
2021-08-15 15:56:11 +02:00
Ailin Nemui
0c82a3adfd Workaround for google/oss-fuzz#3731
Run CIFuzz docker manually
2021-08-15 15:26:35 +02:00
ailin-nemui
a6722f5c71
Merge pull request #14 from ailin-nemui/perl-draw-mod
Allow access to "gui render line text" from Perl
2021-08-13 18:59:32 +02:00
Ailin Nemui
5a8b23cab0 up abi 2021-08-13 17:38:57 +02:00
ailin-nemui
85f0a4c1f0
Merge pull request #13 from ailin-nemui/hilight
Add code to make hilight work with textbuffer changes
2021-08-13 17:37:52 +02:00
Ailin Nemui
96e9ab41e9 add "gui render line text" to signals.txt 2021-08-13 17:32:25 +02:00
Ailin Nemui
ed23d89a5a fix recursive crash in Perl scripts 2021-08-13 17:32:09 +02:00
Ailin Nemui
425178e793 add GString to Perl 2021-08-13 17:31:49 +02:00
Ailin Nemui
1602b506a6 add LINE_INFO_META_REC to Perl 2021-08-13 17:31:14 +02:00
Ailin Nemui
6a52b5ac07 up abi 2021-08-13 00:44:33 +02:00
Ailin Nemui
5953b675b9 store the hilight result in the meta table and apply it during the "gui render line text" signal 2021-08-12 23:53:44 +02:00
Ailin Nemui
8d314eadf1 move TEXT_BUFFER_META_REC -> LINE_INFO_META_REC 2021-08-12 23:51:18 +02:00
Ailin Nemui
9677b07488 fix wrong server_time in $line->get_meta 2021-08-12 23:49:40 +02:00
Ailin Nemui
7d13cfba07 add a meta table to all lines 2021-08-12 23:48:37 +02:00
Ailin Nemui
554a8556d2 fix use of wrong "equal" function in meta hash tables 2021-08-12 23:46:31 +02:00
ailin-nemui
7452ec34ad
Merge pull request #12 from ailin-nemui/ticho/singlenet
can do /server add -matrix -network my_matrix_network
2021-08-11 15:59:10 +02:00
ailin-nemui
b38d254d04
Merge pull request #11 from ailin-nemui/vague666/activity_hide_targets_tagstar
Allow tag/* in activity_hide_targets
2021-08-10 23:46:30 +02:00
Jari Matilainen
3aeebd310d Update fe-common-core.c 2021-08-10 23:45:22 +02:00
Jari Matilainen
d2062e34cf Update fe-common-core.c 2021-08-10 23:45:22 +02:00
ailin-nemui
be7a3a85e7
Merge pull request #10 from ailin-nemui/mteofrancis
Fix minor typos in help text
2021-08-10 23:43:26 +02:00
Francis M
77741b187c Fix minor typos in help text 2021-08-10 23:39:48 +02:00
ailin-nemui
a6ca512150
Merge pull request #9 from ailin-nemui/guntbert/issue-1329
Add documentation for  escaping some characters
2021-08-10 23:36:53 +02:00
Guntbert Reiter
aecf087014 Add documentation for escaping some characters
this is especially important when using `sendcmd` to send a password for autologin
2021-08-10 22:42:35 +02:00
ailin-nemui
53b2e0775a
Merge pull request #8 from ailin-nemui/ffrogman
Fix cursor getting stuck for auto completions that changes case
2021-08-10 22:36:03 +02:00
ailin-nemui
471046f5b6
Merge pull request #7 from ailin-nemui/names-limit
add a limit to showing /NAMES on join
2021-08-10 22:17:19 +02:00
Ailin Nemui
6591c94635 add a limit to showing /NAMES on join
only show the counts if too many nicks
2021-08-10 22:12:26 +02:00
Ailin Nemui
f147589e52 can do /server add -matrix -network my_matrix_network
By Andrej Kacian
2021-07-28 11:06:58 +02:00
Geert Hauwaerts
e31d42b381
Merge pull request #1328 from irssi/docs-change
Applied the updated docs changes in line with the upcoming blog post.
2021-05-30 11:20:49 +03:00
Geert Hauwaerts
a5d4fd5aa7
Changed the support channel to LiberaChat. 2021-05-27 20:50:38 +03:00
Geert Hauwaerts
1773fa8d19
Applied the updated docs changes in line with the upcoming blog post. 2021-05-27 20:47:09 +03:00
Geert Hauwaerts
a4486c236a
Irssi does not take a political stance. 2021-05-26 09:24:32 +03:00
ffrogman
700ec4c472 Fix cursor getting stuck for auto completions that exclusively change the case of letters 2021-05-25 23:37:36 -04:00
ailin-nemui
ca9fcbc124
Merge pull request #1316 from FeepingCreature/feature/add-serv-shorthands
Add aliases for ns, ms, os, cs shorthand commands supported by many servers to message services easily
2021-05-23 18:25:03 +02:00
Ailin Nemui
1ba48840a1 update default network 2021-05-20 15:57:06 +02:00
Mathis Beer
5779306df0 Add aliases for ns, ms, os, cs shorthand commands supported by many servers to message services easily. 2021-05-20 10:20:40 +02:00
ailin-nemui
58c9aecf86
Merge pull request #1315 from pekdon/otr_g_strndup
Use g_strndup, strndup is not available on old platforms
2021-05-17 14:43:31 +02:00
ailin-nemui
5df2d6e300
Merge pull request #1312 from ailin-nemui/nocap
slightly improve nocap detection
2021-05-17 10:54:21 +02:00
Claes Nästén
a3248d43ec Use g_strndup, strndup is not available on old platforms
strndup is not available on Solaris 10, to ensure building is ok use
glib function.
2021-05-15 18:10:02 +02:00
ailin-nemui
768658f5d5
Merge pull request #1314 from ailin-nemui/meson
fix build with meson 0.58.0
2021-05-10 13:14:40 +02:00
Ailin Nemui
af489b2d5f fix build with meson 0.58.0 2021-05-10 13:07:22 +02:00
ailin-nemui
da21a7f279
Merge pull request #1313 from ailin-nemui/meson
downgrade meson in github actions
2021-05-10 11:18:41 +02:00
Ailin Nemui
dcbc895e26 downgrade meson in github actions 2021-05-10 10:42:48 +02:00
Ailin Nemui
f5303c153c slightly improve nocap detection
Fixes #1311
2021-05-10 08:34:19 +02:00
ailin-nemui
b4b040d93d
Merge pull request #1308 from niacat/tparm-args
Fix build on operating systems with X/Open Curses, version 2
2021-05-02 09:02:46 +02:00
Ailin Nemui
2122daa3f3 Run clang-format 2021-04-30 10:27:47 +02:00
nia
4fa72e857c Fix build on operating systems with X/Open Curses, version 2
Add the missing arguments to tparm. X/Open Curses specifies
tparm takes a fixed number of 10 arguments, while ncurses
has implemented it as a varargs function. tiparm is a standardized
version of varargs tparm, support in both NetBSD libcurses and
ncurses, but not by older versions of Solaris.

This is an alternate fix to the one proposed in irssi/irssi/#1305
that should keep compatibility with older versions of Solaris by
avoiding tiparm.
2021-04-26 10:31:34 +02:00
ailin-nemui
9503d4bcba
Merge pull request #1304 from ailin-nemui/fuzztest
fuzz test
2021-04-20 10:27:32 +02:00
Ailin Nemui
3dbfac5699 fuzz test 2021-04-20 09:25:08 +02:00
ailin-nemui
afcb48384e
Merge pull request #1302 from rkta/update_gitignore
Ignore files generated by ./autogen.sh
2021-04-18 12:01:24 +02:00
ailin-nemui
4432b0bf0d
Merge pull request #1170 from ailin-nemui/starttls
use starttls / enable tls_verify
2021-04-18 12:01:14 +02:00
ailin-nemui
afdd9f8f05
Merge pull request #1259 from ailin-nemui/beep-ignore-opts
do not beep on hidden lines with /set beep_msg_level ... -hidden
2021-04-18 12:01:03 +02:00
ailin-nemui
f93879baff
Merge pull request #1260 from ailin-nemui/nohilight
add /IGNORE ... NOHILIGHT to ignore some hilights
2021-04-18 12:00:52 +02:00
Ailin Nemui
90003a2bf6 up abi 2021-04-18 11:38:20 +02:00
ailin-nemui
fa913091bd
Merge pull request #1297 from ailin-nemui/memory
missing strdup on netsplits w/o chan
2021-04-11 13:24:42 +02:00
ailin-nemui
3a54c85b15
Merge pull request #1295 from ailin-nemui/module-autoload-one
autoload modules from default setting
2021-04-11 13:24:21 +02:00
Rene Kita
8bb4875007 Ignore files generated by ./autogen.sh 2021-04-10 09:44:53 +02:00
Ailin Nemui
645d80d3b8 Merge tag '1.2.3' into integrate/1.2.3 2021-04-09 19:03:58 +02:00
Ailin Nemui
8a5d5d384e add nocap flag 2021-04-08 22:38:44 +02:00
Ailin Nemui
61237ee6c0 reorder code 2021-04-08 21:55:35 +02:00
Ailin Nemui
085c08e65c use enum 2021-04-08 21:55:35 +02:00
Ailin Nemui
244a8c72b4 verify tls connection 2021-04-08 21:55:35 +02:00
Ailin Nemui
2a0f1d7636 fix fe-fuzz 2021-04-08 21:55:35 +02:00
Ailin Nemui
f2795abcc5 actually use the tls settings on upgrade, and disconnect gracefully 2021-04-08 21:55:35 +02:00
Ailin Nemui
db2fed0d38 fix reconnect to use tls settings 2021-04-08 21:55:35 +02:00
Ailin Nemui
9668217509 changes suggested by ahf 2021-04-08 21:55:35 +02:00
ailin-nemui
51508ff1d3 use starttls 2021-04-08 21:55:35 +02:00
ailin-nemui
9b02424f30
Merge pull request #1298 from ailin-nemui/connect-crashes
fix crash on /connect -tls
2021-04-08 15:46:18 +02:00
Ailin Nemui
308400154b fix crash on tls error 2021-04-07 22:18:34 +02:00
Ailin Nemui
46493c051b add /IGNORE ... NOHILIGHT to ignore some hilights 2021-04-07 14:31:36 +02:00
Ailin Nemui
1e54b92220 fix crash on /connect -tls
fixes #1239
2021-04-03 22:38:00 +02:00
Ailin Nemui
efd705ba59 fix crash on /connect /dev/null 2021-04-03 21:54:53 +02:00
Ailin Nemui
b4ab8c1ada missing strdup on netsplits w/o chan 2021-04-03 21:32:04 +02:00
Ailin Nemui
d20d2753da autoload modules from default setting 2021-04-03 21:25:18 +02:00
ailin-nemui
628ca79e6a
Merge pull request #1293 from ihsinme/patch-1
fix memory leak.
2021-04-02 14:44:32 +02:00
ihsinme
7a3a383772
Update sasl.c 2021-04-02 14:21:06 +03:00
Ailin Nemui
80926476fc do not beep on hidden lines with /set beep_msg_level ... -hidden 2021-04-01 22:13:53 +02:00
ailin-nemui
e0b98e1fa5
Merge pull request #1292 from ailin-nemui/nonick
don't bother if we don't have a nick
2021-04-01 22:13:01 +02:00
Ailin Nemui
4c25bef29c don't bother if we don't have a nick
Credit to OSS-Fuzz
2021-04-01 21:53:30 +02:00
ailin-nemui
cdb30695f9
Merge pull request #1291 from ailin-nemui/nobool
remove unused bool include
2021-04-01 21:28:16 +02:00
ailin-nemui
a731525012
Merge pull request #1290 from mistydemeo/check_for_term_h
Add a check for term.h
2021-04-01 21:28:04 +02:00
ailin-nemui
437accdfa6
Merge pull request #1250 from ailin-nemui/whox
better account tracking
2021-04-01 21:27:51 +02:00
ailin-nemui
9362c59cd2
Merge pull request #1283 from ailin-nemui/freenode
fail redirects on EFNet/freenode 263
2021-04-01 21:27:29 +02:00
ailin-nemui
eeccfc3db1
Merge pull request #1284 from ailin-nemui/printformats
printformats
2021-04-01 21:27:12 +02:00
ailin-nemui
cd866c548a
Merge pull request #1286 from ailin-nemui/perl_formats
add format_string_expand and format_string_unexpand methods to Perl
2021-04-01 21:24:18 +02:00
ailin-nemui
9a8fc7112a
Merge pull request #1288 from jesopo/perl-chatnet-usermode
add IRC_CHATNET_REC->usermode to perl chatnet hashes
2021-04-01 21:24:01 +02:00
Ailin Nemui
8b597cb753 fix clang formatting 2021-04-01 21:21:06 +02:00
Ailin Nemui
c5cc58d34e remove unused include 2021-03-27 21:17:15 +01:00
Misty De Meo
0b82f14151
Add a check for term.h
If term.h is present, use that instead of defining prototypes for the
terminfo functions in terminfo-core.c. This causes problems on certain
platforms (e.g. Apple aarch64) due to the functions being prototyped as
non-variadic but called as variadic. If term.h isn't found, it falls
back to the old behaviour.

Fixes #1238.
2021-03-27 10:54:30 -07:00
ailin-nemui
6f38095cd6
Merge pull request #1287 from ailin-nemui/clang-enum
update clang-format to clang-format-11, fixes enum bug
2021-03-20 19:02:20 +01:00
jesopo
a0142ce384 add IRC_CHATNET_REC->usermode to perl chatnet hashes 2021-03-17 20:32:16 +00:00
Ailin Nemui
030da3ec9c add format_string_expand and format_string_unexpand methods to Perl 2021-03-14 19:00:22 +01:00
Ailin Nemui
25ad30d5e4 add format_string_expand to Perl 2021-03-14 19:00:22 +01:00
Ailin Nemui
7d213da88a update clang-format to clang-format-11, fixes enum bug 2021-03-14 18:53:35 +01:00
Ailin Nemui
9ce3420440 printformats 2021-03-12 23:17:53 +01:00
Ailin Nemui
f5339edbbc fail redirects on freenode 263 2021-03-12 21:16:43 +01:00
ailin-nemui
bf41bfa2f7
Merge pull request #1279 from ailin-nemui/cifuzz
Test CIFuzz offering
2021-03-08 18:25:57 +01:00
Ailin Nemui
5f1fe607e4 Test CIFuzz offering 2021-03-06 18:42:26 +01:00
ailin-nemui
5223ff1bcc
Merge pull request #1280 from ailin-nemui/op_public
fix level uninitialised
2021-03-06 18:37:34 +01:00
ailin-nemui
f4e64e488d
Merge pull request #1281 from ailin-nemui/line-under-construction
fix assertion failure when the line does not have text (yet)
2021-03-06 18:37:15 +01:00
Ailin Nemui
4e1aad6679 fix assertion failure when the line does not have text (yet) 2021-03-05 20:28:10 +01:00
Ailin Nemui
53c91623c5 fix level uninitialised
Credit to OSS-Fuzz
2021-03-03 17:39:44 +01:00
Ailin Nemui
b957d3ad4b add constants for WHOX queries 2021-02-27 21:30:29 +01:00
Ailin Nemui
18ee6bb6f9 queue the who command on join 2021-02-27 21:05:30 +01:00
Ailin Nemui
6eeec6a112 fix double free 2021-02-27 21:04:02 +01:00
Ailin Nemui
04b44a8f8d Revert "queue the who command on join"
This reverts commit 79be775f2b.
2021-02-27 21:02:48 +01:00
ailin-nemui
b2c9365623
Merge pull request #1275 from ailin-nemui/tags-heap
stop parsing on lone tag escape
2021-02-27 18:43:48 +01:00
Ailin Nemui
4c069f5c8f stop parsing on lone tag escape
It's C

Credit to OSS-Fuzz
2021-02-27 18:31:00 +01:00
ailin-nemui
73e73df1c5
Merge pull request #1274 from ailin-nemui/tags-heap
skip parsing empty tags
2021-02-26 20:40:03 +01:00
Ailin Nemui
a8144cd98f skip parsing empty tags
Credit to OSS-Fuzz
2021-02-26 20:25:48 +01:00
Ailin Nemui
3a929898e2 up abi 2021-02-26 14:28:51 +01:00
Ailin Nemui
79be775f2b queue the who command on join 2021-02-26 14:28:37 +01:00
Ailin Nemui
b11f973345 fix off by one 2021-02-26 14:19:33 +01:00
Ailin Nemui
09c17c3302 maybe this matches the command now 2021-02-26 14:19:33 +01:00
Ailin Nemui
a0a9a82673 fix missing output 2021-02-26 14:19:33 +01:00
Ailin Nemui
04089d5866 purge whos from queue 2021-02-26 14:19:33 +01:00
Ailin Nemui
04035ab7ca Track the account queries which are in progress 2021-02-26 14:19:33 +01:00
Ailin Nemui
dc87199100 better account tracking 2021-02-26 14:19:33 +01:00
Ailin Nemui
bf1376e34e update clang-format to clang-format-11, fixes enum bug 2021-02-26 14:19:33 +01:00
Ailin Nemui
7adf81f9b5 raise glib version requirement to 2.32 for g_hash_table_contains 2021-02-26 14:19:33 +01:00
ailin-nemui
b47257048c
Merge pull request #1108 from ailin-nemui/server-time
implement server-time
2021-02-25 19:25:41 +01:00
Ailin Nemui
3ea25fb704 up abi 2021-02-25 10:59:19 +01:00
Ailin Nemui
322df0d2c8 replace refstring macro implementation with C functions 2021-02-25 10:50:51 +01:00
ailin-nemui
d535a79730 implement server-time 2021-02-25 10:41:05 +01:00
ailin-nemui
33d8cc3254 GLib < 2.56 compat code for g_date_time_new_from_iso8601 2021-02-25 10:41:05 +01:00
ailin-nemui
395453aa23
Merge pull request #1272 from ailin-nemui/checks
update deprecated GLib symbol
2021-02-25 06:52:09 +01:00
Ailin Nemui
ccf59868e2 update deprecated GLib symbol
g_main_quit -> g_main_loop_quit
2021-02-24 21:57:11 +01:00
ailin-nemui
672f127544
Merge pull request #1271 from irssi/vague666-fix-159
Update dcc-get.c
2021-02-24 21:50:18 +01:00
Jari Matilainen
a426d669dc
Update dcc-get.c 2021-02-18 14:47:07 +01:00
ailin-nemui
0dd60755f0
Merge pull request #1269 from ihsinme/patch-1
fix invalid unsigned arithmetic.
2021-02-10 10:59:39 +01:00
ailin-nemui
33b4154b0c
Merge pull request #1270 from ihsinme/ihsinme-patch-238
correction of incorrect sequence of checks.
2021-02-08 17:17:07 +01:00
ihsinme
23e4bfa1db
Update write-buffer.c 2021-02-08 12:17:09 +03:00
ihsinme
39ed1ba055
Update gui-entry.c 2021-02-05 22:48:43 +03:00
ihsinme
5e88c107f1
Update gui-entry.c 2021-02-05 18:36:15 +03:00
ihsinme
33bfd88d9e
Update gui-entry.c 2021-02-05 18:34:54 +03:00
ailin-nemui
95f131da2d
Merge pull request #1268 from ailin-nemui/nostdinc
configure automake with nostdinc
2021-02-03 17:46:11 +01:00
Ailin Nemui
e7f3946583 configure automake with nostdinc
the current directoryh won't be added to the compiler's -I path
2021-02-02 00:24:34 +01:00
ailin-nemui
c108cae02f
Merge pull request #1264 from ailin-nemui/wrong-prefixes
correct two more wrong prefixes

    [M] 'function GList* i_list_find_icase_string(GList*, const char*)'    {glist_find_icase_string}
    [M] 'function GList* i_list_find_string(GList*, const char*)'    {glist_find_string}
2021-01-30 23:33:19 +01:00
Ailin Nemui
feb83b2058 two more wrong prefixes 2021-01-30 23:30:59 +01:00
ailin-nemui
db9aa817d5
Merge pull request #1246 from ailin-nemui/wrong-prefixes
correct wrong function prefixes

Module authors will have to adapt these changes:

    [M] 'constant I_INPUT_READ'    {G_INPUT_READ}
    [M] 'constant I_INPUT_WRITE'    {G_INPUT_WRITE}
    [M] 'function int i_input_add(GIOChannel*, int, GInputFunction, void*)'    {g_input_add}
    [M] 'function int i_input_add_full(GIOChannel*, int, int, GInputFunction, void*)'    {g_input_add_full}
    [M] 'function int i_input_add_poll(int, int, int, GInputFunction, void*)'    {g_input_add_poll}
    [M] 'function GIOChannel* i_io_channel_new(int)'    {g_io_channel_new}
    [M] 'function int i_io_channel_read_block(GIOChannel*, void*, int)'    {g_io_channel_read_block}
    [M] 'function int i_io_channel_write_block(GIOChannel*, void*, int)'    {g_io_channel_write_block}
    [M] 'function int i_istr_cmp(gconstpointer, gconstpointer)'    {g_istr_cmp}
    [M] 'function int i_istr_equal(gconstpointer, gconstpointer)'    {g_istr_equal}
    [M] 'function guint i_istr_hash(gconstpointer)'    {g_istr_hash}
    [M] 'function void i_log_func(const char*, GLogLevelFlags, const char*)'    {glog_func}
    [M] 'function GSList* i_slist_delete_string(GSList*, const char*, GDestroyNotify)'    {gslist_delete_string}
    [M] 'function GSList* i_slist_find_icase_string(GSList*, const char*)'    {gslist_find_icase_string}
    [M] 'function GSList* i_slist_find_string(GSList*, const char*)'    {gslist_find_string}
    [M] 'function void* i_slist_foreach_find(GSList*, FOREACH_FIND_FUNC, void*)'    {gslist_foreach_find}
    [M] 'function void i_slist_free_full(GSList*, GDestroyNotify)'    {gslist_free_full}
    [M] 'function GSList* i_slist_remove_string(GSList*, const char*)'    {gslist_remove_string}
    [M] 'function char* i_slist_to_string(GSList*, const char*)'    {gslist_to_string}
2021-01-30 21:09:26 +01:00
ailin-nemui
adb50a7409
Merge pull request #1261 from ailin-nemui/unfix-meson
unfix breakage in python setuptools
2021-01-20 10:06:32 +01:00
Ailin Nemui
a76debde58 unfix breakage in python setuptools
see pypa/setuptools#2541
2021-01-20 09:58:25 +01:00
ailin-nemui
ea5121da3b
Merge pull request #1252 from ailin-nemui/build-fixes-test-actions
fix autotools build and package the meson.build files
2021-01-11 11:15:57 +01:00
ailin-nemui
cd8a0cb701
Merge pull request #1255 from irssi/vague666-patch-1
Update ignore.in examples
2021-01-09 10:38:36 +01:00
ailin-nemui
24999a066c
Merge pull request #1243 from ailin-nemui/config-setup-comments
ignore comments and abort irssi on servers and channels config errors
2021-01-08 23:12:31 +01:00
ailin-nemui
8e69b2bbb4
Merge pull request #1254 from ailin-nemui/cap-setname
undraft setname capability
2021-01-08 18:58:51 +01:00
ailin-nemui
8f23e6c6db
Merge pull request #1253 from ailin-nemui/bad-version-tags
put proper versions in PACKAGE_VERSION
2021-01-08 18:58:23 +01:00
Jari Matilainen
b7bea3d2f3
Update ignore.in 2021-01-07 20:00:26 +01:00
Ailin Nemui
4db0535b32 undraft setname 2021-01-07 18:31:41 +01:00
Ailin Nemui
16b1d58703 Abort Irssi on wrong entries in the channels or servers config 2021-01-07 16:31:11 +01:00
Ailin Nemui
68da49db78 up abi 2021-01-07 10:14:34 +01:00
Ailin Nemui
504cf21783 correct wrong function prefixes: remove g_free_true 2021-01-07 10:14:34 +01:00
Ailin Nemui
aa653aa389 correct wrong function prefixes: glog_func -> i_log_func 2021-01-07 10:14:34 +01:00
Ailin Nemui
b5ddc55fe6 correct wrong function prefixes: gslist -> i_slist 2021-01-07 10:14:34 +01:00
Ailin Nemui
8405c6970a correct wrong function prefixes: g_hash_free_value -> i_hash_free_value 2021-01-07 10:09:45 +01:00
Ailin Nemui
50ed476623 correct wrong function prefixes: g_io_channel -> i_io_channel 2021-01-07 10:09:45 +01:00
Ailin Nemui
9181796472 correct wrong function prefixes: g_istr -> i_istr 2021-01-07 10:09:45 +01:00
Ailin Nemui
edb2f699d1 correct wrong function prefixes: g_input -> i_input 2021-01-07 10:09:45 +01:00
Ailin Nemui
9cbdf9175e put proper versions in PACKAGE_VERSION 2021-01-07 10:09:45 +01:00
Ailin Nemui
168ba937c1 remove travis 2021-01-07 01:42:19 +01:00
Ailin Nemui
57408b19d5 put proper versions in PACKAGE_VERSION 2021-01-07 01:38:21 +01:00
Ailin Nemui
7379833b53 move clang-format-xs into utils 2021-01-07 01:36:32 +01:00
Ailin Nemui
8f6e67b9b3 Check Irssi compilation using github actions 2021-01-07 01:36:32 +01:00
Ailin Nemui
1f05f86167 package the meson.build files 2021-01-06 22:12:46 +01:00
Ailin Nemui
1e7af8bf61 fix autotools build 2021-01-06 22:12:46 +01:00
ailin-nemui
0ae27530d6
Merge pull request #1249 from ailin-nemui/dup-caps
fix multiple identical active caps
2021-01-06 19:23:07 +01:00
Ailin Nemui
18a1a0ba7c fix multiple identical active caps 2021-01-06 10:41:57 +01:00
ailin-nemui
a1cbb8d28f
Merge pull request #1247 from ailin-nemui/clang-format-checker
fix clang-format-xs formatting whole file
2021-01-04 16:17:59 +01:00
Ailin Nemui
e08aca6c85 fix clang-format-xs formatting whole file
incomplete fix in #1234
2021-01-04 16:06:10 +01:00
ailin-nemui
9f1822be3d
Merge pull request #1245 from ailin-nemui/meson-cc-links
use cc.links in meson.build to fix regression of meson 0.56
2021-01-04 10:17:51 +01:00
Ailin Nemui
0706ad14fc use cc.links in meson.build to fix regression of meson 0.56
fixes #1235 reported by dcbaker
2021-01-04 08:37:56 +01:00
ailin-nemui
cfc2ddf56a
Merge pull request #1244 from ailin-nemui/empty-perl-lib
error out on empty perlmodlib, for example non-existant vendor
2021-01-04 00:48:19 +01:00
Ailin Nemui
06396e9c8f error out on empty perlmodlib, for example non-existant vendor
reported by Xogium
2021-01-03 23:07:27 +01:00
Ailin Nemui
ae5e2fe5e5 properly ignore empty lines and comments in servers and channels config
fixes #1242
2020-12-31 17:50:40 +01:00
ailin-nemui
581c43ed1e
Merge pull request #1232 from vague666/fix_1228
Implement priority on the matched lines for /hilight
2020-12-14 15:22:56 +01:00
vague666
69396482be style format change 2020-12-02 14:33:23 +01:00
ailin-nemui
f57dcfe90d
Merge pull request #1234 from ailin-nemui/fix/perlsignals
Copy Perl signal arguments prior to running callbacks
2020-11-14 19:43:10 +01:00
Ailin Nemui
c9ccf9867f Make a copy of the signal arguments so we don't have to worry about the stack
plug some mem leaks

later copy
2020-11-12 13:00:02 +01:00
Ailin Nemui
5f7d274ec5 fix clang-format-xs formatting whole file
regression of #1230
2020-11-12 13:00:02 +01:00
ailin-nemui
e0292665c1
Merge pull request #1230 from ailin-nemui/fix-clang-format-xs-opts
fix clang-format-xs option parser by using getopt
2020-10-27 10:39:25 +01:00
ailin-nemui
dd8478dcde
Merge pull request #1231 from ailin-nemui/gh-actions
keep up with github-actions changes
2020-10-27 10:27:46 +01:00
vague666
323b60f339 Initialize tmprec 2020-10-27 09:49:54 +01:00
Ailin Nemui
5c0d798ef4 keep up with github-actions changes 2020-10-26 23:24:30 +01:00
Ailin Nemui
11b9cbdf35 fix clang-format-xs option parser by using getopt 2020-10-26 17:00:58 +01:00
vague666
8f4f0be6d4 Add prio check to hilight_nick_cache also 2020-10-26 11:01:03 +01:00
vague666
4fb10322d1 Optimize execution 2020-10-26 10:57:05 +01:00
vague666
eb4174ee1e Make hilight priority work 2020-10-23 21:49:09 +02:00
ailin-nemui
17c6c22c89
Merge pull request #1224 from ailin-nemui/meson-capsicum
Fix meson capsicum
2020-09-26 16:51:26 +02:00
ailin-nemui
447e565309 Fix meson capsicum
Fixes #1223
2020-09-26 16:40:18 +02:00
ailin-nemui
561619f23c
Merge pull request #1221 from nachanon/bug1220
Decolor the vertical window split bar in stock `colorless` theme
2020-09-11 14:15:41 +02:00
Nutchanon Wetchasit
a88806640b Make colorless.theme de-color vertical window borders
Fixes #1220.
2020-09-08 17:59:24 +07:00
ailin-nemui
300cd14a70
Merge pull request #1214 from irssi/vague666-update-help-1
Update ignore help
2020-07-30 19:09:28 +02:00
ailin-nemui
dfba73225d
Merge pull request #1213 from irssi/vague666-update-help
Update help with HIDDEN level
2020-07-30 09:04:03 +02:00
Jari Matilainen
ec2f269e98
Update ignore.in 2020-07-28 23:48:52 +02:00
Jari Matilainen
556cb25239
Update ignore.in 2020-07-27 17:37:01 +02:00
Jari Matilainen
fcf2919348
Update help with HIDDEN level 2020-07-27 16:14:44 +02:00
ailin-nemui
f8052b7f57
Merge pull request #1209 from ailin-nemui/perl_line_signal_arg
fix missing wrapping of line in signals
2020-07-26 10:47:13 +02:00
ailin-nemui
cd10745711
Merge pull request #1211 from ailin-nemui/disco_lastmsg
fix crash when server got disconnected/reconnected before it was properly connected
2020-07-26 10:43:51 +02:00
ailin-nemui
79c32cefe7
Merge pull request #1212 from ailin-nemui/master
update github actions/checkout to new branch
2020-07-23 12:15:05 +02:00
ailin-nemui
f4f2350d3c update github actions/checkout to new branch 2020-07-23 12:05:19 +02:00
Ailin Nemui
ffe0c71554 up abi 2020-07-23 11:54:18 +02:00
Ailin Nemui
468d8b0c78 fix missing wrapping of line in signals 2020-07-23 00:52:55 +02:00
Ailin Nemui
4e9dab4aeb fix crash when server got disconnected/reconnected before it was properly connected 2020-07-23 00:42:54 +02:00
ailin-nemui
40ed4122b1
Merge pull request #1208 from ailin-nemui/daychange
do not use localtime result after other functions
2020-07-16 12:07:16 +02:00
ailin-nemui
e55f1f5cea
Merge pull request #1206 from aquanight/selfunload-fix
Fix crash from self-unloading script
2020-07-14 03:14:47 +02:00
ailin-nemui
ad30d568d6 do not use localtime result after other functions 2020-07-13 13:25:18 +02:00
aquanight
12685f8074
Merge branch 'master' into selfunload-fix 2020-07-10 18:32:48 -06:00
aquanight
af5987827c ABI version again 2020-07-10 18:31:47 -06:00
aquanight
cc759e1179 Clean up commented out stuff and fix merge issues 2020-07-10 18:27:54 -06:00
ailin-nemui
70626d86ae
Merge pull request #1159 from vague666/fix_cmd_cat_bug
Make sure witem exists in cmd_cat when using -window
2020-07-10 10:24:06 +02:00
ailin-nemui
76802985a4
Merge pull request #1183 from ailin-nemui/glib-2-63
manually handle NUL unicode in g_utf8_get_next_char_validated
2020-07-08 17:43:11 +02:00
ailin-nemui
37cac5a862
Merge pull request #1205 from ailin-nemui/formatflags
properly restore the saved text dest
2020-07-08 10:07:07 +02:00
ailin-nemui
1b5bb8cdd7
Merge pull request #1204 from ailin-nemui/bgcolours
fix extended bg colours
2020-07-07 09:48:42 +02:00
ailin-nemui
357beb91f5 make clang-format happy 2020-07-07 09:28:41 +02:00
vague666
9593be14f5 print to active window when -window is specified 2020-07-06 12:22:16 +02:00
aquanight
26f3049a86 Refactor to pure refcount for PERL_SCRIPT_REC 2020-07-05 17:20:08 -06:00
aquanight
2d59df8162 Don't try to use the PERL_SIGNAL_REC after it could be freed 2020-07-05 16:09:19 -06:00
aquanight
7daeaa25b6 Fix wrong way on unloaded checks 2020-07-05 15:46:34 -06:00
aquanight
6012ec9e56 Prevent double calls of perl_script_unload 2020-07-05 15:31:07 -06:00
ailin-nemui
6684e5cc41
Merge pull request #1155 from vague666/bind_shenanigans
rewrite how /bind searches for bindings when listing them
2020-07-04 20:37:36 +02:00
ailin-nemui
0cc1e4b7cd properly restore the saved text dest 2020-07-04 18:19:37 +02:00
ailin-nemui
108f57ac7b fix extended bg colours 2020-07-04 12:15:25 +02:00
ailin-nemui
0d2997b36f
make clang-format happy in keyboard.c 2020-06-30 09:29:50 +02:00
vague666
fe9a443380 change to strstr 2020-06-29 16:11:45 +02:00
ailin-nemui
964c067b1e
Merge pull request #1199 from ailin-nemui/termux
Add support for building in Termux-Android in meson
2020-06-17 13:57:30 +02:00
ailin-nemui
01ecb879a6 Add support for building in Termux-Android in meson
- introduce cross perl
- workaround for the android linker
2020-06-02 10:38:01 +02:00
ailin-nemui
4b2c710ebe disable setuid/setgid on android 2020-06-02 10:04:54 +02:00
ailin-nemui
fbe62a34d0
Merge pull request #1198 from ailin-nemui/actlist-sort-type
make actlist_sort a choice type now that we have it
2020-05-24 18:59:15 +02:00
ailin-nemui
d5017cfc7c make actlist_sort a choice type now that we have it 2020-05-24 18:44:25 +02:00
ailin-nemui
99b941db8e
Merge pull request #1197 from lotheac/master
use visible channel name in layout save
2020-05-21 16:00:30 +02:00
Lauri Tirkkonen
7c1237de98 use visible channel name in layout save 2020-05-21 12:15:07 +03:00
ailin-nemui
2a2f7b826d
Merge pull request #1196 from mh-source/master
Add better support for numeric 489 ERR_SECUREONLYCHAN along with a print format
2020-05-16 13:58:35 +02:00
Michael Hansen
214c7ad7da make clang-format happy about the code i added, instead of the code above it.
modified:   src/fe-common/irc/fe-events-numeric.c
2020-05-16 01:26:00 +02:00
Michael Hansen
451e3692b2 disable clang-format check for a few sections of code from before format strictnes got tightened
modified:   src/fe-common/irc/fe-events-numeric.c
modified:   src/fe-common/irc/module-formats.c
modified:   src/fe-common/irc/module-formats.h
2020-05-16 01:20:22 +02:00
Michael Hansen
1fef8f82a5 make git-clang-format check happy
modified:   src/fe-common/irc/fe-events-numeric.c
2020-05-16 01:00:17 +02:00
Michael Hansen
28768e40a3 Increased IRSSI_ABI_VERSION to 29
modified:   src/common.h
2020-05-16 00:48:58 +02:00
Michael Hansen
ae6c8a1bd5 Add better support for numeric 489 ERR_SECUREONLYCHAN along with a print format
modified:   src/fe-common/irc/fe-events-numeric.c
modified:   src/fe-common/irc/module-formats.c
modified:   src/fe-common/irc/module-formats.h
2020-05-15 20:25:41 +02:00
ailin-nemui
3ba8eeba4b
Merge pull request #1195 from ailin-nemui/xs-abi
also check XS abi in abi-diff github workflow
2020-05-15 12:13:22 +02:00
ailin-nemui
3cb6627973 also check XS abi 2020-05-15 12:08:45 +02:00
ailin-nemui
5ba58d9067
Merge pull request #1192 from ailin-nemui/perl-signals-format
add "print format" signal to perl
2020-05-14 11:20:22 +02:00
ailin-nemui
b0cd72aadd up abi 2020-05-13 00:23:12 +02:00
ailin-nemui
3ea854816d Correct a wrong package for format_create_dest 2020-05-13 00:22:56 +02:00
ailin-nemui
4330dbec62 add "print format" signal to perl
fix syntax in signals.txt with regards to GLists

simplify signal emit code
2020-05-13 00:22:38 +02:00
ailin-nemui
784373a7b3
Merge pull request #1191 from ailin-nemui/null-format
fix NULL assertion in format args
2020-05-08 15:42:55 +02:00
ailin-nemui
ba57684d73 fix NULL assertion in format args 2020-05-08 15:34:49 +02:00
ailin-nemui
9bfbb5cdf3
Merge pull request #1188 from ailin-nemui/null-format
fix npe on no text from format_get_text_theme_charargs
2020-05-07 21:46:55 +02:00
ailin-nemui
08ead5ef06 fix npe on no text from format_get_text_theme_charargs 2020-05-07 01:27:25 +02:00
ailin-nemui
86b72d5829
Merge pull request #1079 from ailin-nemui/reformat2
reapply a theme to previous formats
2020-04-30 09:00:34 +02:00
ailin-nemui
bbd73ce58c
Merge pull request #1184 from ailin-nemui/clangformat
also check xs files in the clang-format github action
2020-04-29 19:08:23 +02:00
ailin-nemui
66a7cc3c34 check xs format 2020-04-29 04:24:51 +02:00
ailin-nemui
675696aa84 up abi 2020-04-28 15:46:53 +02:00
ailin-nemui
449d86caf0 add setting to disable reformat 2020-04-28 15:46:53 +02:00
ailin-nemui
8fd6dccaf1 enable mirc colour processing 2020-04-28 15:46:53 +02:00
ailin-nemui
57fb173130 add perl code for textbuffer-formats
- compatibility shim for new line

- make format accessible from perl

- fix perl line IDs being mixed up due to wrapper
2020-04-28 15:46:53 +02:00
ailin-nemui
a0544571a8 manually handle NUL unicode in g_utf8_get_next_char_validated
A change in GLib 2.63 broke some assumptions in Irssi that the null-byte
NUL / U+0000 is a valid Unicode character. This would occur when the
user types Ctrl+Space. As a result, the input loop never manages to
process the NUL-byte (and any other user input that follows, ever).

This patch adds a manual check that properly advances the input loop if
GLib returns -2 (incomplete character) despite the length being positive
and a NUL is in first position.

Fixes #1180
https://gitlab.gnome.org/GNOME/glib/-/merge_requests/967
https://gitlab.gnome.org/GNOME/glib/-/issues/2093
2020-04-28 15:40:21 +02:00
ailin-nemui
6b93d6e338 implement expando cache
- the expando values need to be stored now that the lines are
  reformattable, otherwise the old values are lost (and they depend on
  context only available at the time the line is initially printed)

- the cache is collected from the special-vars evaluation code

- the cache is controlled by the textbuffer-formats code, and stored in
  the text_buffer_format_rec
2020-04-26 20:42:02 +02:00
ailin-nemui
d2291ec6eb
Merge pull request #1182 from ailin-nemui/cleanup
remove some old compat code
2020-04-26 19:18:52 +02:00
ailin-nemui
f95fc81130 make lines reformattable
- completely removed the old textbuffer representation (
  https://github.com/shabble/irssi-docs/wiki/Notes-256-Colour#textbuffer-encoding
  )

- textbuffer-formats is an extra module, so if we unhook the signals it
  should go back to the "old way" of storing pre-rendered tex

- design uses cache, original formats and list of arguments
2020-04-26 18:54:16 +02:00
ailin-nemui
4b24d0a51d remove some old compat code
we already rely on c99 in other parts of the code
2020-04-25 12:04:26 +02:00
ailin-nemui
94ae7f9cd3
Merge pull request #1181 from ailin-nemui/buildfixes
build fixes when using install-glib and on openbsd
2020-04-23 12:52:44 +02:00
Ailin Nemui
244ebaaa2e build fixes when using install-glib and on openbsd 2020-04-23 12:31:52 +02:00
ailin-nemui
316c8157a5
Merge pull request #1179 from ailin-nemui/abidiff
Check for abi compatibility using github actions
2020-04-23 07:41:12 +02:00
ailin-nemui
9ec9a9afc8 try abipkgdiff 2020-04-21 23:52:01 +02:00
ailin-nemui
0bedcfccbd
Merge pull request #1140 from dequis/tear-down-the-wall
meson.build: Remove unnecessary -Wall
2020-04-14 10:23:09 +02:00
ailin-nemui
6d67cadcdb
Merge pull request #1173 from ailin-nemui/clangformat
Fix clang-format checker on empty diff
2020-04-14 09:59:40 +02:00
ailin-nemui
0548bb1a3c empty is also good 2020-04-14 09:55:23 +02:00
ailin-nemui
3d3305a893
Merge pull request #1172 from ailin-nemui/clangformat
run clang-format as a pull request hook
2020-04-13 22:52:17 +02:00
ailin-nemui
6317db5ccb run clang-format as a pull request hook 2020-04-13 22:14:50 +02:00
ailin-nemui
261631a6e1
Merge pull request #1171 from ailin-nemui/hidden-options
hide the deprecated -ssl options from completion
2020-04-07 19:12:04 +00:00
ailin-nemui
f1647bdfa9
Merge pull request #1169 from Pinguin1234/feature/close_on_sighup
Added option to quit in SIGHUP
2020-04-06 15:14:40 +00:00
=
1bfe27c66e Used Tabs instead of spaces and increased ABI_VERSION 2020-04-06 17:04:35 +02:00
ailin-nemui
485ed2f52b hide the deprecated -ssl options from completion 2020-04-05 21:29:39 +02:00
Dennis Pentmeier
f9595c03b1 Changed to async-signal safe method as suggested by dequis 2020-04-04 18:07:08 +02:00
ailin-nemui
cae37e37ca run git-clang-format 2020-04-04 01:12:03 +02:00
Pinguin1234
81dc94c406 Added option to quit in SIGHUP 2020-04-04 00:55:58 +02:00
ailin-nemui
8b7bf1f04e
Merge pull request #1167 from ailin-nemui/quit-crash
fix crash on /quit when unloading modules
2020-04-03 23:26:54 +02:00
ailin-nemui
5d6baeb0b5
Merge pull request #1166 from ailin-nemui/build-fix
fix perl module build on openbsd
2020-04-03 23:26:40 +02:00
ailin-nemui
46ae8c20c5
Merge pull request #1164 from ailin-nemui/modes-noact
fix /ignore ... MODES NO_ACT not working
2020-04-03 10:20:52 +02:00
ailin-nemui
8a446d24de fix /ignore ... MODES NO_ACT not working
reported by letty
2020-04-02 15:47:15 +02:00
ailin
ae89ba7164 fix crash on /quit when unloading modules
this fixes a crash on /quit when the module unloaded is trying
to reference symbols from already-unloaded modules, by reversing
the lists.
2020-04-02 15:39:40 +02:00
ailin
4594b0c4cf fix perl module build on openbsd
unfortunately, some mangling is needed to create the correct linker
and compiler invocations
2020-04-02 04:39:30 +02:00
ailin-nemui
b69074bb39
Merge pull request #1163 from ailin-nemui/docs
update docs and sync scriptassist
2020-03-30 16:21:26 +02:00
ailin-nemui
97670d1dc1 run syncscripts.sh
sync scriptassist.pl to 2003020807
2020-03-30 14:30:05 +02:00
ailin-nemui
be467111fa update docs 2020-03-30 14:28:26 +02:00
ailin-nemui
aab5349256
Merge pull request #1161 from vague666/ignore_readable_time
unignore_time can not be NULL, check for 0 instead
2020-03-18 19:53:55 +01:00
ailin-nemui
6fc9362c65
Merge pull request #1160 from irssi/ailin-nemui/workflow-pr
Use github actions to test PRs
2020-03-18 19:53:19 +01:00
ailin-nemui
597afa4043 Use github actions to test PRs 2020-03-18 19:29:00 +01:00
vague666
d5a55f5e6e unignore_time can not be NULL, check for 0 instead 2020-03-18 17:27:18 +01:00
ailin-nemui
c8440d49d8
Merge pull request #1158 from vague666/ignore_readable_time
-time was missing in /ignore output. now the time is displayed
2020-03-18 16:58:01 +01:00
ailin-nemui
22851686f5
simplify logic 2020-03-17 00:58:48 +00:00
ailin-nemui
f0c1bc4dde
Merge pull request #1156 from vague666/add_server_nopass
Improve help for how to remove saved server password
2020-03-17 01:54:34 +01:00
ailin-nemui
1ad1083f84
improve wording 2020-03-17 00:54:23 +00:00
vague666
7e898fdcf4 Make sure witem exists 2020-03-12 22:52:12 +01:00
vague666
ca04e0ba5d -time was missing in /ignore output and made it human-readable 2020-03-09 14:15:40 +01:00
vague666
43092a5bcc Improve server help 2020-02-19 16:55:11 +01:00
vague666
03295b73b4 Improve server help 2020-02-17 19:55:38 +01:00
ailin-nemui
b38ae68fb5
Merge pull request #1154 from ailin-nemui/zerowidth
refine zero width input test in empty line
2020-02-14 20:17:50 +01:00
vague666
5dba9fd0cc Search for word anywhere, not only from the beginning of string 2020-02-09 12:40:09 +01:00
ailin-nemui
e59c42bcc0 refine zero width input test in empty line
fixes #1153
2020-02-07 16:33:53 +01:00
ailin-nemui
363a79dc7a
Merge pull request #1145 from ailin-nemui/time
remove GTimeVal following glib 2.61.2 deprecation
2020-01-08 10:41:08 +01:00
ailin-nemui
b8be290640
Update src/irc/core/lag.c
Co-Authored-By: dx <dx@dxzone.com.ar>
2020-01-08 10:15:47 +01:00
ailin-nemui
6e14acee17
Merge pull request #1146 from slingamn/issue641_ipv6_failover.1
Reconnect retry IPv4 on IPv6 failure
2020-01-06 10:42:28 +01:00
Shivaram Lingamneni
7d44964dcd fix #641
Track the address family of the last failed connection attempt
(either immediately or during TLS handshake), then disprefer
that address family during reconnection.
2019-12-09 22:48:56 -05:00
ailin-nemui
1cdb4bc311 remove GTimeVal following glib 2.61.2 deprecation 2019-12-06 10:56:25 +01:00
ailin-nemui
4c5f708b9b
Merge pull request #1135 from horgh/horgh/resolve-setting
Remove resolve_reverse_lookup setting
2019-11-19 19:42:06 +01:00
ailin-nemui
942462f23f
Merge pull request #1141 from dequis/glib-deprecations
Fix some glib deprecation warnings
2019-11-19 19:41:16 +01:00
dequis
664c38afba Fix some glib deprecation warnings
Most of these have been deprecated since forever (2.2), but they didn't
raise warnings. Now they do, and the warnings are not the most verbose
warnings you could ask for, but, they point in the right direction.

This doesn't handle the GTimeVal deprecation warnings. Those seem
trickier since they cover API, will look into those right after this.
2019-10-31 23:49:40 +01:00
dequis
bdf5d748f2 meson.build: Remove unnecessary -Wall 2019-10-31 21:02:26 +01:00
ailin-nemui
50f8791f1e
Merge pull request #1138 from mquin/patch-1
Improve clarity of nick in use message
2019-10-19 16:01:16 +02:00
Mike Quin
b7f165a609
Improve clarity of nick in use message
If irssi's preferred nick is in use irssi will issue a whois command and report some information
on the current user of the nick. As the "is owned by" wording can be confusing to users of networks
with nickname registration, propose rephrasing this to "is in use by".
2019-10-19 11:34:15 +01:00
Will Storey
a827c69183 Bump ABI 2019-10-17 19:43:29 -07:00
Will Storey
d84f285b91 Keep unused parameter for API compatibility 2019-10-15 19:07:48 -07:00
ailin-nemui
bf3565a720
Merge pull request #1136 from ailin-nemui/lines
Make sure the bottom_startline is not lost when removing lines
2019-10-15 12:56:36 +02:00
ailin-nemui
453b648e7e
Merge pull request #1132 from horgh/horgh/rm-funcs
Remove an unused function and deprecate another
2019-10-15 11:03:04 +02:00
ailin-nemui
ebdfd2e08c
Merge pull request #1129 from dcollinsn/op-public-hilights
#354 Fix hilight behavior for STATUSMSG
2019-10-15 11:02:41 +02:00
ailin-nemui
156d02c5cf
Merge pull request #1134 from horgh/horgh/tls-reconnect
Use correct TLS settings when reconnecting
2019-10-15 11:02:22 +02:00
ailin-nemui
5776ca5e0b bottom_startline lost? 2019-10-13 21:35:30 +02:00
Will Storey
7e6d24420c Remove resolve_reverse_lookup setting
This setting seems ill advised and breaks TLS verification.

Fixes #1034.
2019-10-12 17:09:48 -07:00
Will Storey
f9db4019af Remove else since prior condition returns 2019-10-12 17:03:40 -07:00
Will Storey
34effcec01 Fill more connection information in one spot 2019-10-12 15:46:42 -07:00
Will Storey
1639425217 Do not copy TLS settings to reconnection record
This was causing us to use the TLS settings from one server on another
which is not always appropriate. Instead, we now treat it like other
connection information and do not copy it. We get the TLS settings later
as appropriate when connecting.

Note there is still probably more that could be cleaned up here. For
example, the unix socket might be better treated as connection info too.

Fixes #1027.
2019-10-12 15:46:42 -07:00
Will Storey
4476fbbad9 Fix indentation 2019-10-12 15:46:39 -07:00
ailin-nemui
145d1040ac add ignore check, emphasis and fix a memory leak 2019-10-11 22:37:09 +02:00
ailin-nemui
ef5579c212
Merge pull request #1131 from ailin-nemui/account-free
missing free in nicklist/account
2019-10-06 17:58:43 +02:00
Will Storey
e4d34380e5 Mark unused function deprecated 2019-10-05 14:32:35 -07:00
Will Storey
2af7db2dfa Remove unused function 2019-10-05 14:32:35 -07:00
ailin-nemui
a68be4dcca missing free 2019-10-05 23:30:25 +02:00
ailin-nemui
49c6c2b69f
Merge pull request #1130 from ailin-nemui/string-free
Only call g_string_free if there is a string
2019-10-01 13:55:46 +02:00
ailin-nemui
03eb8d032a fix the fix 2019-10-01 11:09:25 +02:00
ailin-nemui
4cc286634a
Merge pull request #1128 from josephbisch/fix-sasl-buffer-free
Properly free sasl_buffer GString

Credits to oss-fuzz
2019-09-30 15:39:20 +02:00
Dan Collins
7e694fd223 Fix hilight behavior for STATUSMSG
This patch allows irc_op_public messages to properly trigger
hilights when the message mentions the current nick or one of our
hilights. This is done by copying the required code from
sig_message_public. This is important because Freenode has begun
using this message type for messages that can only be seen by ops
due to the +z channel mode, and ops will want to be notified of
watchwords even in that type of message.

To test, make two connections to Freenode, join a new channel. The
first client to join that channel will be an op. To establish a
baseline, use the non-opped client to attempt to "ping" the opped
client by addressing it by name and using terms in /hilight. Then,
set channel mode to +mz and use the non-opped client to send the
messages again. Without this patch, no message will "ping" the opped
client with +mz set. With this patch, "pings" should operate
normally, causing a bell, hilighting the window number, and so on.

What I don't know is whether there is any other code from
sig_message_public that should be copied over too. In particular,
the lines related to "ignore_check_plus", "emphasis", and
"printnick", I don't know if they are needed here. I also don't know
if there are any other message types that these changes should be
    applied to.
2019-09-28 20:00:06 -04:00
Joseph Bisch
ed65499d76 Add missing g_string_free param 2019-09-26 21:51:36 -04:00
Joseph Bisch
f6cca3de4e Properly free sasl_buffer GString 2019-09-24 21:35:40 -04:00
ailin-nemui
8a1a96c12c
Merge pull request #1120 from ailin-nemui/invalid-cap-free
free params
2019-09-16 11:42:48 +02:00
ailin-nemui
e36d6b9b8c
Merge pull request #1126 from ailin-nemui/null-logger
silence glib log output during fuzzing on oss-fuzz
2019-09-11 13:33:14 +02:00
ailin-nemui
51190f69b2 update fuzzer flags 2019-09-10 15:01:39 +02:00
ailin-nemui
9ff224d05d silence glib log output during fuzzing on oss-fuzz 2019-09-10 13:08:35 +02:00
ailin-nemui
96562e460b
Merge pull request #1124 from ailin-nemui/extended-join
fix crash in join due to incorrect free
2019-09-05 18:19:03 +02:00
ailin-nemui
9a9f9cc22a
Merge pull request #1125 from ailin-nemui/fuzz-link-lang
add new meson build option -Dfuzzer-link-language=cpp for oss-fuzz
2019-09-05 15:46:35 +02:00
ailin-nemui
69dec1de33 add new meson build option -Dfuzzer-link-language=cpp for oss-fuzz 2019-09-04 22:48:03 +02:00
ailin-nemui
f875d252d2 fix crash in join due to incorrect free 2019-09-04 14:57:56 +02:00
ailin-nemui
3642dbad97
Merge pull request #1123 from ailin-nemui/self-message
enable self-message support
2019-09-04 14:37:16 +02:00
ailin-nemui
6d58052c4a enable self-message support 2019-09-04 14:27:06 +02:00
ailin-nemui
7cebff503d
Merge pull request #1119 from ailin-nemui/server-fuzz
add some dummy objects to server-fuzz
2019-08-31 07:48:03 +02:00
ailin-nemui
948e7bb317 free params 2019-08-30 22:14:26 +02:00
ailin-nemui
c271609a49 add some dummy objects to server-fuzz 2019-08-30 22:11:27 +02:00
ailin-nemui
6646e49d42
Merge pull request #1118 from ailin-nemui/static-dependency
Add a new meson option : -Dstatic-dependency=yes to use static dependencies
2019-08-30 21:22:05 +02:00
ailin-nemui
1e9cd62aac
Merge pull request #1117 from ailin-nemui/theme-align
limit special-vars alignment memory to not exhaust fuzzer
2019-08-30 21:20:33 +02:00
ailin-nemui
0df21bcbb4
Merge pull request #1116 from ailin-nemui/server-fuzz
fix warning in fe-fuzz/server-fuzz
2019-08-30 21:16:20 +02:00
ailin-nemui
7aa67b142b Add a new meson option : -Dstatic-dependency=yes to use static dependencies 2019-08-30 21:12:51 +02:00
ailin-nemui
887950db0f limit special-vars alignment memory to not exhaust fuzzer 2019-08-30 20:30:02 +02:00
ailin-nemui
3447904a5c fix warning in fe-fuzz/server-fuzz 2019-08-30 20:29:03 +02:00
ailin-nemui
991e24fb27 Merge tag '1.2.2' into integrate/1.2.2 2019-08-29 17:32:22 +02:00
ailin-nemui
401fff7c34 Merge branch 'fix-double-cap' into 'master'
fix use after free receiving caps

See merge request irssi/irssi!35
2019-08-29 17:31:27 +02:00
ailin-nemui
5a4e7ab659 fix use after free receiving caps
fixes GL#34
2019-08-27 23:34:03 +02:00
ailin-nemui
570d6714ec
Merge pull request #1114 from ailin-nemui/startup-crash
fix crash on startup when resizing before active_win
2019-08-27 15:12:04 +02:00
ailin-nemui
44b060ce17 fix crash on startup when resizing before active_win 2019-08-27 12:42:20 +02:00
ailin-nemui
d627bf5f7a
Merge pull request #1103 from irssi/ailin-nemui/workflows-v2
Migrate push workflow to yaml
2019-08-27 10:14:48 +02:00
ailin-nemui
447e357e07
Merge pull request #1107 from ailin-nemui/extended-join
make extended account info visible and formattable
2019-08-26 23:02:20 +02:00
ailin-nemui
3f0afa91f3
Merge pull request #1092 from ailin-nemui/outgoing-tags
sending of tag messages and customisable maximum irc message length
2019-08-26 22:01:53 +02:00
ailin-nemui
a305cf8971
Merge pull request #1111 from ailin-nemui/perl-new-msgs
add various new message events to signals.txt
2019-08-25 09:50:29 +02:00
ailin-nemui
a8b695b890
Merge pull request #1113 from ailin-nemui/restore-perl-chatnets
revert the change to perl-common that would stop it from creating ghost chatnets
2019-08-24 23:21:10 +02:00
ailin-nemui
487d9434bd revert the change to perl-common that would stop it from creating ghost chatnets
see 00a7efc69f
2019-08-23 22:26:27 +02:00
ailin-nemui
3a654a9e01 add various new message events to signals.txt 2019-08-22 23:33:32 +02:00
ailin-nemui
7abec34668 delete old workflow file 2019-08-19 21:38:59 +02:00
ailin-nemui
e18708243b Migrate push workflow to yaml 2019-08-19 21:38:59 +02:00
ailin-nemui
bdb25aa609
Merge pull request #1102 from ailin-nemui/buildsys-ver
fix wrong version in version-date when building git with merges of old commits on top
2019-08-19 21:33:55 +02:00
ailin-nemui
54781a34ee
Merge pull request #1101 from ailin-nemui/auto
fix autotools build
2019-08-19 15:35:33 +02:00
ailin-nemui
38df7bfd29 make extended account info visible and formattable 2019-08-18 11:24:48 +02:00
ailin-nemui
11887cf3e1
Merge pull request #1106 from ailin-nemui/abi
increase abi for the recently commited changes
2019-08-16 22:46:59 +02:00
ailin-nemui
504d50c9a3 up abi 2019-08-16 22:40:49 +02:00
ailin-nemui
4359e4a5ff
Merge pull request #1105 from ailin-nemui/missing-nick
fix crashes when nick is missing
2019-08-16 21:41:05 +02:00
ailin-nemui
d5329bc811 fix crashes when nick is missing 2019-08-16 21:37:53 +02:00
ailin-nemui
4d01170aa1
Merge pull request #1104 from ailin-nemui/setname-fix
fix crash in setname
2019-08-16 21:24:04 +02:00
ailin-nemui
255d850c4d fix crash in setname 2019-08-16 21:19:40 +02:00
ailin-nemui
587098199e fix wrong version 2019-08-16 17:24:00 +02:00
ailin-nemui
b6f1bf8fcd fix autotools build 2019-08-15 21:44:33 +02:00
ailin-nemui
d191c6e94e
Merge pull request #1098 from ailin-nemui/account-notify
use account-notify capability
2019-08-15 18:19:33 +02:00
ailin-nemui
e20900a7ca make a setting to disable account-notify 2019-08-15 17:30:38 +02:00
ailin-nemui
44d480ca99 use account-notify capability 2019-08-15 17:30:38 +02:00
ailin-nemui
a54c2071e2
Merge pull request #1096 from ailin-nemui/chghost
add chghost capability support
2019-08-15 17:28:52 +02:00
ailin-nemui
8f65f58a4a improve message wording 2019-08-15 17:26:20 +02:00
ailin-nemui
4dbbbf47a4 add chghost capability support 2019-08-15 17:26:20 +02:00
ailin-nemui
95d695de8c
Merge pull request #1099 from ailin-nemui/away-notify
support cap away-notify
2019-08-15 17:09:53 +02:00
ailin-nemui
5f13614d47 move away message to fe-common/core 2019-08-15 16:43:19 +02:00
ailin-nemui
61d215acdd support cap away-notify 2019-08-15 16:43:17 +02:00
ailin-nemui
6c37099407 more variables 2019-08-15 16:39:26 +02:00
ailin-nemui
200020da93 use better number parsing 2019-08-15 16:33:50 +02:00
ailin-nemui
da9adec47f sending of tag messages and customisable maximum irc message length 2019-08-15 16:33:50 +02:00
ailin-nemui
d418989f0c
Merge pull request #1090 from ailin-nemui/incoming-tags
incoming irc message tags support
2019-08-15 16:32:01 +02:00
ailin-nemui
506f2fb327
Merge pull request #1094 from ailin-nemui/cap-invite-notify
show invites of other users when provided
2019-08-15 16:31:29 +02:00
ailin-nemui
f7e67b9e02
Merge pull request #1100 from ailin-nemui/spread_server_message_to_windows
refactor quit message into a separate function
2019-08-15 16:15:26 +02:00
ailin-nemui
0f361d2673 refactor quit message into a separate function 2019-08-15 16:01:48 +02:00
ailin-nemui
2576064982 add missing signal_remove 2019-08-15 10:57:54 +02:00
ailin-nemui
eb3a44a713 clarifying comment 2019-08-15 10:56:15 +02:00
ailin-nemui
24154ced0d irc message tags support 2019-08-15 10:56:15 +02:00
ailin-nemui
e62e55c0ab show invites of other users when provided 2019-08-14 23:55:40 +02:00
ailin-nemui
c87919235a
Merge pull request #1093 from ailin-nemui/cap-setname
request the setname capability
2019-08-14 23:44:52 +02:00
ailin-nemui
47518b4b75 request the setname capability 2019-08-14 23:40:39 +02:00
ailin-nemui
6e32c1f638
Merge pull request #1097 from ailin-nemui/cap-extended-joins
use extended-join capability
2019-08-14 21:08:11 +02:00
ailin-nemui
76bcd01da0 up abi 2019-08-14 21:07:27 +02:00
ailin-nemui
ebd17348a6
Merge pull request #1089 from ailin-nemui/refstrings
implement reference counted strings
2019-08-14 20:53:13 +02:00
ailin-nemui
ad7ad063ca implement reference counted strings
- on glib >=2.58, use the implementation provided by glib
- otherwise, a hash table will contain the strings
2019-08-14 20:50:44 +02:00
ailin-nemui
0a12bf682d
Merge pull request #1095 from ailin-nemui/cap-queue
fix cap queue order
2019-08-14 17:58:52 +02:00
ailin-nemui
4ae1dbbd00 fix cap queue order 2019-08-14 16:34:18 +02:00
ailin-nemui
2f82d9cd33
Merge pull request #1088 from ailin-nemui/noformat
add a new "print noformat" signal to be emitted on printtext
2019-08-14 14:24:08 +02:00
ailin-nemui
ab8385d2bb
Merge pull request #1086 from ailin-nemui/define-line-len
increase disconnect buffer and get rid of some magic 510 values
2019-08-13 18:29:28 +02:00
ailin-nemui
25270e0465 use extended-join capability 2019-08-13 18:23:34 +02:00
ailin-nemui
ed4297c41b add a new "print noformat" signal to be emitted on printtext 2019-08-13 18:18:00 +02:00
ailin-nemui
27546354ca increase disconnect buffer and get rid of some magic 510 values 2019-08-13 18:17:35 +02:00
ailin-nemui
1c99bf78c7
Merge pull request #1085 from ailin-nemui/meson-glib-ver
fix glib version dependency in meson
2019-08-13 18:08:57 +02:00
ailin-nemui
fa0ecb688d
Merge pull request #1087 from ailin-nemui/time-expando-override
make the $Z time overridable
2019-08-13 18:07:47 +02:00
ailin-nemui
3ea22fb535
Merge pull request #1091 from ailin-nemui/cap302
enable irc cap ls 302
2019-08-13 18:07:17 +02:00
ailin-nemui
256b6aa2f5
Merge pull request #1084 from ailin-nemui/build-sys-fp
fix build system debug config to include -fno-omit-frame-pointer
2019-08-13 17:50:14 +02:00
ailin-nemui
d512647b3f use symbolic defines for capability strings 2019-08-13 17:36:20 +02:00
ailin-nemui
e0ff13f6c1 enable irc cap ls 302 2019-08-13 17:26:51 +02:00
ailin-nemui
a865b07a67 make the $Z time overridable 2019-08-13 16:59:07 +02:00
ailin-nemui
0495c67d9f fix glib version dependency 2019-08-13 16:56:33 +02:00
ailin-nemui
89686681c1 fix build system debug config to include -fno-omit-frame-pointer 2019-08-13 16:56:00 +02:00
ailin-nemui
f3e037f434
Merge pull request #1081 from DFrostByte/patch-1
hilight.in: fix typo the->to
2019-08-07 22:53:28 +02:00
Frost
ec32e39ae7
hilight.in: fix typo the->to 2019-08-07 20:51:59 +00:00
ailin-nemui
d7fcb846d3
Merge pull request #1078 from ailin-nemui/theme-indent-always
fix cut off text with theme-indent and /set indent_always off
2019-08-04 22:16:55 +02:00
ailin-nemui
f612f2ee51
Merge pull request #1077 from l2dy/memory-leak
Fix memory leaks
2019-07-28 01:26:57 +02:00
ailin-nemui
c92ff1701f fix cut off text with theme-indent and /set indent_always off 2019-07-28 00:55:19 +02:00
ailin-nemui
7e767e1444
Merge pull request #1076 from l2dy/gfree
Free g_strdup() allocated memory with g_free()
2019-07-27 21:49:55 +02:00
Zero King
dde5fff4a5 Fix memory leaks 2019-07-27 18:34:03 +00:00
Zero King
6c7fa15417 Free g_strdup() allocated memory with g_free()
Memory allocated with g_malloc() must be freed with g_free(). The
allocators may use different memory pools.
2019-07-27 18:23:51 +00:00
ailin-nemui
05d50ffa1b
Merge pull request #1075 from ailin-nemui/meson049
do not use ?: to stay compatible with meson 0.49
2019-07-21 00:21:39 +02:00
ailin-nemui
9a90213ba9 do not use ?: to stay compatible with meson 0.49 2019-07-21 00:08:36 +02:00
ailin-nemui
f8f2428cfb
Merge pull request #1074 from horgh/horgh/readme-links
Link to Ninja site and use HTTPS for Meson site
2019-07-20 23:39:25 +02:00
Will Storey
7f99bbfd00 Link to Ninja site and use HTTPS for Meson site 2019-07-20 14:29:23 -07:00
ailin-nemui
69a91bbcce
Merge pull request #1073 from ailin-nemui/ircloader
manually maintain irc loader
2019-07-18 18:47:20 +02:00
ailin-nemui
6277ccf67f manually maintain irc loader 2019-07-18 18:04:42 +02:00
ailin-nemui
66ac295818
Merge pull request #1071 from ailin-nemui/meson-perl
carry rpath to working perl test
2019-07-18 14:22:54 +02:00
Ailin Nemui
12c8cb1f37 carry rpath to working perl test 2019-07-18 11:37:11 +02:00
ailin-nemui
aa9bb36a0d
Merge pull request #1067 from ailin-nemui/irc-module
modularise irc component
2019-07-18 10:56:40 +02:00
ailin-nemui
fa7539b616
Merge pull request #1070 from ailin-nemui/overflow
fix small overflow
2019-07-18 10:32:30 +02:00
Ailin Nemui
99b2c0b04a fix small overflow 2019-07-18 10:29:30 +02:00
ailin-nemui
afde106cdc
Merge pull request #1068 from irssi/ailin-nemui/mesonver-readme
Improve Meson documentation
2019-07-17 14:16:52 +02:00
ailin-nemui
73f6964d4f
Explain Meson in INSTALL 2019-07-17 12:09:39 +00:00
ailin-nemui
d55a74587c
Add Meson ver requirement to readme 2019-07-17 11:52:20 +00:00
Ailin Nemui
00a7efc69f modularise irc component 2019-07-17 13:37:19 +02:00
ailin-nemui
84301a29f8
Merge pull request #1065 from irssi/ailin-nemui/readme-meson
Misc Meson Fixes
2019-07-17 11:45:40 +02:00
ailin-nemui
c3bd917cf2 use correct libraries in travis 2019-07-17 11:38:11 +02:00
Ailin Nemui
ddb9d5c15f update gitignore for meson stuff 2019-07-17 11:36:34 +02:00
ailin-nemui
2599124bc8
Show meson commands in README 2019-07-16 14:23:12 +00:00
ailin-nemui
cfca498a1d
Merge pull request #1064 from ailin-nemui/meson
meson build support
2019-07-16 16:16:34 +02:00
Ailin Nemui
905bf86921 refactor glib install 2019-07-16 16:09:10 +02:00
Ailin Nemui
9a93e71474 try test travis 2019-07-10 12:02:56 +02:00
Ailin Nemui
db16a0a853 meson build support 2019-07-10 09:25:26 +02:00
Ailin Nemui
fb85fdec5c Merge tag '1.2.1' into integrate/1.2.1 2019-06-28 23:17:42 +02:00
Ailin Nemui
7286da0f9e Merge tag '1.1.3' into integrate/1.1.3 2019-06-28 23:17:16 +02:00
Ailin Nemui
87a2ceb27d Merge tag '1.0.8' into integrate/1.0.8 2019-06-28 23:16:45 +02:00
ailin-nemui
beea28bbbc fix code block NEWS formatting 2019-06-28 11:31:19 +02:00
ailin-nemui
8551dd99cc
Merge pull request #1057 from ailin-nemui/entry-8bit
restore 8bit support in input entry
2019-06-28 11:29:19 +02:00
ailin-nemui
d23b0d22cc
Merge pull request #1058 from ailin-nemui/sasl-reconnect
copy sasl username and password values
2019-06-28 11:28:30 +02:00
ailin-nemui
d34bd858d0
Merge pull request #1059 from ailin-nemui/mirc-24
Use the 24bit mIRC colour mappings if colors_ansi_24bit is enabled
2019-06-27 07:46:41 +02:00
ailin-nemui
8d11060fbc Use the 24bit mIRC colour mappings if colors_ansi_24bit is enabled 2019-06-18 14:55:47 +02:00
ailin-nemui
5a67b983dc copy sasl username and password values 2019-06-17 15:22:27 +02:00
ailin-nemui
38b6284535 restore 8bit support in input entry 2019-06-17 14:58:34 +02:00
ailin-nemui
0ffc515264
Merge pull request #1048 from vague666/set_list_section
Make it possible to list specific section with /set
2019-06-10 12:33:28 +02:00
ailin-nemui
fb720e76de
Merge pull request #1052 from ashafer01/issue/1051
Document Irssi::get_irssi_dir()
2019-06-10 12:21:35 +02:00
ailin-nemui
399c922524
Merge pull request #1054 from dwfreed/fix-window-balance-warning
fe-text/mainwindows: fix /window balance warning
2019-06-10 12:20:50 +02:00
Doug Freed
1d6aeb08fd fe-text/mainwindows: fix /window balance warning
mainwindow_resize() expects that the mainwindow's height has not yet
been updated, as it updates it itself, and throws a warning otherwise.
2019-06-09 23:10:05 +00:00
Alex Shafer
d9fef37131 Fix #1051 - Document Irssi::get_irssi_dir() 2019-06-03 20:58:18 -06:00
ailin-nemui
085888d1c0
Merge pull request #1049 from mgedmin/patch-1
Clarify statusbar priorities
2019-05-30 16:47:12 +02:00
Marius Gedminas
1910b67b97
Clarify statusbar priorities
I was misled by the documentation a little bit and thought that status bar items of lower priority will be removed rather than truncated if they didn't fit.

Also, I had a hard time lowering priority below 0 because I didn't realize negative numbers have to be quoted so they won't be interpreted as option flags.
2019-05-30 17:24:02 +03:00
vague666
cd5958079c Make it possible to list specific section with /set
update help

Allow partial matching
2019-05-29 13:09:28 +02:00
ailin-nemui
a210df942d
Merge pull request #1047 from Gallactide/patch-1
Syntax Issue
2019-05-26 19:29:00 +02:00
David Gall
38a81026b9
Syntax Issue
"was is" changed to "was" for otr_msg_not_in_private
2019-05-26 18:59:21 +02:00
ailin-nemui
7e7bc98396
Merge pull request #1020 from teschi/allow_rawlog_lines_to_shrink_again
allow rawlog-buffer to shrink again after lowering "rawlog_lines"
2019-05-23 10:39:45 +02:00
ailin-nemui
5d70eb18f5
Merge pull request #1044 from vague666/perlify_msglevel_hidden
Make MSGLEVEL_HIDDEN accessible from scripts
2019-05-23 10:36:24 +02:00
vague666
78ae00910e Make MSGLEVEL_HIDDEN accessible from scripts
Empty line in wrong place

Expose MSGLEVEL_HIDDEN to scripts
2019-05-15 15:12:05 +02:00
ailin-nemui
7654f30d04
Merge pull request #1043 from ailin-nemui/solaris10
fix realpath on old solaris
2019-05-13 15:26:21 +02:00
ailin-nemui
9e13892e28 fix realpath on old solaris
POSIX.1-2001 did not implement realpath(..., NULL) yet.
Fixes #1042
2019-05-13 15:15:46 +02:00
ailin-nemui
20f7792748
Merge pull request #1023 from vague666/update_cmd_cat
Add -out parameter to /CAT
2019-05-13 14:27:49 +02:00
ailin-nemui
d0e1786267
Merge pull request #1041 from ailin-nemui/multiproxy
fix reconnect of multiplexed proxy
2019-05-13 11:50:52 +02:00
vague666
d45993dba4 Add -out parameter to /CAT
Change flag to -window

Updated help

Typo

call printtext with server

Only use server when target is not NULL
2019-05-09 13:19:48 +02:00
ailin-nemui
4a3a064d55 fix reconnect of multiplexed proxy 2019-05-07 13:37:31 +02:00
ailin-nemui
6933134352
Merge pull request #1040 from ailin-nemui/module-paths2
Use full paths to includes
2019-05-06 11:12:13 +02:00
ailin-nemui
845431aa31 Install pkg-config file
add a copy of pkg-config-0.29.2 pkg.m4
2019-05-02 17:20:47 +02:00
Ailin Nemui
9bbacf861b fix irssi-version link 2019-05-01 22:35:08 +02:00
ailin-nemui
37f7c7f374 update include guard names 2019-05-01 22:22:22 +02:00
ailin-nemui
03ca37c12e Use full paths to includes in fe-fuzz 2019-05-01 22:08:45 +02:00
ailin-nemui
7e6e1f2e10 Use full paths to includes 2019-05-01 22:08:45 +02:00
ailin-nemui
d5fd789674
Merge pull request #1039 from ailin-nemui/actions
Add code to support Github Actions
2019-04-30 20:40:15 +02:00
ailin-nemui
2db6e99038
Merge pull request #1036 from berkerpeksag/fix-bio-read
Check return value of BIO_read() in set_pubkey_info()
2019-04-24 13:51:06 +02:00
ailin-nemui
da266691bb disable github workflows 2019-04-24 13:30:38 +02:00
ailin-nemui
ad3b8df97e Add Github Actions support code 2019-04-24 13:29:51 +02:00
ailin-nemui
796b60dd45
Merge pull request #1025 from vague666/prefer_window_name
Add setting to choose between window name and visible name in actlist
2019-04-15 10:52:52 +02:00
vague666
9d9d99eeb1 move caching to correct place :) 2019-04-08 12:32:58 +02:00
Berker Peksag
530393140a Check return value of BIO_read() in set_pubkey_info()
Fixes #943
2019-04-08 02:40:45 +03:00
ailin-nemui
04ca271d77
Merge pull request #1035 from berkerpeksag/patch-1
Add missing NULL check in mask_match()
2019-04-07 15:30:34 +02:00
ailin-nemui
6d3e763248
Merge pull request #1037 from berkerpeksag/fix-cert-null-check
Move NULL check for cert above pubkey
2019-04-07 15:30:02 +02:00
Berker Peksag
2b48ddd3c9 Move NULL check for cert above pubkey
This patch was originally proposed by Chi Li.

Fixes #944
2019-04-06 23:20:44 +03:00
Berker Peksag
8789027617
Add missing NULL check in mask_match()
Fixes #902
2019-04-06 21:52:49 +03:00
ailin-nemui
690e441771
Merge pull request #1026 from vague666/perl_hidden_view_access
add access to set hidden_level from perl
2019-04-05 16:02:41 +02:00
ailin-nemui
a2f2d1899b
Merge pull request #1022 from heikkiorsila/scrollback_max_age
Implement a method to delete messages older than given time in scroll…
2019-04-05 15:58:36 +02:00
ailin-nemui
791071f6e4
Merge pull request #1024 from vague666/update_cmd_echo
Remove unused parameter to /ECHO
2019-04-05 15:58:22 +02:00
ailin-nemui
3e0bc1eb3c
Merge pull request #1032 from vague666/update_help_msg
Add special targets to help
2019-04-05 13:55:49 +02:00
ailin-nemui
dd5b611c72
Merge pull request #1030 from blackthornedk/blackthornedk-patch-1
Add tls_* options to manual
2019-04-04 10:44:47 +02:00
vague666
2f5f342977 Add special targets to help 2019-04-03 11:41:12 +02:00
vague666
c66fe616e1 Bump ABI and add another perl api function 2019-04-02 09:53:42 +02:00
vague666
9cdeed2894 cache bool value 2019-04-02 09:39:03 +02:00
Jacob V Rasmussen
d0bc5b8cf2 Update ssl_* to tls_* in syntax. 2019-04-01 17:52:39 +02:00
Jacob V. Rasmussen
1fe6fd8057
Add tls_* options to manual
Add tls_* options to the SERVER section of the manual.
2019-04-01 13:14:58 +02:00
ailin-nemui
1247b37ff7
Merge pull request #1017 from horgh/horgh/error-check
Remove unused functions
2019-03-29 09:48:20 +01:00
vague666
40d800637a add access to set hidden_level from perl 2019-03-22 19:24:18 +01:00
vague666
22502abf2c Add setting to choose between window name and visible name in actlist 2019-03-22 19:10:10 +01:00
vague666
8479ff7a2e Remove unused parameter to /ECHO 2019-03-22 13:11:35 +01:00
Heikki Orsila
6a2823ad3e Implement a method to delete messages older than given time in scrollback history.
The maximum age of messages is controlled by /set scrollback_max_age variable.
E.g. /set scrollback_max_age 7days
2019-03-13 22:59:24 +02:00
ailin-nemui
26d96a7bb2
Merge pull request #1021 from ailin-nemui/fix-1019
fix the compilation of utf8proc code if desired
2019-03-08 13:57:04 +00:00
ailin-nemui
bc94100114 fix missing AC_DEFINE 2019-03-08 11:24:16 +01:00
ailin-nemui
6242d25055
Merge pull request #1019 from ailin-nemui/configure-utf8proc
make utf8proc configurable
2019-02-27 13:00:22 +01:00
teschi
c61a171114 allow rawlog-buffer to shrink again after lowering "rawlog_lines" 2019-02-23 22:24:36 +01:00
ailin-nemui
a37672361a make utf8proc configurable 2019-02-20 16:34:17 +01:00
ailin-nemui
01ce66c684
Merge pull request #1014 from ailin-nemui/fix-be64
fix test on Big Endian 64bit, due to pointer size mismatch
2019-02-19 07:22:06 +01:00
Will Storey
c25d24220f Remove unused functions 2019-02-18 11:53:46 -08:00
Will Storey
2db359fbb3 Recognise non-zero as error rather than only -1
The error flag can be something other than -1 in the event of an error.
Not checking for this could lead to us to try connecting to an unknown
IP.
2019-02-18 11:44:31 -08:00
Will Storey
e793d7af9f Fix indentation 2019-02-18 11:44:28 -08:00
ailin-nemui
df532d4461
Merge pull request #1013 from ailin-nemui/fix-1012
do not stop autolog_ignore_targets from matching itemless targets
2019-02-18 09:36:34 +01:00
ailin-nemui
80fe52cb59 fix test on Big Endian 64bit, due to pointer size mismatch 2019-02-13 13:56:03 +01:00
ailin-nemui
c1b604ee6a add issue reference 2019-02-12 13:49:50 +01:00
ailin-nemui
3664484bef do not stop autolog_ignore_targets from matching itemless targets 2019-02-12 13:28:05 +01:00
ailin-nemui
63cc937e67 continue head 2019-02-11 21:40:09 +01:00
ailin-nemui
bd2ff8c99c tag as 1.2.0 2019-02-11 18:34:14 +01:00
ailin-nemui
22fdb94d1b run syncscripts.sh 2019-02-11 18:04:59 +01:00
ailin-nemui
48a6d04ade run syncdocs.sh 2019-02-11 18:04:46 +01:00
ailin-nemui
6239a8b791
Merge pull request #1000 from ailin-nemui/window-bounds-type
Store window bounds type
2019-02-11 17:33:30 +01:00
Ailin Nemui
8543b874a2 store type of window binds 2019-02-11 17:27:33 +01:00
ailin-nemui
ea41726b3e
Merge pull request #1011 from ahf/otr-compiler-warning-fix
Use memcpy() instead of strncpy() to silence the compiler warning.
2019-02-11 09:49:04 +01:00
Alexander Færøy
346211eeeb Use memcpy() instead of strncpy() to silence the compiler warning. 2019-02-09 22:42:13 +01:00
ailin-nemui
a25b4e5db2
Merge pull request #999 from ailin-nemui/mad-protocol
do not touch uninitialised protocols on item restore
2019-02-08 14:37:31 +01:00
ailin-nemui
b4ad430939
Merge pull request #1004 from ailin-nemui/fix-get_extent
fix gui_input_get_extent
2019-02-05 01:08:19 +01:00
ailin-nemui
034752ade3 fix gui_input_get_extent
it was causing a free of data with [transfer=none]
2019-02-04 14:33:41 +01:00
ailin-nemui
ee86cc197e
Merge pull request #1003 from ailin-nemui/fix-1002
correct fix for #997
2019-02-02 18:21:08 +01:00
ailin-nemui
5b530737d4 correct fix for #997 2019-02-02 14:51:09 +01:00
ailin-nemui
ff18e79661
Merge pull request #994 from ailin-nemui/fix-993
add more config checks and assertions in statusbar code
2019-02-02 14:34:59 +01:00
ailin-nemui
0cdbb2e821
Merge pull request #1001 from ailin-nemui/fix-997
add missing NULL check
2019-02-01 14:29:21 +01:00
ailin-nemui
b1d6cb7f26 add missing NULL check 2019-02-01 13:18:50 +01:00
ailin-nemui
9f9aada83b do not touch uninitialised protocols on item restore 2019-01-29 21:33:39 +01:00
ailin-nemui
aa80f1de61
Merge pull request #990 from ailin-nemui/mainwin_activity
add activity_hide_visible setting
2019-01-29 00:30:43 +01:00
ailin-nemui
f9beedd2d0 add more config checks and assertions 2019-01-22 15:24:52 +01:00
ailin-nemui
9ec2c8cee4
Merge pull request #988 from ailin-nemui/version
show output of git describe as PACKAGE_VERSION
2019-01-16 09:47:49 +01:00
ailin-nemui
3af2ce8731 add activity_hide_visible setting 2019-01-15 21:02:27 +01:00
ailin-nemui
fa9463cb02
Merge pull request #989 from ailin-nemui/split-syntax
update sidewayssplit syntax
2019-01-14 10:17:52 +01:00
ailin-nemui
b080405c6a update sidewayssplit syntax 2019-01-09 23:46:57 +01:00
ailin-nemui
b8cfd9d6af show output of git describe as PACKAGE_VERSION
also fixes GNUism in sed call
2019-01-09 21:11:01 +01:00
ailin-nemui
dfe3c31283 update issue references 2019-01-09 15:41:28 +01:00
ailin-nemui
3d1980599a Merge tag '1.1.2' into integrate/1.1.2 2019-01-09 15:41:28 +01:00
ailin-nemui
d57203e926
Merge pull request #978 from ailin-nemui/fix-974
Fix inconsistent escaping from expand_escapes
2019-01-09 09:29:29 +01:00
ailin-nemui
8c30367452 rename function 2019-01-08 15:48:12 +01:00
ailin-nemui
c7ce0f320b
Merge pull request #985 from ailin-nemui/automake
automake warns that subdir-objects will be enabled in 2.0
2018-12-18 20:53:08 +01:00
ailin-nemui
c044fe397e
Merge pull request #982 from yarda/coverity
Fixed problem found by Coverity Scan
2018-12-18 16:57:36 +01:00
ailin-nemui
35f5e5f278 up abi 2018-12-07 10:01:56 +01:00
ailin-nemui
7e6e3cd503 Add escape_string_escape function for expand_escapes
To avoid expanding, tab completion escapes the completion list. But the
escape_string function escapes too much for the expand_escapes code. Add
a function that only escapes the backslashes.
2018-12-07 10:00:29 +01:00
ailin-nemui
821e8af9fe automake warns that subdir-objects will be enabled in 2.0 2018-12-07 09:52:23 +01:00
Jaroslav Škarvada
4f26ad74f5
Fixed problem found by Coverity Scan
Fixes #981

Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
2018-12-04 21:07:06 +01:00
ailin-nemui
40f5edf105
Merge pull request #979 from ailin-nemui/completion-keep-word
add keep_word setting to completion
2018-12-04 17:01:33 +01:00
ailin-nemui
1c6f256098
Merge pull request #973 from ailin-nemui/perl-wcwidth
expose wcwidth and related to perl
2018-11-29 10:18:16 +01:00
ailin-nemui
dcb412eb8b
Merge pull request #975 from NattyNarwhal/ibmi
Fix irssi build on IBM i and AIX
2018-11-26 18:52:02 +01:00
Calvin Buckley
482a3a5bdd
Remove unneeded comment 2018-11-26 09:56:04 -04:00
Calvin Buckley
bed0a3309f Revert back to using original version of the configure script
* IBM i rpmbuild environments set the magic variables for
	  building w/ 64-bit binutils automatically, and one can
	  set this for themselves with `OBJECT_MODE=64` when
	  buildings. Remove this.

	* The subdir-objects change will need to be made due to
	  upstream autotools making it mandatory in the future, but
	  that isn't my decision to make.
2018-11-25 15:00:34 +00:00
Calvin Buckley
a634b34ba4 Rename cap_* funcs to irc_cap_*
Some systems often "namespace" cap_ for themselves, and so irssi's
usage can conflict with their own. Bump ABI for this.
2018-11-25 14:50:47 +00:00
ailin-nemui
10f41e067e fix backward completion 2018-11-25 14:19:57 +01:00
ailin-nemui
88b1649195 add keep_word setting to completion 2018-11-25 14:16:08 +01:00
ailin-nemui
257cb2f5f9
Merge pull request #971 from ailin-nemui/paste-join-lines
fix paste_join_multiline
2018-11-19 16:07:00 +01:00
Calvin Buckley
795e7ec162 Fix build on IBM i
* Lots of warnings about subdirectories. Set an automake
	  option to deal with this.

	* Set an ar flag for explicit 64-bit when on IBM i, due to
	  it defaulting to 64-bit output with official gcc by default.
2018-11-19 14:18:34 +00:00
Calvin Buckley
4380f3820e Fix compilation of irc/core on AIX and IBM i
There's a function in the standard library of these OSes that conflict
with this function. Prefix it with `irc_`.
2018-11-19 13:58:51 +00:00
ailin-nemui
288f220f87 fix width of byte codepoints 2018-11-13 00:14:15 +01:00
ailin-nemui
deaa1da55e cast to unsigned char 2018-11-12 14:11:27 +01:00
ailin-nemui
9e5e5d8625 expose wcwidth and related to perl 2018-11-12 13:14:02 +01:00
ailin-nemui
6c40567dab
Merge pull request #957 from ailin-nemui/rawlog
Improve rawlog performance
2018-11-12 13:02:41 +01:00
ailin-nemui
4537d85b0b reverse queue 2018-11-09 11:32:00 +01:00
ailin-nemui
60d2364989 run syncscripts.sh
sync buf.pl to version 3.00
sync usercount.pl to version 1.20
2018-11-09 11:11:10 +01:00
ailin-nemui
c1fb9a8402 fix paste_join_multiline 2018-11-09 11:06:13 +01:00
ailin-nemui
83e98da2ff add test for paste_join_multiline 2018-11-09 11:05:52 +01:00
ailin-nemui
9d2429c027 test line joining 2018-11-09 10:57:37 +01:00
ailin-nemui
2847b751e3 design.txt is now sourced from website
also run syncdocs, fixes missing placeholder in startup-HOWTO
2018-10-29 17:51:53 +01:00
ailin-nemui
8054b5c2bd
Merge pull request #967 from vague666/hide_targets_no_item
allow activity_hide_targets to hide activity in itemless windows
2018-10-29 10:35:08 +01:00
ailin-nemui
275e0e84ad
Merge pull request #968 from vague666/only_log_saved_channels
Only log saved channels
2018-10-29 10:33:50 +01:00
vague666
ec577f9265 typo 2018-10-27 20:52:14 +02:00
vague666
f7966d9c08 allow activity_hide_targets to hide activity in itemless windows 2018-10-27 20:51:29 +02:00
vague666
3061f5d848 make sure only channels are checked 2018-10-27 20:00:15 +02:00
vague666
2093530e75 Make it possible to only autolog saved channels 2018-10-27 16:08:36 +02:00
ailin-nemui
524f31b026
Merge pull request #965 from ailin-nemui/fix-signal-emit
Fix wrong signal emission arg count
2018-10-19 02:08:08 +02:00
Doug Freed
f11b629b2f Fix issues pointed out by e38774cc 2018-10-19 01:06:43 +02:00
ailin-nemui
bc1d82a757
Merge pull request #964 from ailin-nemui/fixes
fix duplicate include guard and link libs of test
2018-10-18 15:15:50 +02:00
ailin-nemui
6ca13dd5cd
Merge pull request #905 from horgh/horgh/topic-regression
Add tests for topic events
2018-10-17 12:31:52 +02:00
ailin-nemui
cbc27062e7 fix duplicate include guard 2018-10-17 00:58:49 +02:00
ailin-nemui
da15279fa3 fix flood test libs 2018-10-17 00:58:39 +02:00
ailin-nemui
8bbf9c696c
Merge pull request #962 from horgh/horgh/comments-and-indentation
Fix some indentation and add some comments
2018-10-09 17:16:21 +02:00
Will Storey
81f3d6dbc1 Comment colour code meaning 2018-10-08 20:40:37 -07:00
Will Storey
08b4d6c031 Fix some space indentation 2018-10-08 20:23:22 -07:00
ailin-nemui
4eff3f154d
Merge pull request #959 from ailin-nemui/notice-routing
Route notices intended for channels into the channel
2018-10-08 18:18:54 +02:00
ailin-nemui
cdcb50f413 add a setting 2018-10-08 17:41:46 +02:00
ailin-nemui
a30fbd6cfb
Merge pull request #961 from ailin-nemui/no-topic-glitch
Show the proper TXT when topic was unset
2018-10-07 10:23:19 +02:00
ailin-nemui
3257ce3b13
Merge pull request #958 from ailin-nemui/window-number-cmd
Make /1/2/3/... a setting
2018-10-07 10:21:29 +02:00
ailin-nemui
49d83b5945
Merge pull request #956 from irssi/ailin-nemui/kill-cubes
Remove cubes from irssi.conf
2018-10-07 10:19:02 +02:00
ailin-nemui
80f9f16939 Show the proper TXT when topic was unset 2018-10-06 20:14:49 +02:00
ailin-nemui
8b1afbd355 revert core changes 2018-10-06 20:05:54 +02:00
ailin-nemui
08ac2ee5be refactor cnotice test into function 2018-10-05 16:13:47 +02:00
ailin-nemui
d2dbcc1999 Route notices intended for channels into the channel 2018-10-05 15:37:27 +02:00
ailin-nemui
2200bd3656 Make /1/2/3/... a setting 2018-10-05 13:46:39 +02:00
ailin-nemui
cee9d09deb
Merge pull request #955 from ailin-nemui/split-width-bug
fix and document window width on screen width dependency
2018-10-05 10:49:50 +02:00
ailin-nemui
d815c88050
Merge pull request #953 from dwfreed/fix-printtext.h
Use ##__VA_ARGS__ extension to allow for argument-less ...
2018-10-05 10:48:25 +02:00
ailin-nemui
b96a41cf3d
Merge pull request #951 from dwfreed/patch-1
fe-text: clear hidelevel in layout if default
2018-10-05 10:47:12 +02:00
ailin-nemui
1e2547eb92 fixup perl side 2018-10-04 09:33:07 +02:00
ailin-nemui
ff0daf5870 actually create the queue, too 2018-10-04 09:31:08 +02:00
ailin-nemui
95692d4d86 up abi 2018-10-04 09:24:10 +02:00
ailin-nemui
05fd64dd16 improve rawlog perf 2018-10-04 09:24:10 +02:00
ailin-nemui
ff7f4a2207
Remove cubes from irssi.conf
This is long and ugly and better done externally (script)
2018-10-02 16:27:28 +02:00
ailin-nemui
f207e844f1
Merge pull request #949 from ailin-nemui/help-narrow
Fix insufficient size of help column when the window width is small
2018-10-02 00:09:01 +02:00
ailin-nemui
011372ecdd
Merge pull request #948 from ailin-nemui/invalid-startline
invalidate startline and bottom_startline when hidden
2018-10-02 00:08:30 +02:00
ailin-nemui
ca1ec21dc2 fix and document window width on screen width dependency 2018-10-01 09:14:03 +02:00
Doug Freed
c4bf228e6c Fix check for C99 in printtext.h 2018-09-30 06:52:02 +00:00
Doug Freed
f5e587a83b
Fix 01f961c 2018-09-29 18:37:10 -04:00
ailin-nemui
7ab52e73c6
Merge pull request #947 from ailin-nemui/rsplit-collapse
Fix broken display after resizing many windows very small
2018-09-29 22:03:06 +02:00
ailin-nemui
630c6f7e14
Merge pull request #946 from ailin-nemui/resize-freeze
fix irssi being stuck when resized very small
2018-09-29 22:02:29 +02:00
ailin-nemui
116e202d22
Merge pull request #938 from ailin-nemui/hide-hidden-act
Don't trigger activity on hidden lines by default
2018-09-29 22:02:10 +02:00
Doug Freed
b264540f4e
fe-text: clear hidelevel in layout if default
This is required, otherwise setting the hidelevel to the default will
not be written in the layout and so won't persist.
2018-09-29 07:13:32 -04:00
ailin-nemui
04daf62dbf Fix insufficient size of help column when the window width is small 2018-09-28 14:30:39 +02:00
ailin-nemui
8684ccb45c invalidate startline and bottom_startline when hidden
this was overlooked when adding hidden line support. if the lines are
removed, Irssi has to update the startline. It does that by "scrolling"
the lines to the proper place. The scroll function was adjusted to
calculate 0 for hidden lines, thus it would miss them.
2018-09-28 11:41:30 +02:00
ailin-nemui
76b934d18e Fix broken display after resizing many windows very small 2018-09-26 15:21:08 +02:00
ailin-nemui
db005007cf fix irssi being stuck when resized very small 2018-09-26 14:18:37 +02:00
ailin-nemui
01f961cdf1 Don't trigger activity on hidden lines by default
This is controlled by a new activity_hide_window_hidelevel setting.
2018-09-24 08:18:13 +00:00
ailin-nemui
cdfd75da98
Merge pull request #941 from dwfreed/window_default_hidelevel
Add window_default_hidelevel setting
2018-09-23 11:22:46 +02:00
ailin-nemui
57857856a6
Merge pull request #937 from ailin-nemui/hidden-ignores
correctly separate ignore flags (no_act, hidden) from level
2018-09-23 11:22:31 +02:00
ailin-nemui
f231a59e81 properly document the ignore_match_level so I understand it next time 2018-09-20 17:50:35 +02:00
ailin-nemui
ee92e3aff2
Merge pull request #939 from ailin-nemui/fix-modules
some header fixes for C modules
2018-09-20 17:38:03 +02:00
ailin-nemui
708ba06dbc
Merge pull request #930 from ailin-nemui/fix-928
fix accessing unallocated text when checking entry position
2018-09-20 17:37:50 +02:00
ailin-nemui
a7af259dd1
Merge pull request #929 from ailin-nemui/oddcommands
Remove incorrectly copied automake commands from fuzzer
2018-09-18 21:14:55 +02:00
Doug Freed
cad79f1db7 Fix compilation warning 2018-09-17 14:34:06 +00:00
Doug Freed
074e6cf768 fe-text: only save non-default window hidelevel
This will only save the window hidelevel in the layout if it differs
from window_default_hidelevel.
2018-09-17 14:26:25 +00:00
Doug Freed
cb6279c63b fe-text: add window_default_hidelevel setting
Allows specifying the hidelevel that new windows get by default.
2018-09-17 13:28:46 +00:00
ailin-nemui
011d9437d1 oops 2018-09-17 13:08:43 +02:00
ailin-nemui
7e9f8c694b simplify ignore hidden/no_act code 2018-09-17 12:48:42 +02:00
ailin-nemui
b9a274a81d correctly separate ignore flags (no_act, hidden) from level 2018-09-17 12:26:13 +02:00
ailin-nemui
20dcf4e53e fix compilation of python module 2018-09-14 12:44:41 +02:00
ailin-nemui
c174247502 fix compilation of theme-indent module 2018-09-14 11:59:05 +02:00
ailin-nemui
90165c0cec
Merge pull request #931 from ailin-nemui/fix-629
Disconnect SASL properly in case the sasl module got unloaded from server
2018-09-07 23:05:11 +02:00
ailin-nemui
c80946bcf5 Disconnect SASL properly in case the sasl module got unloaded from server
stops from getting on the network when sasl is unavailable

fixes #629
2018-09-04 15:50:58 +02:00
ailin-nemui
74e8371bde fix accessing unallocated text when checking entry position
fixes #928
2018-09-04 14:12:03 +02:00
ailin-nemui
3f0a4ef197 Remove incorrectly copied automake commands from fuzzer 2018-09-04 10:17:20 +02:00
ailin-nemui
7f14d4d744
Merge pull request #896 from phillid/winch-redraw
Don't ignore SIGWINCH when window size is unchanged
2018-09-04 10:02:52 +02:00
ailin-nemui
d93cd63243
Merge pull request #917 from dequis/wcwidth-wrapper
Add a wrapper of wcwidth() that picks the best implementation
2018-09-04 09:52:21 +02:00
ailin-nemui
e5759a7fb7
Merge pull request #914 from ailin-nemui/textbuffer_lineinfo
properly record line info on empty lines
2018-09-04 09:37:10 +02:00
ailin-nemui
329448939b
Fix gnu wcwidth 2018-09-04 09:36:45 +02:00
ailin-nemui
afb3daaf65
Merge pull request #919 from ailin-nemui/uafs
Use-after-frees
2018-09-04 09:35:47 +02:00
ailin-nemui
7357302993
Merge pull request #920 from irssi/ailin-nemui-urchlay
Add information about crash on unload to perl.txt
2018-09-04 09:35:32 +02:00
ailin-nemui
8261b2a7c8
Merge pull request #922 from dequis/fix-new-config-file-write
Fix /save not working if the config didn't previously exist
2018-09-04 09:35:21 +02:00
ailin-nemui
d5b43003f0
Merge pull request #925 from dequis/mkdir-config-strerror
Improve error message when failing to create the config dir
2018-09-04 09:34:31 +02:00
ailin-nemui
0346638547
Merge pull request #927 from DomT4/perl_mojave
configure: fix Perl detection on macOS Mojave
2018-09-04 09:34:14 +02:00
Dominyk Tiller
04497ed69d
configure: fix Perl detection on macOS Mojave
Apple has significantly changed the way `perl` is structured in macOS
Mojave/10.14, which is due to ship stable this month. The `perl`
restructuring has been an issue for a while but I recently obtained
confirmation from Apple the changes were intentional & consequently not
something that was going to be walked back before Mojave reaches its
stable release.

As of 10.14 the Perl headers are moving inside the SDK, instead of
residing in `/System` directly. There's a flag to tell Clang to look
inside the SDK without projects having to explicitly locate the SDK &
fiddle with the location themselves, which is `-iwithsysroot`, and
that's what `perl` outputs now when `configure` checks
`perl -MExtUtils::Embed -e ccopts`:

```
  -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -fstack-protector  -iwithsysroot /System/Library/Perl/5.18/darwin-thread-multi-2level/CORE
```

The latter bit of that was previously
`-I/System/Library/Perl/5.18/darwin-thread-multi-2level/CORE`. The
problem here is that `configure` filters out flags that start with a
lowercase `i` and consequently the Perl elements fail to build. This
tiny patch fixes that issue, restoring Perl support to `irssi` when
built on macOS 10.14.
2018-09-03 00:36:50 +01:00
dequis
e2e27d1809 Improve error message when failing to create the config dir 2018-09-02 01:20:09 -03:00
dequis
3351c54a2f Fix /save not working if the config didn't previously exist
realpath() was supposed to resolve symlinks but it also fails with
ENOENT (no such file or directory) if the file just isn't there.
2018-09-01 19:12:17 -03:00
ailin-nemui
82702de047
Add information about crash on unload to perl.txt
reported by urchlay: http://urchlay.naptime.net/repos/misc-scripts/tree/selfunload.pl
2018-08-29 09:09:58 +02:00
Will Storey
7b09cac9ec Call functions via signals rather than directly
This allows us to leave functions static.
2018-08-27 21:04:54 -07:00
Will Storey
b11932d24f Make channel event functions static again 2018-08-27 21:04:23 -07:00
Will Storey
0edb64c4dc Add test files to .gitignore 2018-08-27 20:51:18 -07:00
Will Storey
6f38d67d87 Add tests for channel change events 2018-08-27 20:51:18 -07:00
Will Storey
2ccb312b8b Expose functions for testing 2018-08-27 20:51:18 -07:00
Will Storey
2d6033542e Add functions to override irssi dir and config
Setting up to test is easier this way.
2018-08-27 20:51:18 -07:00
Will Storey
04db359a6d Handle topic info numeric separately from topic & topic numeric
As we called the same function for the topic info numeric, we ended up
losing the topic as that numeric does not include it. We now call a
different function to handle this case more carefully. Fixes #903.
2018-08-27 20:51:18 -07:00
Will Storey
bbca1a5a0f Revert "Revert "Flag topic as unset if it is zero length""
This reverts commit 817179a760.
2018-08-27 20:50:17 -07:00
ailin-nemui
1bbd9f393c
Merge pull request #909 from meribold/master
Fix `/save` replacing symlinks with regular files
2018-08-27 10:13:20 +02:00
dequis
7b70d051da wcwidth-wrapper: avoid cast with a tiny wrapper, julia_wcwidth() 2018-08-27 00:14:01 -03:00
dequis
92804cb1aa gui-windows: make the wcwidth_impl global var into static 2018-08-27 00:01:47 -03:00
ailin-nemui
73a89c2a6d
Merge pull request #918 from dequis/unhandled-cap-subcommand-list
irc-cap: Don't show warning on CAP LIST response
2018-08-26 21:27:12 +02:00
dequis
e450a7f8c1 modules_deinit: Fix -Werror=declaration-after-statement 2018-08-24 02:27:45 -03:00
dequis
ade2f87fe5 Fix use after free introduced by the use after free patch 2018-08-24 02:19:42 -03:00
dequis
9dd836b876 Fix "discards ‘const’ qualifier" warnings 2018-08-24 02:11:22 -03:00
ailin-nemui
071ada830b up abi 2018-08-23 14:21:37 +02:00
coypu@sdf.org
610ab2dafa Use-after-frees
Hi folks!

I tried clang-static-analyzer on irssi 1.1.1, it seems like it
finds some things. Here's a diff, but there might be more that you would
want to check, or choose to work differently.

(in special-vars.c, ret is commands->data sometime)

I hope it's not too much trouble if reported as a confidential bug.
Thanks.
2018-08-23 14:13:48 +02:00
ailin-nemui
b2a429bfb4 update line cache on switching wcwidth implementation 2018-08-23 14:03:53 +02:00
ailin-nemui
3ef0b9b3d0 move "auto" to default instead 2018-08-23 14:03:16 +02:00
ailin-nemui
b95ce3e812 add julia's utf8proc wcwidth implementation 2018-08-23 13:23:35 +02:00
dequis
24f1ed7edb irc-cap: Don't show warning on CAP LIST response 2018-08-23 03:22:30 -03:00
dequis
0d8632943d Add a wrapper of wcwidth() that picks the best implementation
This adds a i_wcwidth() function that replaces mk_wcwidth(), and a
'wcwidth_implementation' setting to pick which one it wraps.

Values:

- old: uses our local mk_wcwidth() which implements unicode 5.0
- system: uses the libc-provided wcwidth(), which may be better or worse
  than ours depending on how up to date the system is.
- auto: tests the system one against two characters that became
  fullwidth in unicode 5.2 and 9.0 respectively. If either of them pass,
  pick the system implementation, otherwise pick ours.

It defaults to auto.

mk_wcwidth() is still preferable in some cases, since the way it uses
ranges for fullwidth characters means most CJK blocks are covered even
if their characters didn't exist back then.

The "system" implementation is also wrapped to never return -1, but to
assume those unknown characters use one cell. Quoting the code:

    /* Treat all unknown characters as taking one cell. This is
     * the reason mk_wcwidth and other outdated implementations
     * mostly worked with newer unicode, while glibc's wcwidth
     * needs updating to recognize new characters.
     *
     * Instead of relying on that, we keep the behavior of assuming
     * one cell even for glibc's implementation, which is still
     * highly accurate and less of a headache overall.
     */
2018-08-23 02:30:26 -03:00
ailin-nemui
af1e4d6e34 initialise the line to zeros 2018-08-21 09:21:23 +02:00
ailin-nemui
a19b503a31 properly record line info on empty lines 2018-08-21 00:31:12 +02:00
Joseph Bisch
19d84bc16e
Merge pull request #913 from josephbisch/server-fuzz
Add server-fuzz to fe-fuzz
2018-08-15 14:26:43 -04:00
Joseph Bisch
4f5f62ac63 Add server-fuzz to fe-fuzz
Based on test-796.c in the tests directory.
2018-08-15 11:11:09 -04:00
ailin-nemui
22ce54231e
Merge pull request #911 from irssi/revert-897-horgh/topic-unset
Revert "Flag topic as unset if it is zero length"
2018-08-13 14:59:55 +02:00
ailin-nemui
817179a760
Revert "Flag topic as unset if it is zero length" 2018-08-13 14:43:25 +02:00
Lukas Waymann
7d3eb47ab5 Fix potential rename(3) across file systems
Make sure the temporary file in the `config_write` function is created
on the same file system as the file we `rename` it to later.
2018-08-12 10:55:47 +00:00
Lukas Waymann
764f8215a9 Fix /save replacing symlinks with regular files
A side-effect of 8deb618 is that `/save` may replace configuration files
that are symlinks with regular files.  Fix this by resolving all
symlinks before renaming the temporary file.
2018-08-12 07:22:14 +00:00
ailin-nemui
85df01d133
Merge pull request #901 from dwfreed/patch-1
core/ignore: fix #900
2018-08-06 14:36:20 +02:00
David Phillips
10f6326649 Redraw on SIGWINCH when screen size hasn't changed
Some programs and users send SIGWINCH as a request for the client to redraw
in the event of session detachment/reattachment (e.g. abduco). A well-formed
terminal will only send SIGWINCH when the window size has changed, so there
is no need to optimise this case out.
2018-08-06 14:58:56 +12:00
Doug Freed
f3909b8bcb
core/ignore: fix #900 2018-08-03 17:07:06 -04:00
ailin-nemui
0c94d44f52
Merge pull request #892 from dwfreed/fix-ignore-flags
core/ignore: fix ignore_match_level handling of flag levels
2018-08-02 13:42:24 +02:00
ailin-nemui
ffd7ecc8bf
Merge pull request #897 from horgh/horgh/topic-unset
Flag topic as unset if it is zero length
2018-07-31 09:34:15 +02:00
dequis
b114b11e36 channel_change_topic: change one strlen == 0 to *str == '\0' 2018-07-30 23:45:56 -03:00
ailin-nemui
c7e50f48e5
Merge pull request #886 from vague666/set_item_format
remove = from format because people get confused by it
2018-07-25 11:32:06 +02:00
Will Storey
15840ac27b If we receive a 0 length topic, record it as unset
Fixes #888.

Previously we showed that there was a topic set when using /topic, just
an empty one. This was different than how we show such topics when
initially joining a channel. Now we say that the topic is unset in both
cases.
2018-07-24 18:45:22 -07:00
Will Storey
b9e301362d Ignore vim editor files 2018-07-24 18:30:51 -07:00
Will Storey
0e187cf9cf Fix typo in comment 2018-07-24 18:29:31 -07:00
LemonBoy
88f77cb6f8
Merge pull request #895 from janikrabe/master
Keep errstr set to NULL if errno is not set
2018-07-24 09:38:02 +02:00
Janik Rabe
4f45828ff3
Keep errstr set to NULL if errno is not set
Don't use errno if it is not set and show the default error message
instead. This prevents messages like "SSL handshake failed: Success"
from being shown.
2018-07-18 21:12:38 +03:00
Doug Freed
d84a24444f core/ignore: fix ignore_match_level handling of flag levels 2018-06-29 09:00:38 -04:00
ailin-nemui
b382bd1232
Merge pull request #884 from vague666/ignore_hidden
Added HIDDEN level to ignores
2018-06-15 14:28:09 +02:00
vague666
1ab679bf32 remove = from format because people get confused by it 2018-06-14 20:07:43 +02:00
vague666
ba2554dd14 missing space 2018-06-09 05:55:25 +02:00
vague666
d2e1caf720 simplifying code 2018-06-07 15:17:46 +02:00
vague666
1547248e94 simplify code 2018-06-06 11:03:44 +02:00
vague666
ac3af3fb56 these were bitflags 2018-06-06 10:00:38 +02:00
vague666
db3b671328 Added HIDDEN level to ignores 2018-06-05 15:29:40 +02:00
ailin-nemui
daf6ce86cb
Merge pull request #878 from irssi/revert-873-empty_lines
Revert "record line info on empty lines"
2018-05-08 07:17:10 +02:00
ailin-nemui
631650bd8a
Revert "record line info on empty lines" 2018-05-07 21:22:43 +02:00
ailin-nemui
0a0c755b89
Merge pull request #875 from irssi/ailin-nemui-compile-oldtest
Fix test compilation on old glib
2018-04-24 16:21:58 +02:00
ailin-nemui
3075cbc6fb
Fix test compilation on old glib
e.g. Debian 7
2018-04-24 14:00:30 +02:00
ailin-nemui
e19d6ee219
Merge pull request #873 from ailin-nemui/empty_lines
record line info on empty lines
2018-04-24 13:58:25 +02:00
ailin-nemui
0caf884e92
Merge pull request #871 from dequis/atomic-config-write
Make config_write more atomic to prevent truncation when out of space
2018-04-24 13:58:15 +02:00
ailin-nemui
13b2f349b6
Merge pull request #870 from dequis/fe-cap
Add fe-cap to show messages for CAP-related events in the UI
2018-04-24 13:58:04 +02:00
ailin-nemui
34b31e8451 record line info on empty lines 2018-04-16 16:22:04 +02:00
dx
68302f2d1f
Merge pull request #869 from dequis/missing-cap-3-2-signals-doc
signals.txt: add missing 'server cap new|delete' signals
2018-04-11 19:25:25 -03:00
dequis
8deb6182c6 Make config_write more atomic to prevent truncation when out of space
This is modeled after glib's g_file_set_contents. It doesn't use that
function directly because the writing is done with GIOChannel
streaming-like writes and g_file_set_contents expects the whole thing to
be in-memory.

Main differences with g_file_set_contents:

- complete lack of win32 special casing (cygwin/WSL should work though)
- no fallocate() (linux only, but we don't know the size upfront, anyway)
- always calls fsync (glib skips it on btrfs or when not overwriting)

Other than that, it's the same old mkstemp + fsync + rename.
2018-04-08 15:52:09 -03:00
dequis
d0151fd5a2 Add fe-cap to show messages for CAP-related events in the UI
Replaces cap.pl
2018-04-08 01:26:11 -03:00
dequis
af5ee997e7 Add "server cap req" signal, emitted before requesting caps 2018-04-08 01:24:48 -03:00
dequis
8607a5fa78 signals.txt: add missing 'server cap new|delete' signals
Emitted by cap_emit_signal in irc/core/irc-cap.c, added as part of the
CAP 3.2 PR merged recentlyish.
2018-04-07 21:47:38 -03:00
ailin-nemui
b2b1ac6708
Merge pull request #866 from ailin-nemui/reconnects
This is a simple change which might fix #130

The lookup_servers are also disconnected if the lookup/SSL handshake doesn't succeed in time. I'm not perfectly sure if this is the master fix but it does seem to be an issue that servers can be stuck in lookup, especially for SSL. See the issue for a reproducer
2018-04-06 10:50:58 +02:00
ailin-nemui
4d5a750719
Merge pull request #868 from dequis/libgcrypt-m4
Add libgcrypt.m4 so autogen doesn't require libgcrypt-dev
2018-04-03 09:10:16 +02:00
dequis
407680efdc Add libgcrypt.m4 so autogen doesn't require libgcrypt-dev 2018-04-02 12:30:59 -03:00
ailin-nemui
8bf2162053
Merge pull request #858 from ailin-nemui/sbar
change the statusbar commands so that no accidential status bars are created
2018-04-02 08:36:53 +02:00
ailin-nemui
0c1db8f2ae
Merge pull request #854 from irssi/ahf/otr
OTR support, take 2
2018-03-31 13:04:35 +02:00
dequis
0b2f5b0a1e otr: fix blatant lies in help text 2018-03-31 01:51:47 -03:00
dequis
4501917cae otr: rename module.c to otr-module.c 2018-03-31 01:46:34 -03:00
ailin-nemui
c08685a1a3 also reconnect lookup_servers 2018-03-29 23:24:13 +02:00
ailin-nemui
2830d91a89 use precompiled libotr 2018-03-29 22:41:12 +02:00
ailin-nemui
a3b9e2370f up abi 2018-03-29 22:00:40 +02:00
dequis
7d7c6975ed otr: add target param to the unencrypted 'message private' signal
Same case as the previous commit.
2018-03-28 23:36:03 -03:00
dequis
dd7dc7ca7d otr: fix missing 'target' param in 'message private' signal
Fixes warnings like these on '/msg yourself'

-!- Irssi: critical privmsg_get_query: assertion 'nick != NULL' failed
-!- Irssi: critical query_find: assertion 'nick != NULL' failed
2018-03-28 23:06:47 -03:00
dequis
b52cf1015e otr: add KEY_GEN_STARTED state to avoid starting it twice
Fun race condition there, got this when testing with the jabber
xmlconsole open in bitlbee
2018-03-28 22:40:17 -03:00
ailin-nemui
9fa8c32b9e
Merge pull request #865 from woohooyeah/master
fix build with LibreSSL 2.7.0/2.7.1
2018-03-27 06:47:25 +02:00
Dorian Harmans
17920ab5aa Merge remote-tracking branch 'upstream/master' 2018-03-26 22:50:54 +02:00
ailin-nemui
7fc59d2d10
Merge pull request #862 from ailin-nemui/line_is_null
fix a crash when trying to append to a NULL line
2018-03-26 12:46:04 +02:00
Dorian Harmans
25a44dacf4 fix build with LibreSSL 2.7.0 2018-03-23 21:35:35 +01:00
ailin-nemui
138eca0749 fix build 2018-03-20 18:13:26 +01:00
ailin-nemui
ee04cd503f add disabled txt 2018-03-20 17:59:11 +01:00
ailin-nemui
977c2c0a0d refactor common parts 2018-03-20 17:53:03 +01:00
ailin-nemui
501c150ec2 make new status bar actually work 2018-03-20 17:39:08 +01:00
ailin-nemui
191e0ac84e
Merge pull request #802 from ailin-nemui/test-796
Test for segfault on disconnect during signal processing
2018-03-20 10:30:39 +01:00
ailin-nemui
7d99ff05cd
Merge pull request #803 from ailin-nemui/bug-796-test
Postpone server cleanup until after unref
2018-03-20 10:30:01 +01:00
ailin-nemui
6ffbd0ab54
Merge pull request #859 from ailin-nemui/delkeys
make default keybinds deletable
2018-03-19 16:23:27 +01:00
ailin-nemui
c8191b3315 abi bump 2018-03-19 10:35:42 +01:00
ailin-nemui
61c58b7690 actually check which of add or modify was called 2018-03-19 10:35:39 +01:00
ailin-nemui
d845ee7361 change the statusbar commands so that no accidenal status bars are created 2018-03-19 09:59:22 +01:00
ailin-nemui
77a671c037 update bind help 2018-03-19 09:11:02 +01:00
ailin-nemui
c7ca8102c0 fix a crash when trying to append to a NULL line
reported by @vague666
2018-03-17 13:36:38 +01:00
ailin-nemui
65a139aa9e move no window printing code 2018-03-16 12:54:15 +01:00
ailin-nemui
3f217ae149
Merge pull request #861 from ailin-nemui/stay-hidden
in fact hidden levels should not be re-set when you run /set
2018-03-15 17:23:40 +01:00
Alexander Færøy
8d07f52bae Add ABI check for otr_core module. 2018-03-15 14:01:50 +01:00
ailin-nemui
b7906b8706 in fact hidden levels should not be re-set when you run /set 2018-03-15 10:06:29 +01:00
ailin-nemui
7ec6c500b4 make default keybinds deletable 2018-03-12 17:46:26 +01:00
ailin-nemui
575daf4af7
Merge pull request #852 from dequis/document-cat-seek
Document second parameter (seek position) of /cat command
2018-03-10 13:11:39 +01:00
ailin-nemui
6a3a3873e9
Merge pull request #857 from LemonBoy/config-case
Compare channels/networks fields case-insensitively
2018-03-10 13:11:09 +01:00
LemonBoy
76d958a87f More g_strcmp0 -> g_ascii_strcasecmp 2018-03-09 17:36:28 +01:00
LemonBoy
fb9f5174c2 Compare channels/networks fields case-insensitively
Fixes #856
2018-03-08 20:35:00 +01:00
ailin-nemui
1178f753cf
Merge pull request #855 from ailin-nemui/sync
run syncdocs.sh and syncscripts.sh
2018-03-07 07:33:10 +01:00
ailin-nemui
0b057b4ff4 run syncdocs.sh and syncscripts.sh
Sync startup howto to fd1ed2227d529a7ee00d6206caa871ee40c08b69
Sync scriptassist to (2003020806) 211cd515ec87cf9a5d893e97894c2e4b58952f19
2018-03-07 02:23:02 +01:00
Alexander Færøy
7a4bfc1602 Better wording. 2018-02-27 00:04:56 +01:00
Alexander Færøy
016b42baea Add OTR support.
This patch adds support for the OTR protocol to irssi. This is an import
of the external irssi-otr project that we are now taking over
maintership for.

Major thanks to the original authors of Irssi-OTR: Uli Meis and David
Goulet. Thanks to the OTR community in #OTR on OFTC, thanks to everyone
who have helped testing the patches and submitted UI suggestions.
2018-02-26 23:32:57 +01:00
dequis
097a9f4988 Document second parameter (seek position) of /cat command 2018-02-16 10:09:48 -03:00
ailin-nemui
ad4324d242
Merge pull request #851 from ailin-nemui/theme-block-tree
unblock theme elements when processing finished
2018-02-16 13:57:05 +01:00
ailin-nemui
203f6c5329 also unblock theme elements when processing finished 2018-02-16 13:46:29 +01:00
ailin-nemui
a72e706667
Merge pull request #849 from ailin-nemui/news-update
add additional notes to NEWS
2018-02-15 19:46:32 +01:00
ailin-nemui
0b9beeb01d Merge tag '1.1.1' into integrate/1.1.1 2018-02-15 01:18:37 +01:00
ailin-nemui
666ddc2ecd Merge tag '1.0.7' into integrate/1.0.7 2018-02-15 00:56:08 +01:00
ailin-nemui
5c60e72b11 add additional notes to NEWS
(synced back from github releases)
2018-02-15 00:44:19 +01:00
ailin-nemui
dd2e3e6d1c
Merge pull request #848 from ailin-nemui/align-exhaust
limit alignment padding to a screenful
2018-02-14 21:21:24 +01:00
ailin-nemui
e289d34b9a limit alignment padding to a screenful
Credit to Oss-Fuzz
2018-02-14 15:04:24 +01:00
ailin-nemui
a2bc308dca
Merge pull request #846 from ailin-nemui/padding
improve padding performance
2018-02-13 12:58:07 +01:00
ailin-nemui
a6fcd5432e improve padding performance
Credit to Oss-Fuzz
2018-02-13 12:31:22 +01:00
ailin-nemui
c01f6df957
Merge pull request #844 from CatboxParadox/perms
dcc get shouldn't fail when file attrs can't be changed
2018-02-13 11:10:21 +01:00
Nei
b0d9cb33cd Merge branch 'security' into 'master'
Security

See merge request irssi/irssi!34
2018-02-13 09:51:22 +00:00
ailin-nemui
c2c879e8c5
Merge pull request #845 from ailin-nemui/funny-bug
warn if there is non-portable code in the test-driver
2018-02-13 10:09:06 +01:00
Staron, Martin
3cbcb4fe85 dcc get shouldn't fail when file attrs can't be changed 2018-02-13 08:15:39 +01:00
ailin-nemui
adc812b6b6 add a peculiar bug check to autogen 2018-02-13 00:03:17 +01:00
ailin-nemui
ccfb2dabcf
Merge pull request #832 from ailin-nemui/netsplit-crash
try to make sure the server is still good enough to call ischannel when printing netsplit/join
2018-02-12 10:54:42 +01:00
ailin-nemui
5c5ed64180 try to make sure the server is still good enough to call ischannel when printing netsplit/join 2018-02-09 13:02:00 +01:00
ailin-nemui
946876b1e9
Merge pull request #843 from ailin-nemui/glib238
restore compat with glib <2.40
2018-02-09 11:49:23 +01:00
ailin-nemui
7c31f7adc5
Merge pull request #842 from ailin-nemui/themeoob
Fix oob in escaped theme string
2018-02-08 22:25:03 +01:00
ailin-nemui
16912e1a91 restore compat with glib <2.40 2018-02-08 14:41:08 +01:00
ailin-nemui
e32e9d63c6 Do not read beyond end of escaped string
Credit to OSS-Fuzz
2018-02-08 14:11:23 +01:00
ailin-nemui
02712942e0
Merge pull request #835 from ailin-nemui/theme-stack
protect theme recursion
2018-02-07 21:23:39 +01:00
ailin-nemui
538bd9148e
Merge pull request #840 from ailin-nemui/caps
ensure cap_supported is existent yet
2018-02-07 21:22:18 +01:00
ailin-nemui
1e6d787401 ensure cap_supported is existent yet 2018-02-07 11:07:22 +01:00
Nei
12483c688a Merge branch 'sasl-timeout' into 'security'
Fix Sasl timeout error

See merge request irssi/irssi!33
2018-02-06 06:46:11 +00:00
Nei
a73659e0ea Merge branch 'soperise' into 'security'
Soperise

See merge request irssi/irssi!32
2018-02-06 06:45:54 +00:00
Nei
41e2b535ef Merge branch 'nonick' into 'security'
please give us nicks

See merge request irssi/irssi!31
2018-02-06 06:45:32 +00:00
ailin-nemui
f8fbc1e1ab
Merge pull request #775 from LemonBoy/caps_kv
CAP 3.2 support
2018-02-05 22:29:35 +01:00
ailin-nemui
8183180613
Merge pull request #764 from GinjaNinja32/colorful-input
Add color support for input bar
2018-02-05 22:28:08 +01:00
ailin-nemui
cfcc021c81
Merge pull request #824 from dequis/more-netsplit-revert
Revert more of the netsplit print optimisation to fix crashes
2018-02-05 22:26:32 +01:00
ailin-nemui
3c1bc5f916
Merge pull request #836 from ailin-nemui/resize
Fix resizing of windows when used incorrectly
2018-02-05 22:25:33 +01:00
ailin-nemui
442f6f08b4
Merge pull request #837 from ailin-nemui/no-show
check the error condition of mainwindow_create
2018-02-05 22:24:17 +01:00
ailin-nemui
b33ce255a9 check for negative bound 2018-02-04 11:34:20 +01:00
ailin-nemui
c25e122149
Merge pull request #822 from Manishearth/autocomplete-colon
Insert colons after completing nicks preceded by a list of other autocompleted nicks
2018-02-04 11:28:25 +01:00
ailin-nemui
9c494a88a3
Merge pull request #831 from ailin-nemui/openssl-x509
Do not use X509_STORE on OpenSSL < 1.0.2
2018-02-04 11:27:02 +01:00
ailin-nemui
2185c4ddb3 up abi 2018-02-03 23:19:27 +01:00
ailin-nemui
17aafe974b
Merge pull request #818 from ailin-nemui/test-tap-backward-compat
add backwards compatible code for running tap tests
2018-02-02 14:09:10 +01:00
ailin-nemui
9072e98819 change color -> extents (malloc based) 2018-02-02 13:56:56 +01:00
ailin-nemui
84f03e0146 do not reuse sasl timeout 2018-02-02 11:43:23 +01:00
ailin-nemui
5b5bfef035 check the error condition of mainwindow_create 2018-02-02 10:05:37 +01:00
ailin-nemui
f0bd434eb0 stop the madness 2018-02-02 09:50:08 +01:00
ailin-nemui
4c662acf95 another replaces fix
Credit to OSS-Fuzz
2018-02-01 14:19:40 +01:00
ailin-nemui
12360fb2c0 protect theme recursion 2018-02-01 10:21:31 +01:00
ailin-nemui
6d42c4f949
Merge pull request #834 from williamjacksn/patch-1
Fix typo in help text for /ISON command
2018-01-30 17:39:13 +01:00
William Jackson
7f4de37fbf
Fix typo in help text for /ISON command 2018-01-30 10:31:13 -06:00
ailin-nemui
8028dcff93
Merge pull request #830 from g-elfling/master
Add Shift-Tab completion to gui-readline
2018-01-30 11:20:40 +01:00
ailin-nemui
b5380fff53
Merge pull request #833 from ailin-nemui/rrrreplaces
we probably should not try to replace replaces
2018-01-30 11:20:02 +01:00
ailin-nemui
126189bb37 we probably should not try to replace replaces
Credit to OSS-Fuzz
2018-01-29 09:28:55 +01:00
dequis
a4f99ae746 Revert more of the netsplit print optimisation to fix crashes
Now iterating over all servers to avoid crashes on server_ischannel(),
which is a macro for server->ischannel(), so it dies horribly when it's
null. Doesn't help that IS_IRC_SERVER() always returns true on null.
2018-01-28 23:06:26 -03:00
ailin-nemui
0909d47e5b Check that server is still existent when using /oper 2018-01-25 16:11:31 +01:00
ailin-nemui
e91da9e409 please give us nicks 2018-01-25 16:05:47 +01:00
Ailin Nemui
af087e1103 fix sequence error 2018-01-25 15:08:26 +01:00
Ailin Nemui
f5aa829bd0 Do not use X509_STORE on OpenSSL < 1.0.2 2018-01-25 15:01:55 +01:00
Niklas Luokkala
6dfe5bc836 modified gui-readline based on the suggestions made to the pull request 2018-01-24 22:12:09 +02:00
LemonBoy
260733475c Accept CAPs with an empty value (KEY=) 2018-01-24 10:55:20 +01:00
LemonBoy
b0b40be82e Deprecate gslist_remove_string
It is not used anymore and it leaks memory.
2018-01-24 10:47:40 +01:00
LemonBoy
474ee8ee70 Address some minor stylish nits 2018-01-24 10:45:54 +01:00
Niklas Luokkala
0ba1b1f2a4 removed unnecessary repetition 2018-01-24 01:49:28 +02:00
Niklas Luokkala
d14dbbd093 Add Shift-Tab completion to gui-readline 2018-01-24 00:15:29 +02:00
Manish Goregaokar
12d08f79bb Insert colons after completing nicks preceded by a list of other autocompleted nicks
When pinging two people, typing `nick1<tab> nick2<tab> message` for
autocompletion will get you `nick1: nick2 message`, which is kinda
confusing.

We only insert the colon after the first autocompleted nick,
because if a nick is used in the middle of the sentence it's mentioning
the person but not targeting the message at them.

However, this breaks down when we try to ping a list of people. There
should be a colon in front of each separating the names from the
message. only having a colon at the end of the nick list works too,
but it seems like the IRC convention is to just use multiple colons.

This patch makes it so that autocompleting a nick after a list of
existing autocompleted nicks at the beginning of the message
will include a colon.
2018-01-20 10:25:06 +05:30
ailin-nemui
5bae9a94c8 add backwards compatible code for running tap tests 2018-01-18 12:13:23 +01:00
GinjaNinja32
0f1b3873fe Don't accept pos<0 or len<0 in gui_entry_set_color 2018-01-18 10:08:00 +01:00
GinjaNinja32
13b93c8c05 Apply changes based on review feedback 2018-01-18 10:08:00 +01:00
GinjaNinja32
925ae6e6ad Add color support for input bar 2018-01-18 10:08:00 +01:00
ailin-nemui
243ae4be84
Merge pull request #814 from l2dy/website
Update Irssi website URLs to use https
2018-01-17 11:05:01 +01:00
ailin-nemui
1b7f328385
Merge pull request #816 from ailin-nemui/fix-test-libs
fix test builds on some platforms
2018-01-16 19:12:00 +01:00
Zero King
d983ad1a87 Update Irssi website URLs 2018-01-16 15:23:54 +00:00
ailin-nemui
e7c9b3afb8 fix test builds on some platforms 2018-01-16 11:05:47 +01:00
ailin-nemui
ef8111eebe Merge branch 'maint/1.1.0' into integrate/1.1.0 2018-01-15 21:57:14 +01:00
Joseph Bisch
fd711d7083
Merge pull request #813 from josephbisch/fuzz-theme-load
Add theme_load to fe-fuzz
2018-01-15 12:26:48 -05:00
Joseph Bisch
182673ed05 Add theme_load to fe-fuzz 2018-01-15 11:59:01 -05:00
Joseph Bisch
4512e2683a
Merge pull request #780 from josephbisch/fuzz-event-get-params
Add event_get_params to fe-fuzz
2018-01-15 10:53:21 -05:00
ailin-nemui
7de1378dab
Merge pull request #812 from ailin-nemui/tape-netsplit
revert netsplit print optimisation
2018-01-14 20:51:25 +01:00
ailin-nemui
fa8508404f revert netsplit print optimisation
this reverts part of #465

unfortunately we need to further refine the initial patch

 - when filtering by channel, the whole split is cleaned up nevertheless
 - something similar happens for the netjoins
 - furthermore, we cannot wait only for PUBLIC msgs, j/p/q are equivalently relevant for temporal integrity
2018-01-10 20:12:04 +01:00
LemonBoy
b3b68a4ae7
Merge pull request #808 from vague666/perl_hidden_level
Add perl access to hidden_level in TEXT_BUFFER_VIEW_REC
2018-01-10 12:15:24 +01:00
Jari Matilainen
4041f29711 Changed spaces to tab 2018-01-09 23:16:26 +01:00
Jari Matilainen
f2e73a7046 Add perl access to hidden_level in TEXT_BUFFER_VIEW_REC 2018-01-09 23:15:08 +01:00
ailin-nemui
d4bd0d02fb
Merge pull request #807 from ailin-nemui/fix-real-length-test
fix format_real_length expected test result
2018-01-08 14:33:39 +01:00
ailin-nemui
2e28606635
Merge pull request #806 from ailin-nemui/fix-tests-old-glib
only use nonfatal assertions for GLib that actually supports it
2018-01-08 14:33:12 +01:00
ailin-nemui
3b1ee8e7e7 change expected format_real_length test result
This change from 0 -> 4 was introduced by #697 and is thus expected
2018-01-08 13:47:25 +01:00
ailin-nemui
b8e3c5d00e only use nonfatal assertions for GLib that actually supports it
Fixes tests on Debian 7 and RHEL 6
2018-01-08 13:33:40 +01:00
ailin-nemui
a6663c58d4
Merge pull request #697 from ailin-nemui/rsplit
sideways split support for Irssi
2018-01-08 12:20:20 +01:00
ailin-nemui
f83ba5a5bb
Merge pull request #779 from vague666/activity_hide_target_only_channels_v2
Allow selection of what kind of activity targets to ignore v2
2018-01-08 12:19:46 +01:00
ailin-nemui
2e0815bfd7
Merge pull request #726 from dequis/term-environment-check
Add a startup warning if the TERM var is wrong inside tmux/screen
2018-01-08 12:19:30 +01:00
ailin-nemui
063c85da6c
Fix space in message 2018-01-07 20:01:00 +01:00
LemonBoy
fed791ed91 Fix a problem with multiline responses
Do not clear the whole table every time a response is received.
2018-01-07 12:36:21 +01:00
LemonBoy
4b9fcbc15a Nicer error message when a duplicate CAP in LS 2018-01-07 12:36:21 +01:00
LemonBoy
f3a5355648 Match LS instead of checking the first letter only 2018-01-07 12:36:21 +01:00
LemonBoy
6c45ab0493 Command names may be in lower-case
Do not take the string case into account when comparing the command
name.
2018-01-07 12:36:20 +01:00
LemonBoy
c00132ac4c Simplify the code
Early exit, simpler code.
2018-01-07 12:36:20 +01:00
LemonBoy
9160ddaffd Keep processing the CAPs on error
If an invalid CAP is found we keep going by parsing the next one.
2018-01-07 12:36:20 +01:00
LemonBoy
cd107deb46 Prevent a memory leak
When a CAP DEL is received the key/val pair is not stored in the
hashtable at all so just free them when we're done.
2018-01-07 12:36:20 +01:00
LemonBoy
74409aa850 Miscellaneous fixes
Stylistic stuff, please ignore.
2018-01-07 12:36:20 +01:00
LemonBoy
f683e81880 Prevent a NULL pointer deference
Always create the cap_supported table when a CAP event is received.
2018-01-07 12:36:20 +01:00
LemonBoy
432368bdc6 Use strcmp instead of g_strcmp0
There's no need to use the latter.
2018-01-07 12:36:19 +01:00
LemonBoy
cfc8c9f8e2 Properly dispose the GSList chains
We forgot to free the link and the data, oops.
2018-01-07 12:36:19 +01:00
LemonBoy
f4d811ddf5 Handle CAP {ADD,DEL} from cap-notify
This is the last piece of the puzzle.
2018-01-07 12:36:19 +01:00
LemonBoy
8c87766132 Parse multiline responses to CAP LS
The parsing logic isn't too elegant because of the optional parameter
used for signaling if a response has a continuation one.
2018-01-07 12:36:19 +01:00
LemonBoy
57827ca743 Don't free the hash table if there's none
Glib doesn't like that and shows a harmless warning.
2018-01-07 12:36:18 +01:00
LemonBoy
d21706e1cc Factor out the parsing function
This is also needed for CAP NEW and CAP DEL.
2018-01-07 12:36:18 +01:00
LemonBoy
98836f8b7e Parse the K/V form in CAP LS
This is a prerequisite for the IRC v3.2 compliance.
2018-01-07 12:36:18 +01:00
ailin-nemui
0d5e353ef1
Reword warning message
Include multiplexer name in TERM recommendation
2018-01-07 11:43:13 +01:00
ailin-nemui
d85f867261
Merge pull request #805 from ailin-nemui/exec-empty
fix /exec -o for blank lines
2018-01-07 11:24:00 +01:00
ailin-nemui
e7cce90ec0
Merge pull request #804 from ailin-nemui/patch-1
handle an already used nick different from the one we send
2018-01-07 11:23:42 +01:00
ailin-nemui
e75ee2f74c
Merge pull request #746 from ailin-nemui/hide-lines
Add method to hide lines in a view
2018-01-07 11:23:22 +01:00
dequis
f9c8365999 fe-common-core: fix redeclaration of server_tag_len 2018-01-07 01:45:12 -03:00
dequis
0aafd011c0 Add a startup warning if the TERM var is wrong inside tmux/screen
One of the most common and confusing issues we get in #irssi,
this should help identifying and mitigating it.
2018-01-06 18:04:01 -03:00
ailin-nemui
121a4971e6
Update fe-common-core.c
fix mixed decls
2018-01-06 20:17:51 +01:00
ailin-nemui
4d5982f07d
Update fe-common-core.c 2018-01-06 20:02:31 +01:00
ailin-nemui
ded4e4d98d fix redraw 2018-01-06 01:05:35 +01:00
ailin-nemui
63d8e884dd fix some more 2018-01-06 00:26:48 +01:00
ailin-nemui
4e71a1f485 sideways split support for Irssi
warning:

* may be buggy

This commit adds support for sideways splits into Irssi. To that regard,
there are a number of new commands available

the "R" commands:
	/window new rsplit - make a new sideways split
	/window rshow - show an existing window to the right
	/window rgrow/rshrink/rsize/rbalance
	 - manipulate the size of your sideways split windows

the "D" commands:
	/window dup/ddown/dleft/dright
	 - navigate the windows directionally, as an alternative to
	   /window up/down that you can bind to some key
	/window move dleft/dright - the same for moving

Enjoy!
2018-01-06 00:26:48 +01:00
ailin-nemui
451019d05d make format_real_length left-collecting 2018-01-06 00:26:48 +01:00
ailin-nemui
6e6a96d8c1 fix uaf in signal path 2018-01-06 00:02:48 +01:00
ailin-nemui
b111f038dd fix /exec -o for blank lines
since it is not allowed to send nothing, instead of spamming the status window
with error, send " " instead

Fixes FS#902
2018-01-05 23:19:06 +01:00
ailin-nemui
eb18904840 fix crash in notifylist 2018-01-05 22:13:23 +01:00
ailin-nemui
3c7185c5ad
Update irc-nicklist.c
move altnick check before the nick correction code
2018-01-05 00:38:54 +01:00
Ailin Nemui
c8012b2e57 Merge tag '1.0.6' into integrate/1.0.6 2018-01-05 00:32:29 +01:00
Nei
9df3d92598 Merge branch 'security' into 'master'
Security

Closes GL#18, GL#19, GL#20, GL#21

See merge request irssi/irssi!29
2018-01-04 22:29:29 +00:00
Nei
7bed781622 Merge branch 'fix-gl-20' into 'security'
do not record topic change time when sender is blank

See merge request irssi/irssi!25
2018-01-04 22:19:39 +00:00
Nei
f5c3995fea Merge branch 'fix-gl-21' into 'security'
check if \\c is complete in eval

See merge request irssi/irssi!26
2018-01-04 22:19:34 +00:00
Nei
94f0cbe34a Merge branch 'fix-gl-19' into 'security'
rewrite completion code and check for direct match of separator

See merge request irssi/irssi!27
2018-01-04 22:19:29 +00:00
Nei
cf70fcd4b9 Merge branch 'fix-gl-18' into 'security'
disable variable arguments code

See merge request irssi/irssi!28
2018-01-04 22:19:21 +00:00
ailin-nemui
c9b3d87eb7 Postpone server cleanup until after unref
Add a new signal, server destroyed, that is supposed to run the clean up
tasks of server disconnected. This is so that some structures will stay
around longer.
2018-01-04 23:04:12 +01:00
ailin-nemui
6b0e140996 show destroyed event 2018-01-04 23:03:07 +01:00
ailin-nemui
bffced5498
Update test-796.c
odd space
2018-01-04 21:11:00 +01:00
ailin-nemui
3b7b868bb1 finish test case 2018-01-04 16:43:58 +01:00
ailin-nemui
c7cd49f8d7 first bug case, exposes broken server object in chat-completion 2018-01-04 16:18:07 +01:00
ailin-nemui
5bddfe7b73 add new test skeleton 2018-01-04 14:29:57 +01:00
ailin-nemui
cc17837a9b disable variable arguments code 2018-01-03 15:51:51 +01:00
ailin-nemui
2361d4b1e5 rewrite completion code and check for direct match of separator 2018-01-03 15:35:18 +01:00
ailin-nemui
7a83c63701 check if \\c is complete in eval 2018-01-03 14:09:48 +01:00
ailin-nemui
54d453623d do not record topic change time when sender is blank 2018-01-03 12:45:43 +01:00
Nei
e405330e04 Merge branch 'uaf-modify' into 'master'
Prevent a UAF error during the execution of some commands

See merge request irssi/irssi!24
2018-01-03 10:35:58 +00:00
Joseph Bisch
15705432e1 Remove outdated comment 2018-01-02 20:22:38 -05:00
Joseph Bisch
ef07b3c60c Remove redundant if case 2018-01-02 20:21:07 -05:00
ailin-nemui
48e909dde7
Merge pull request #766 from horgh/horgh/mode-parsing
Fix MODE parameter parsing
2017-12-11 23:48:23 +01:00
ailin-nemui
ba6681de84
Merge pull request #793 from ailin-nemui/tests
Add tests for mode parsing
2017-12-08 12:03:13 +01:00
ailin-nemui
58557d18c4 add separator in travis.yml 2017-12-07 12:08:20 +01:00
ailin-nemui
8b34871ea6 make travis pass despite failures 2017-12-07 12:07:37 +01:00
ailin-nemui
eb9e2ed6fd Update test-irc.c
Fix wrong array (missing an s)
2017-12-07 12:07:37 +01:00
ailin-nemui
d6458304d7 mess with travis 2017-12-07 12:07:37 +01:00
ailin-nemui
d932e6e4b7 add test case for format_real_length 2017-12-07 12:06:20 +01:00
ailin-nemui
43d06369bf move fixtures to outer scope 2017-12-07 12:06:20 +01:00
ailin-nemui
c20eddeb38 add glib testing TAP utilities 2017-12-07 12:06:20 +01:00
Will Storey
1328e1ba08 Add a test program to test mode parsing
This uses GLib's testing framework. It is to test the changes to the
mode parsing for #603.
2017-12-07 12:06:20 +01:00
Will Storey
b0637ad6ea Update NULL comparison style and be C89 compatible 2017-12-02 10:09:52 -08:00
ailin-nemui
02aa8ee8bb
Merge pull request #795 from ailin-nemui/no-mixed-decl
check for declaration-after-statement on travis
2017-11-30 14:33:51 +01:00
ailin-nemui
117f666258
Merge pull request #784 from LemonBoy/clangfmt
Turn the style guide into a clang-format file
2017-11-30 11:41:19 +01:00
ailin-nemui
2b918fd9b8 move decls before code 2017-11-30 11:17:05 +01:00
ailin-nemui
b332d448f7 fix comments 2017-11-30 11:15:47 +01:00
ailin-nemui
b2ca8c0477 check for declaration-after-statement on travis 2017-11-30 11:06:37 +01:00
Will Storey
1a49787ef2 Revert initializing pointers to NULL
To maintain C89 compatibility
2017-11-27 19:37:11 -08:00
ailin-nemui
5637a8df43
Merge pull request #790 from ailin-nemui/mirc-colour
reset colour at comma, like mIRC
2017-11-26 15:18:43 +01:00
ailin-nemui
466d074200
Merge branch 'master' into hide-lines 2017-11-26 00:31:01 +01:00
ailin-nemui
3792bc9ba9
Merge pull request #762 from ailin-nemui/global-history
allow access to global command history when using a specifc history
2017-11-26 00:28:58 +01:00
ailin-nemui
47400d405a
Update formats.c
remove now useless check for ,
2017-11-20 14:17:15 +01:00
ailin-nemui
ba3c5801a4
Update .clang-format
do not indent case deeper
2017-11-16 13:50:48 +01:00
ailin-nemui
3acc72f842 reset colour at comma, like mIRC
Fixes #742 and #740
2017-11-15 16:35:25 +01:00
ailin-nemui
4e8c1548e0
Merge pull request #786 from ailin-nemui/show-inital-nick
show initial nick and name on first start
2017-11-15 16:28:22 +01:00
ailin-nemui
933fac7e9d
Merge pull request #788 from LemonBoy/fix-787
Keep a copy of the strings coming from the config
2017-11-14 08:50:06 +01:00
LemonBoy
7605f67f95 Prevent a UAF error during the execution of some commands
Some arguments were free'd first and then printed, leading to gibberish
being output to screen or a crash.

Found by Joseph Bisch.
Closes: !GL17
2017-11-11 12:37:51 +01:00
LemonBoy
596fa6b51e Take into account Nei's suggestions 2017-11-11 09:14:41 +01:00
ailin-nemui
02c677f467 use enum 2017-11-10 22:02:36 +01:00
LemonBoy
66b2c9bc91 Keep a copy of the strings coming from the config
The "HILIGHT_REC" structure used to keep a pointer to the "servertag"
string, owned by the "CONFIG_NODE", causing a double-free.
2017-11-03 16:37:04 +01:00
Joseph Bisch
532527ffa6 Use gchar and g_strndup in fe-fuzz 2017-11-02 11:56:53 -04:00
Joseph Bisch
f4b89044f0 Fix malloc parameter in fe-fuzz
It is fairly safe to assume that sizeof(char) will always be 1 anyway
and replace the size calculation with a comment explaining the
calculation.
2017-11-02 11:48:30 -04:00
Joseph Bisch
f9d69597ef Remove unnecessary malloc cast in fe-fuzz
We compile this as C code, so the cast is unnecessary.
2017-11-02 11:44:57 -04:00
Jari Matilainen
60c31219a2 Allow selection of what kind of activity targets to ignore
Initialize tagtarget on declaration

move code around for better flow, extra checks for uninitialized values

remove unnecessary item->type checks

don't strdup sign

add braces around if statements, use strcmp0 with single characters and remove g_str_has_prefix

refactoring

changed g_ascii_strcasecmp to g_strcmp0

Add networktag/ shorthand

fixed memory leaks

changed from #@= to ::channels, ::queries and ::dccqueries

check for empty string and continue; if found

fixed bug with empty string check

Clean up code
2017-11-02 15:33:15 +01:00
LemonBoy
5601336798 Turn the style guide into a clang-format file 2017-11-02 09:29:33 +01:00
ailin-nemui
4d6822b1c4 up abi 2017-11-01 15:52:45 +01:00
ailin-nemui
b0fa4dd46d show initial nick and name on first start 2017-11-01 15:51:20 +01:00
ailin-nemui
7e619ed990
Update README.md 2017-10-30 16:54:32 +01:00
ailin-nemui
ac642806b9 Merge pull request #781 from ailin-nemui/syncdocs
remove lynx from autogen and make a separate syncdocs script
2017-10-26 16:35:57 +02:00
ailin-nemui
96c7f68b35 clean up file path after move 2017-10-26 16:15:25 +02:00
ailin-nemui
8c0e0c81ee run syncscripts.sh 2017-10-25 16:23:14 +02:00
ailin-nemui
ca3498d42d move some files into subdirs 2017-10-25 16:22:57 +02:00
Will Storey
8843d4f77d Strip : from <trailing> parameters
This is to fix #601. The function used to extract the mode string
assumed that ":" would only occur in a particular spot. This lead to the
possibility that ":" could be treated as part of things like nicknames
or mode arguments, where it should have been stripped as part of
protocol escaping.
2017-10-24 19:51:01 -07:00
ailin-nemui
9a3c0bce48 add a script to sync scripts as well 2017-10-24 22:22:39 +02:00
ailin-nemui
245bd5579c remove lynx from autogen and make a separate syncdocs script 2017-10-24 22:12:34 +02:00
ailin-nemui
87550541e7 fix key length checker to actually do some work 2017-10-24 22:04:13 +02:00
Joseph Bisch
84fc92635a Add event_get_params to fe-fuzz 2017-10-24 13:27:11 -04:00
ailin-nemui
cfa51c5ae2 Merge pull request #770 from horgh/horgh/rm-unused-function
Remove a couple unused functions
2017-10-23 14:29:34 +02:00
ailin-nemui
816df6d153 Merge tag '1.0.5' into integrate/1.0.5 2017-10-22 15:39:18 +02:00
ailin-nemui
d17d71f547 Merge branch 'master' into HEAD 2017-10-22 15:32:27 +02:00
ailin-nemui
54aceeca08 Merge pull request #777 from horgh/horgh/readme-typo
Fix a typo in the readme
2017-10-22 10:59:50 +02:00
Will Storey
956bc592a9 Fix a typo in the readme
Also uppercase Irssi in a couple places, and escape an argument not
shown due to looking like an HTML tag
2017-10-21 22:00:11 -07:00
Nei
0557a2cb7c Merge branch 'security' into 'master'
Security

Closes GL#12, GL#13, GL#14, GL#15, GL#16

See merge request irssi/irssi!23
2017-10-20 13:31:26 +00:00
Nei
495bdd11cf Merge branch 'fix-16' into 'security'
Prevent a OOB read when parsing IRCNet ! channels

See merge request irssi/irssi!22
2017-10-20 13:23:28 +00:00
Nei
c46bed1e17 Merge branch 'fix-gl-15' into 'security'
Don't proceed with cmd_msg if there was an error splitting msg

See merge request irssi/irssi!21
2017-10-20 15:22:32 +02:00
Nei
3c2ae68073 Merge branch 'fix-dcc' into 'security'
fix dcc

See merge request irssi/irssi!20
2017-10-20 15:22:32 +02:00
Joseph Bisch
0840eaec7b Make split functions return an array with NULL instead of NULL
This avoids undefined behavior in functions that call these split
functions and expect an array back instead of just a NULL pointer.
2017-10-20 15:22:32 +02:00
Nei
f4c8018cfb Merge branch 'fix-gl-13' into 'security'
Fix use after free when channel is destroyed inbetween being synced

See merge request irssi/irssi!19
2017-10-20 15:22:32 +02:00
Joseph Bisch
beb2beba3b Revert "Don't proceed with cmd_msg if there was an error splitting msg"
This reverts commit bd83852d646de28f2e0fe01efe7c9236aa4074d4.
2017-10-20 15:22:32 +02:00
Nei
e37d9b2497 Merge branch 'fix-gl-12' into 'security'
fix out of bounds read in compress_colors

See merge request irssi/irssi!18
2017-10-20 15:22:32 +02:00
Joseph Bisch
73d7b9d775 Don't proceed with cmd_msg if there was an error splitting msg
There may be cases (such as if target or server->nick is very long)
where the split_message function returns NULL, indicating an error. To
avoid a potential segfault, we now check to see if splitmsgs is NULL.
2017-10-20 15:22:32 +02:00
ailin-nemui
9f0dc4766c fix dcc issue 2017-10-20 15:14:10 +02:00
LemonBoy
45dfe2ba38 Prevent a OOB read when parsing IRCNet ! channels
Make sure the string has enough data.
Fixes #16
2017-10-19 11:17:56 +02:00
LemonBoy
28d0b8c746 Merge pull request #771 from paultownsend/issue-120
Add alternate_nick as a network-specific property
2017-10-18 12:00:56 +02:00
Paul Townsend
7b94015f8f Changes based on comments in pull #771. 2017-10-14 17:42:45 +01:00
Will Storey
233be9f580 Mark net_ip_compare() deprecated 2017-10-13 18:30:57 -07:00
Will Storey
da59fd7c2d Revert "Delete unused function net_ip_compare()"
This reverts commit cb5f3cba1f.
2017-10-13 18:28:26 -07:00
ailin-nemui
7b97edf9d1 Merge pull request #769 from horgh/horgh/error-check-server-connect
Set host to an empty string on error
2017-10-13 17:14:47 +02:00
Edward Tomasz Napierała
b2865d6bcc Merge pull request #772 from trasz/capsicum
Merge a bunch of Capsicum-related tweaks.
2017-10-13 10:33:43 +01:00
Edward Tomasz Napierala
711b2d7df7 Document that one needs to change the awaylog_file path for "/away"
to work with Capsicum.
2017-10-11 23:53:41 +01:00
Edward Tomasz Napierala
9895e7b28a Silence down a warning that would appear on "/away" in Capability mode. 2017-10-11 23:52:36 +01:00
Edward Tomasz Napierala
5c0b4aeb05 Sort Capsicum headers. 2017-10-11 23:31:26 +01:00
Edward Tomasz Napierala
1e66cbd62e Improve Capsicum stdio limits to fix terminal state on exit. 2017-10-11 23:13:06 +01:00
Paul Townsend
87955b69cb Add alternate_nick as a network-specific property. 2017-10-11 21:33:14 +01:00
Edward Tomasz Napierala
17b195021d Bump default capsicum_port_max to 9999.
This is needed for servers like ssl.efnet.org, which, per default
config, listen on 9999.
2017-10-11 14:34:38 +01:00
Will Storey
174adee9dd Always initialize the host string
This also removes a wordy comment
2017-10-10 18:21:05 -07:00
Will Storey
b8b90c76d4 Delete unused function net_connect() 2017-10-09 13:20:44 -07:00
Will Storey
3b3939b146 Delete commented out CYGWIN define 2017-10-09 13:14:59 -07:00
Will Storey
cb5f3cba1f Delete unused function net_ip_compare() 2017-10-09 13:14:34 -07:00
Will Storey
4ccff71f67 Set host to an empty string on error
While investigating #317, I noticed that it was possible we would access
an uninitialized buffer due to failing to check the return value of
net_ip2host(). This is done in several places. To make such uses safe,
set the host buffer to an empty string on error. It is possible callers
could be improved by handling the error in each spot, but this gives us
some safety.
2017-10-09 12:50:04 -07:00
Joseph Bisch
2edd816e7d
Fix segfault in query_remove_all
It is possible for rec to be NULL in query_remove_all, resulting in a
segfault. So return without doing anything if rec is NULL.
2017-10-08 22:02:44 -04:00
ailin-nemui
49ace3251b fix uaf in chanquery module
the chanquery needs to be removed in any case if a channel rec is
destroyed, regardless of any state

Fixes GL#13
2017-10-08 19:48:11 +02:00
ailin-nemui
016fd34436 Merge pull request #763 from rbisewski/master
Improvements to statusbar documentation and help text.
2017-10-08 18:50:19 +02:00
ailin-nemui
00c80cb6fc fix out of bounds read in compress_colors
Reported by Hanno Böck.

Fixes GL#12
2017-10-07 20:48:53 +02:00
Edward Tomasz Napierala
40ae8f5fa6 Limit capsicum rights to stdio.
This requires FreeBSD fix (https://reviews.freebsd.org/D12622)
to work properly.
2017-10-07 03:28:02 +01:00
ailin-nemui
5da0b73a12 up abi 2017-10-06 15:31:59 +02:00
ailin-nemui
deac66f33c add a key binding to erase history entries
it is possible to delete the current history entry using the
erase_history_entry key binding
2017-10-06 15:31:52 +02:00
ailin-nemui
16d68a86ca add two XSFuncs to manipulate command history entries
it is possible to use Irssi::UI::Window::get_history_entries to save the
history entries, load_history_entries to load entries into the command
history and delete_history_entries to remove history entries (for example
to remove history selectively)
2017-10-06 15:02:15 +02:00
ailin-nemui
1fd285dccf refactor history to use history_entries list
this allows access to the global history even when a using /window history
named or /set window_history on, and you want to recall something from one
of the other windows' histories.

usage (default): ctrl+up/down
2017-10-06 14:58:47 +02:00
Robert Bisewski
4b42eca7c5 minor word correction 2017-10-06 07:58:27 -05:00
Robert Bisewski
84bfea52af adjusting text content as per the pull-request discussion 2017-10-06 07:54:54 -05:00
Robert Bisewski
0883ff8d32 reverting changes to startup HOWTO 2017-10-06 07:13:30 -05:00
Robert Bisewski
e1e632d31e correcting and expanding content of statusbar help text 2017-10-05 22:47:15 -05:00
ailin-nemui
92dbb1895b Merge pull request #754 from ailin-nemui/fix-752
add new function to set the position in bytes
2017-10-05 11:31:44 +02:00
ailin-nemui
1f7de4c3bd up abi 2017-10-05 11:31:33 +02:00
Robert Bisewski
32f33e7bb3 improving HOWTO document 2017-10-03 22:49:21 -05:00
ailin-nemui
8dfeca57ed hidden lines 2017-09-21 14:20:31 +02:00
ailin-nemui
0468c5d912 add new function to set the position in bytes
fixes #752
2017-09-15 13:47:01 +02:00
ailin-nemui
fc8c15fcd7 Merge pull request #755 from trasz/capsicum
Get rid of the zombies in Capsicum capability mode.
2017-09-15 13:40:17 +02:00
ailin-nemui
ca1172b4d0 Merge pull request #751 from LemonBoy/ssl-refcnt
Increment the X509_STORE refcount during the connection
2017-09-13 10:32:38 +02:00
Edward Tomasz Napierala
624ef4a696 Get rid of the zombies in Capsicum capability mode.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-09-12 14:19:17 +01:00
LemonBoy
36d8b974fc Restore compatibility with old OpenSSL versions
Let's implement X509_STORE_up_ref on our own.
2017-09-11 17:19:20 +02:00
LemonBoy
96d5a4669d Increment the X509_STORE refcount during the connection
OpenSSL doesn't increment the reference count when the store is assigned
to a SSL_CTX.
2017-09-11 16:32:36 +02:00
ailin-nemui
24ad80177b Merge pull request #735 from trasz/capsicum
Add Capsicum support
2017-09-10 19:43:59 +02:00
Edward Tomasz Napierala
b529e1a9df Fix /back in Capsicum capability mode.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-09-08 13:14:24 +01:00
ailin-nemui
be70fa5eb7 Merge pull request #741 from LemonBoy/complete
Complete filenames ending with a slash
2017-09-05 10:17:22 +02:00
LemonBoy
7086eae650 Complete filenames ending with a slash 2017-08-29 21:03:42 +02:00
Edward Tomasz Napierala
245a3fd4c1 Add docs/capsicum.txt.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-28 06:13:28 +01:00
ailin-nemui
13471013f3 Merge pull request #737 from ailin-nemui/fix-733
Revert "Merge pull request #452 from LemonBoy/terminfo-cup"
2017-08-10 16:49:32 +02:00
Edward Tomasz Napierala
edee0ba587 Don't error out on failure to load default certificate store.
This restores the previous behaviour.

Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-10 14:35:34 +01:00
Joseph Bisch
1ad38b27e4 Merge pull request #738 from trasz/master
Fix indentation; no functional changes.
2017-08-09 10:29:10 -04:00
Edward Tomasz Napierala
4bcbb41113 Fix indentation; no functional changes.
(Take two.)

Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-09 14:36:06 +01:00
Edward Tomasz Napierala
0c49a84ffb Add back some ifdefs.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-09 11:06:36 +01:00
ailin-nemui
7051bd744e Merge pull request #736 from paultownsend/issue-684
Update /CONNECT and /SERVER syntax tags (-ssl -> -tls).
2017-08-07 15:53:32 +02:00
ailin-nemui
947682e5dd Revert "Merge pull request #452 from LemonBoy/terminfo-cup"
Fixes #733. The fix outlined in #452 had adverse effects for the
following reason. The code removed the restoration path that would go on
the code path from kill SIGTSTP. The problem is this: When Irssi is not
running in a controlling parent (like a shell), the TSTP will in fact be
ignored. In that case, there is no process sending a CONT either and
thus the screen state never gets restored. Luckily, the patch in #457 is
sufficient to prevent the problem in #450 (which lead to the development
of #452). To that end, we do end up with potentially calling
terminfo_cont twice but that is better than not calling it at all.

This reverts commit b1ffd5f647, reversing
changes made to 9cb0419435.
2017-08-07 15:29:17 +02:00
Paul Townsend
788e47032f Update /CONNECT and /SERVER syntax tags (-ssl -> -tls). 2017-08-05 21:02:35 +01:00
Edward Tomasz Napierala
5db6caee0d Attempt to fix build by adding the forgotten header.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-01 01:50:16 +01:00
Edward Tomasz Napierala
96f4fe10c6 Change the way we load default CA certificates so it works with Capsicum.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-01 01:47:45 +01:00
Edward Tomasz Napierala
aeaa420ad3 Clean up includes a bit.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-08-01 01:15:25 +01:00
Edward Tomasz Napierala
5551b4fe95 Update copyrights.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-30 11:47:08 +01:00
LemonBoy
663a8e7154 Merge pull request #734 from trasz/master
Don't compute log_dir_create_mode in three different places.
2017-07-30 10:06:38 +02:00
Edward Tomasz Napierala
8bb392a3f4 Hook up capsicum.h and fe-capsicum.h to autotools.
This hopefully fixes Travis build.

Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-30 01:27:33 +01:00
Edward Tomasz Napierala
a29eeaa9f2 Fix trailing slash handling for capsicum_irclogs_path.
This is mostly an anti-footshooting measure, but still.

Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
7f2697d307 Cosmetics.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
8c04c2be14 Fix build without Capsicum.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
12e2c46d6a Add wrappers to reduce #ifdefs.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
c00d4753ae Restrict port range available in capability mode.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
e777ae986d Working autolog.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
241dd66ac1 Working /log and /rawlog.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
939371aa1d Fix warnings.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
1f57ceec4c Prevent the user from calling "/capsicum enter" twice.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
509eca76f0 Make DNS work in capability mode.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
f4546be7ec Reorder functions.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
925240155e Config file support for "capsicum" parameter.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
cec68557aa /connect works - although only with IP addresses. 2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
3200c381db Rename to "/capability enter" and "/capability status".
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
d5d45c29b8 Add capability mode error/success messages.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
56c94570b4 Implement /cap_enter.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
f468008b25 Make autotools detect Capsicum.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 23:52:23 +01:00
Edward Tomasz Napierala
2907a82b44 Fix vertical alignment in ./configure --help output.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 12:32:15 +01:00
Edward Tomasz Napierala
2914498b29 Consistency: use FALSE instead of 0.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 10:42:53 +01:00
Edward Tomasz Napierala
08dc6734b9 When rawlog open fails, there's no point in trying to write. Don't.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-29 10:40:42 +01:00
Edward Tomasz Napierala
42b5e89f6e Add missing diagnostics for rawlog open().
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-28 04:49:14 +01:00
Edward Tomasz Napierala
e08e2bd87a Don't compute log_dir_create_mode in three different places.
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
2017-07-28 03:56:02 +01:00
ailin-nemui
437fbef6eb Merge pull request #719 from LemonBoy/sasl-disable-none
Setting sasl_mechanism to '' disables the auth
2017-07-26 10:57:05 +02:00
LemonBoy
d971c02920 Allow the user to clear the sasl-related fields
There was no easy way for the user to disable the SASL authentication or
to clear the username/password once the network was created.
Closes #718
2017-07-25 22:53:33 +02:00
ailin-nemui
6552fe4c6c Merge pull request #731 from tpepin96/master
Clarified ambiguous autogen.sh error
2017-07-22 12:50:11 +02:00
Tristan
2bc1038661 Clarified ambiguous autogen.sh error
autogen.sh now instructs the user to install elinks or lynx if needed
2017-07-21 20:40:29 -04:00
Ailin Nemui
91ec153c7f Merge tag '1.0.4' into integrate/1.0.4 2017-07-05 21:31:43 +02:00
Ailin Nemui
b12f86e5e6 Merge pull request #729 from irssi/clear-help
More accurately describe clear
2017-07-05 21:18:22 +02:00
ailin-nemui
8b82d741b7 Update clear.in 2017-07-05 19:39:17 +02:00
Nei
5e26325317 Merge branch 'security' into 'master'
Security

Closes #10

See merge request !17
2017-07-05 14:47:30 +00:00
Nei
f67e766934 Merge branch 'fix-11' into 'security'
Correct GHashTable usage

See merge request !16
2017-07-05 14:46:42 +00:00
Nei
fc3615120d Merge branch 'fix-10' into 'security'
Check return value of localtime

See merge request !15
2017-07-05 14:46:24 +00:00
ailin-nemui
5d7e54cd99 More accurately describe clear 2017-07-05 14:30:11 +02:00
ailin-nemui
73b851c39c correct GHashTable usage 2017-07-04 16:11:45 +02:00
ailin-nemui
1656dc1e54 Merge pull request #653 from ailin-nemui/regexex
Enable UTF8 in GRegex
2017-07-03 09:53:09 +02:00
Nei
29ebac987d Check return value of localtime
Fixes #10
2017-06-29 13:48:44 +00:00
ailin-nemui
2b209348bd Merge pull request #722 from dequis/back-to-the-future
parse_time_interval: Allow negative time in settings
2017-06-23 18:00:51 +02:00
ailin-nemui
28d82c8f63 Merge pull request #709 from osm/master
Escape nicks during nick completion when expand_escapes is enabled
2017-06-23 18:00:04 +02:00
ailin-nemui
9d32636ebe Merge pull request #703 from vague666/server_modify_port
Allow -port <num> or irc.host.tld <num> in /server add
2017-06-23 17:59:02 +02:00
ailin-nemui
c56919768e Merge pull request #721 from dequis/unexpected-exits
term-terminfo: Avoid switching out of alt screen on unexpected exits
2017-06-23 17:58:40 +02:00
ailin-nemui
1ff2f61f09 Merge pull request #723 from ailin-nemui/odd_expand_escapes
fix weird n-fold unescaping in expand_escapes
2017-06-23 17:58:08 +02:00
ailin-nemui
b483ec5faa test trusty container 2017-06-23 12:15:25 +02:00
ailin-nemui
bbf8b86074 remove const 2017-06-22 09:33:33 +02:00
Oscar Linderholm
12d671a056 Escape nicks during nick completion when expand_escapes is enabled
Fixes #693
2017-06-21 10:40:47 +02:00
ailin-nemui
02a5d1a00b fix weird n-fold unescaping 2017-06-19 14:09:02 +02:00
ailin-nemui
1fc170ee11 Merge branch 'master' into regexex 2017-06-19 11:06:24 +02:00
dequis
7354a74c65 parse_time_interval: Allow negative time in settings
This splits sign parsing out of parse_time_interval_uint() so that the
negative sign is applied outside of the unsigned context where the
number parsing is done, and after all the checks that it's lower than
(1 << 31)

This fixes issues with settings like `server_reconnect_time`,
`server_connect_timeout` and `lag_max_before_disconnect`, which accepted
-1 as a valid value.
2017-06-17 15:34:36 -03:00
dequis
4b1c60b2ec term-terminfo: Avoid switching out of alt screen on unexpected exits
Perl sucks and kills the whole process when there's a version mismatch
in Perl_xs_handshake(). Our atexit handler catches the exit and
deinitializes the terminal, removing the error.

This commit uses the 'quitting' global variable which is set when irssi
is voluntarily quitting, and avoids sending TI_rmcup, which restores the
original screen and makes the error invisible.
2017-06-17 13:47:13 -03:00
ailin-nemui
9d3cfe1069 Merge pull request #712 from irssi/extend-list-help
Update list.in
2017-06-07 00:20:11 +02:00
ailin-nemui
3246001fb4 Merge pull request #715 from dequis/lastlog-glist-performance
Performance improvements for /lastlog
2017-06-07 00:15:45 +02:00
ailin-nemui
5e9a3ad80c Merge pull request #714 from dequis/dcc-fname-gcc-warnings
fe-dcc-(get|send): Fix some -Wpointer-compare with newer gcc
2017-06-07 00:15:05 +02:00
Ailin Nemui
fc67fd5111 Merge tag '1.0.3' 2017-06-06 21:11:44 +02:00
dequis
e498265328 Performance improvements for /lastlog -before
This avoids the use of g_list_find() to find if a match was already
added to the list of results, by checking the last two added matches
instead.

Checking just the last match isn't enough because a NULL match is added
as a separator (shown as -- in the UI)
2017-06-05 18:11:47 -03:00
dequis
0e44ea8916 Performance improvements for /lastlog with big result sets
This applies to "/lastlog" with no filters (or with filters that don't
filter a lot) and with large amounts of text in the scrollback.

Test case:

    /exec seq 1 500000
    /lastlog -file log.txt

Thanks to morning for reporting this.
2017-06-05 18:10:27 -03:00
dequis
52bb06ccd9 fe-dcc-(get|send): Fix some -Wpointer-compare with newer gcc
The warning itself:

>warning: comparison between pointer and zero character constant [-Wpointer-compare]

Harmless stuff as far as I can tell.

The fix adds a null check that probably isn't needed. The old code that
compared against '\0' worked a lot like a null check so it makes sense
to keep that, while also adding the intended check for empty string.

This was visible with "/dcc close send a" showing an empty filename.
The equivalent for get didn't show the filename in the format string.
2017-06-05 15:58:43 -03:00
Ailin Nemui
fb08fc7f1a Merge remote-tracking branch 'gitlab/security' 2017-06-05 15:12:16 +02:00
ailin-nemui
4edfccfce7 get rid of new_text 2017-06-05 13:46:43 +02:00
ailin-nemui
48899a123d Update iregex-gregex.c
add 2 comments about new_string
2017-06-05 10:23:16 +02:00
ailin-nemui
00354c3651 Update iregex-gregex.c
make helper functions static
2017-06-05 10:10:38 +02:00
Jari Matilainen
f28c64a3dc Make backward compatible with ssl flags 2017-06-04 19:47:30 +02:00
ailin-nemui
78a390f479 abi up 2017-06-04 19:03:40 +02:00
Jari Matilainen
e84adeca15 change ternary operator to if/else statements, add default ssl port support 2017-06-04 17:41:38 +02:00
ailin-nemui
79bbca4644 Refactor regex and implement UTF8 mode for GRegex
- with non-unicode byte to Private Use Area A mapping
- move all ifdefs to iregex.h file only
2017-06-04 00:52:53 +02:00
ailin-nemui
31b9d115b0 Merge pull request #706 from dequis/parse-uint
Add parse_uint function to improve integer overflow handling
2017-06-02 14:47:38 +02:00
dx
7843586323 Merge pull request #713 from josephbisch/fix-fe-fuzz-link
Use CXX for fe-fuzz linking
2017-06-02 01:53:09 -03:00
Joseph Bisch
1ce9e07be0
Use CXX for fe-fuzz linking 2017-06-01 23:59:19 -04:00
Nei
200eb5922e Merge branch 'fix-gl9' into 'security'
Fix dcc_request where addr is NULL

See merge request !13
2017-05-30 19:39:06 +00:00
Nei
84503427b0 Merge branch 'fix-gl8' into 'security'
Fix oob read of one byte in get_file_params_count

See merge request !12
2017-05-30 19:38:19 +00:00
ailin-nemui
2d0a9b4ca3 Merge pull request #711 from ailin-nemui/24bit-reset
do not reset true colour bit on colour reset
2017-05-30 13:14:10 +02:00
Joseph Bisch
528f51bfbe
Fix dcc_request where addr is NULL 2017-05-29 14:53:26 -04:00
Joseph Bisch
30a92754bb
Fix oob read of one byte in get_file_params_count{,_resume}
We can use continue to handle cases such as:
"ab<space><space>c"
2017-05-29 14:43:24 -04:00
ailin-nemui
601be18774 Update list.in
Add a more detailed paragraph about service bots

Fixes #699

I would like to add another paragraph about how freenode is 
broken and spits at you the whole list instead of empty list 
if you attempt to use network side filtering......
2017-05-29 11:07:06 +02:00
ailin-nemui
d61c54c32b do not reset true colour bit on colour reset
fixes #710
2017-05-27 00:12:54 +02:00
ailin-nemui
aac20b1513 Merge pull request #707 from mh-source/patch-1
dcc.in: fixed typo 'resolved' -> 'resolves'
2017-05-18 15:39:02 +02:00
dequis
632b0ce5e6 Add parse_uint function to improve integer overflow handling
Originally found by oss-fuzz (issue 525) in get_ansi_color using ubsan.
After a lot of analysis I'm 99% sure this isn't security relevant so
it's fine to handle this publicly.

The fix is mainly adding a function that does it right and use it
everywhere. This is harder than it seems because the strtol() family of
functions doesn't have the friendliest of interfaces.

Aside from get_ansi_color(), there were other pieces of code that used
the same (out*10+(*in-'0')) pattern, like the parse_size() and
parse_time_interval() functions, which are mostly used for settings.
Those are interesting cases, since they multiply the parsed number
(resulting in more overflows) and they write to a signed integer
parameter (which can accidentally make the uints negative without UB)

Thanks to Pascal Cuoq for enlightening me about the undefined behavior
of parse_size (and, in particular, the implementation-defined behavior
of one of the WIP versions of this commit, where something like signed
integer overflow happened, but it was legal). Also for writing
tis-interpreter, which is better than ubsan to verify these things.
2017-05-18 00:21:11 -03:00
mh
5045f4766a dcc.in: fixed typo 'resolved' -&gt; 'resolves'
n/t
2017-05-17 12:17:27 +02:00
Jari Matilainen
0c26aeb9fc Make sure port is only set on /server modify if specified 2017-05-15 23:07:01 +02:00
ailin-nemui
10cea61696 Merge pull request #702 from vague666/server_modify_notls
Added support for -notls and -notls_verify
2017-05-14 09:44:26 +02:00
ailin-nemui
81cf8d8813 Update fe-server.c 2017-05-14 09:43:38 +02:00
ailin-nemui
476f19f123 Merge pull request #705 from ailin-nemui/nicklist-performance
improve nicklist performance
2017-05-14 09:40:55 +02:00
Jari Matilainen
4a6fbdbe78 Spaces to tabs 2017-05-14 03:01:01 +02:00
ailin-nemui
371eb7f505 expand macro 2017-05-12 16:27:33 +02:00
ailin-nemui
787e192567 improve nicklist performance 2017-05-12 13:36:48 +02:00
Jari Matilainen
783458e9ba Added code comments 2017-05-11 14:08:45 +02:00
Jari Matilainen
25f9c71f69 Allow -port <num> or irc.host.tld <port num> in /server add and /server modify 2017-05-11 14:02:23 +02:00
Jari Matilainen
f060292a9c Added braces 2017-05-11 11:17:14 +02:00
Jari Matilainen
dbde9f0fe3 Added support for -notls and -notls_verify 2017-05-11 10:57:24 +02:00
Joseph Bisch
689e80c087 Merge pull request #701 from josephbisch/add-fuzz-patch
Add fuzz.diff for fuzzing with afl
2017-05-08 13:51:38 -04:00
Joseph Bisch
0c760b0c1b
Add fuzz.diff for fuzzing with afl
Authored by dx.
2017-05-08 13:45:13 -04:00
ailin-nemui
f24ad9a366 Merge pull request #698 from ailin-nemui/master
detect Netbsd terminfo
2017-05-04 12:31:32 +02:00
ailin-nemui
c8a19e1124 detect Netbsd terminfo
fixes #694
2017-05-04 12:27:23 +02:00
LemonBoy
c890ecafa0 Merge pull request #686 from josephbisch/remove-history-wrap
Don't allow command history to wrap around
2017-04-11 15:19:19 +02:00
ailin-nemui
411ace0a15 Merge pull request #688 from josephbisch/fix-687
Add syntax info for completion
2017-04-07 21:22:48 +02:00
Joseph Bisch
3297fafcd9
Add syntax info for completion
Allows syntax info to be picked up and displayed by help command.

Fixes #687
2017-04-07 12:56:46 -04:00
Joseph Bisch
405136440c
Remove over_counter
We are no longer using over_counter for any functional purpose, so
remove it.
2017-04-07 08:20:28 -04:00
Joseph Bisch
7c86575b02
Don't allow command history to wrap around
This changes the behavior of the command history to avoid wrapping back
to the bottom once the top of the history is reached.
2017-04-06 20:27:39 -04:00
ailin-nemui
3f69e71804 Merge pull request #685 from josephbisch/fix-462
Fix strange history behavior when history is empty
2017-04-06 17:37:23 +02:00
Joseph Bisch
41776d71f7
Fix strange history behavior when history is empty
If text is being entered and then the user presses the up arrow
followed by the down arrow, the expected behavior is to return to the
text being entered. Prior to this commit that was not the case.

Fixes #462
2017-04-05 11:00:25 -04:00
ailin-nemui
590056d3c3 Merge pull request #677 from rrebello/openssl-misc
OpenSSL support detection and documentation fixes
2017-04-04 12:27:50 +02:00
Joseph Bisch
d5e23f97a7 Merge branch 'off-by-one-fix' into 'master'
Fix off by one error with char_expandos

See merge request !11
2017-03-31 20:06:14 +00:00
Joseph Bisch
a4cc4e0ad7
Fix off by one error with char_expandos 2017-03-31 15:37:48 -04:00
ailin-nemui
3d4ba86a91 Merge pull request #680 from Stevie-O/slow-startup-with-glib-2.49.3
Fix slow startup with glib 2.49.3
2017-03-21 15:47:16 +01:00
Stephen Oberholtzer
2b9be6e2ed Intentation/whitespace fixes
Change several instances of space-indentation to tabs, matching the
surrounding code.
2017-03-21 10:27:39 -04:00
Stephen Oberholtzer
70f9db3cbd Fix delay at startup when running against glib 2.49.3+
In glib v2.49.3, an optimization was made to eliminate certain
unnecessary wakeups.  (The specific change was made in
e4ee3079c5afc3c1c3d2415f20c3e8605728f074). Before this change, the
first call to g_main_iteration would always complete immediately.
In Irssi, this effectively reversed the order of the main loop, causing
the reload_config check and the dirty_check to run *before* the first
blocking call to g_main_iteration.

With the new logic, the first g_main_iteration call now blocks,
preventing the screen from being refreshed until the user starts typing
or a timer goes off.  (It also delays processing of SIGHUP, but I
expect that is not a common situation.)

This commit reorders the main loop to wait at the end of the loop,
rather than the beginning, addressing the problem.

(This closes Debian bug #856201.)
2017-03-21 09:37:23 -04:00
Rodrigo Rebello
449b8a4589 Remove outdated information from INSTALL
Disabling SSL support is no longer an option.
2017-03-20 16:10:03 -03:00
Rodrigo Rebello
a720c3b5ef Get back to using pkg-config to check for OpenSSL
Commit 6300dfec7 removed the option to disable SSL support from the
configure script since it became a requirement, but it also removed the
use of pkg-config for finding the OpenSSL library and its dependencies.

This had the unfortunate consequence of breaking the correct detection
of library flags in many static linking scenarios. In some cases, for
example, OpenSSL might have been built with zlib, which requires `-lz`
to be passed to the linker when doing a static link of the irssi
executable. Thus, pkg-config becomes an invaluable tool in such
situations, since no guessing work is needed as the OpenSSL .pc file
provides all the necessary flags.

So, this commit re-inserts the PKG_CHECK_MODULES macro in the configure
script when looking for OpenSSL. The test using AC_CHECK_LIB remains,
but only as a last resort in case the one using pkg-config fails.

Also, because the macro AM_PATH_GLIB_2_0 contains an unconditional call
to PKG_PROG_PKG_CONFIG, the OpenSSL checks are moved so that they come
after the Glib ones in order to avoid doubly checking for the pkg-config
binary (PKG_CHECK_MODULES skips that check if it has been performed
before, but PKG_PROG_PKG_CONFIG does not).
2017-03-20 16:09:43 -03:00
ailin-nemui
966efced3c up abi ver 2017-03-14 09:54:28 +01:00
ailin-nemui
e2e02160cd Merge pull request #645 from LemonBoy/keyboard-misc
Timeout feature for keys
2017-03-11 23:11:43 +01:00
Ailin Nemui
440881a129 Merge branch 'integrate/1.0.2' 2017-03-10 18:03:12 +01:00
Ailin Nemui
3930f91edc tag as 1.0.2
(cherry picked from commit 2a53853f36)
2017-03-10 18:03:01 +01:00
ailin-nemui
22bc7fcc39 amend forgotten fix
(cherry picked from commit 0ada284a25)
2017-03-10 17:19:17 +01:00
ailin-nemui
24e62b0525 Merge pull request #652 from LemonBoy/trailing-arg
Properly check the command arguments in tail place.

commit 5a92a3926fab4def4bcb7d14642b93184eeb4f71
Merge: 647ef193a8 e4601b4b43
Rebased: e4601b4b43 dc99f8d7a5
2017-03-10 17:18:59 +01:00
Ailin Nemui
77b2631c78 Merge branch 'netjoin-timeout' into 'master'
fe-netjoin: remove irc servers on "server disconnected" signal

Closes #7

See merge request !10
2017-03-10 17:18:18 +01:00
ailin-nemui
26187d1d30 Merge pull request #669 from dequis/expand-double-backslash
expand_escape: expand double backslash as a backslash
2017-03-10 17:13:20 +01:00
dequis
93c158d815 expand_escape: expand double backslash as a backslash 2017-03-08 20:01:05 -03:00
ailin-nemui
d57c64adeb Merge pull request #667 from ailin-nemui/fix-dcc-get
fix dcc get

fixes #656
2017-03-08 09:45:40 +01:00
ailin-nemui
ddba68ad77 Merge pull request #659 from ailin-nemui/foreach_dontspam
make foreach send commands
2017-03-07 23:37:23 +01:00
ailin-nemui
7bd1b80687 fix dcc get
fixes #656
2017-03-07 23:27:08 +01:00
ailin-nemui
7f4fd60370 Merge pull request #666 from irssi/revert-658-dcc-autoaccept
Revert "Quote the filename when dcc requests are auto accepted."
2017-03-06 11:28:26 +01:00
ailin-nemui
62fd3ac180 Revert "Quote the filename when dcc requests are auto accepted." 2017-03-06 11:27:55 +01:00
ailin-nemui
29f27cfb39 Merge pull request #658 from LemonBoy/dcc-autoaccept
Quote the filename when dcc requests are auto accepted.
2017-03-04 21:43:21 +01:00
LemonBoy
dc99f8d7a5 Properly check the command arguments in tail place.
A command requiring an argument and given in tail position would not
raise an error but silently set the value to the empty string ''.
2017-03-04 21:37:13 +01:00
Nei
7ef22687f9 Merge branch 'd-minor' into 'master'
Prevent some potential null-pointer deferences.

See merge request !9
2017-03-04 20:35:17 +00:00
ailin-nemui
647ef193a8 Merge pull request #661 from Stevie-O/master
Fix Segfault when unloading a script that registers for 'script destroyed' signals

Closes #660
2017-03-02 09:46:01 +01:00
Stephen Oberholtzer
5c4e6304ce Don't emit the script destroyed signal before script is actually destroyed
The script unloading code originally worked like this:

1. Destroy package
2. Emit 'script destroyed' signal
3. Unhook script's signal handlers

If a script added a 'script destroyed' signal handler, unloading
that script would cause the 'script destroyed' signal to be sent to the
(already destroyed) package.  This would cause a script error, which would
trigger a script unload, which would start the whole process over again,
until we run out of heap or stack space and segfault.

This commit simply reorders the operations so that the 'script destroyed'
signal is sent *after* the script is fully destroyed.
2017-02-28 23:48:56 -05:00
dequis
7c09b72848 fe-netjoin: remove irc servers on "server disconnected" signal 2017-02-27 23:43:37 -03:00
ailin-nemui
fa1a056291 Merge pull request #647 from dequis/fix-early-ison-take-2
notify-ison: Don't send ison before the connection is done
2017-02-27 14:45:41 +01:00
ailin-nemui
9aaa6449a0 make foreach send commands 2017-02-27 13:43:58 +01:00
LemonBoy
027acffb42 Handle file names with quotes.
Let's repurpose escape_string and make it more flexible by letting us
choose the characters to escape.
2017-02-22 11:49:09 +01:00
LemonBoy
db85ab7c90 Quote the filename when dcc requests are auto accepted.
PR #453 forces the user to quote the filenames given to /DCC commands
when they contain spaces but the autoget functionality didn't get
updated so the filename was always passed without quotes.

Closes #656.
2017-02-21 15:17:37 +01:00
LemonBoy
9cae98e642 Execute what's left in the input queue when the timeout expires.
Similar to how vim behaves.
2017-02-18 15:57:55 +01:00
ailin-nemui
540639e0fa Merge pull request #627 from LemonBoy/ssl-expiry
Check whether the client certificate is expired.
2017-02-15 15:49:00 +01:00
ailin-nemui
e133465168 Merge pull request #649 from LemonBoy/issue-559
Do not alias /server <hostname> to /server connect <hostname>
2017-02-15 15:36:53 +01:00
LemonBoy
c067f8e99b Do not alias /server <hostname> to /server connect <hostname>
Closes #559.
2017-02-14 23:02:05 +01:00
LemonBoy
98ead50b4e Prevent some potential null-pointer deferences.
Spotted by our friend scan-build.
2017-02-14 14:46:14 +01:00
dequis
15736ba5ab notify-ison: Don't send ison before the connection is done 2017-02-11 00:07:03 -03:00
ailin-nemui
653c7fb05a Merge pull request #622 from ailin-nemui/starttls
provide net_start_ssl api
2017-02-06 12:38:20 +01:00
ailin-nemui
28df637055 provide net_start_ssl api
fixes #615
2017-02-05 23:08:42 +01:00
ailin-nemui
ff5dd3673e Merge pull request #628 from LemonBoy/openssl-compat
Support OpenSSL 1.1.0.
2017-02-05 22:20:31 +01:00
ailin-nemui
6e4edbc9b6 Merge pull request #639 from ear/themes-inline-doc-consistency
Make themes' docs more consistent.
2017-02-05 22:19:19 +01:00
ailin-nemui
1cfe9652a7 Merge branch 'integrate/1.0.1' 2017-02-05 20:21:20 +01:00
ailin-nemui
99e3d8a30b tag as 1.0.1 2017-02-05 20:20:35 +01:00
Paolo
8ec9230827 Make themes' docs more consistent.
Mentioning "sb-item" was misleading in that there is no such template,
nor any occurrence of that exact string anywhere else in the source.

In going from `sb-item` to `"sb"` I am following the pattern established
in a couple of comments above:

	"msgownnick" specifies the styling …
	"ownmsgnick" specifies …
2017-02-05 01:04:03 +01:00
Nei
97b182089e Merge branch 'dub-the-wub' into 'master'
Prevent a memory leak during the processing of the SASL response.

See merge request !8
2017-02-03 20:29:22 +01:00
ailin-nemui
ca5e9bd623 Merge pull request #624 from ailin-nemui/mail_pl
sync mail.pl
2017-02-03 20:29:02 +01:00
LemonBoy
1f42d2aa95 Merge pull request #619 from hannob/master
perl_parse needs NULL terminated parameter list.
2017-02-03 20:28:35 +01:00
LemonBoy
d63c93ae1d Merge pull request #613 from ailin-nemui/fix_completion
fix regression in completion
2017-02-03 20:28:25 +01:00
LemonBoy
929c947747 Merge pull request #608 from tijko/master
Follow g_strsplit with call to g_strfreev
2017-02-03 20:28:12 +01:00
ailin-nemui
3a3b34fc63 Merge pull request #606 from or4n/master
Fix syntax on /help SERVER example
2017-02-03 20:27:41 +01:00
ailin-nemui
8dbf186ad6 Merge pull request #604 from dequis/solaris
Add OPENSSL_NO_EC for solaris 11.3, see issue #598
2017-02-03 20:27:18 +01:00
ailin-nemui
7c49ed2d17 Merge pull request #602 from McDutchie/master
make irssi --with-perl build with separate object directory
2017-02-03 20:26:30 +01:00
LemonBoy
73e8a065bd Support OpenSSL 1.1.0.
- X509_get_notBefore becomes X509_get0_notBefore
- X509_get_notAfter becomes X509_get0_notAfter
- ASN1_STRING_data becomes ASN1_STRING_get0_data (and drops the const)
- The whole library is now initialized by OPENSSL_init_ssl

Closes #597
2017-02-03 13:29:19 +01:00
Nei
aab24cf4a4 Merge branch 'dub-the-wub' into 'master'
Prevent a memory leak during the processing of the SASL response.

See merge request !8
2017-02-03 11:49:16 +00:00
ailin-nemui
1ee25d2286 Merge pull request #590 from LemonBoy/hi-minor
Minor cleanup in the highlighting signal.
2017-01-31 14:18:48 +01:00
ailin-nemui
4031b92b9b Merge pull request #626 from ailin-nemui/textbuffer_monospace
support storing and replaying the monospace attribute in textbuffer
2017-01-31 14:17:44 +01:00
LemonBoy
19c5178996 Prevent a memory leak during the processing of the SASL response.
We also get rid of an allocation in the process of doing so.
2017-01-24 22:19:50 +01:00
LemonBoy
697dd19d88 Check whether the client certificate is expired.
Right now we only warn the user, the connection keeps going.
Fixes #211
2017-01-22 21:58:55 +01:00
ailin-nemui
228f487a69 Merge pull request #625 from ailin-nemui/chirssi
implement break_wide
2017-01-21 19:51:34 +01:00
ailin-nemui
cb0bbe3f2a Merge pull request #624 from ailin-nemui/mail_pl
sync mail.pl
2017-01-21 03:52:31 +01:00
ailin-nemui
876c1dd93e implement break_wide
for more pleasant east asian mixed display
2017-01-20 10:32:23 +01:00
ailin-nemui
bc1ff509d2 sync mail.pl 2017-01-19 21:09:56 +01:00
ailin-nemui
7fd3c1f50a Merge pull request #621 from josephbisch/fix-glib-2.0-pkg-config
Fix glib-2.0.m4 so that $PKG_CONFIG doesn't break configure script
2017-01-16 19:15:43 +01:00
ailin-nemui
f8a3885706 Merge pull request #620 from josephbisch/suppress-printf-fallback
Add SUPPRESS_PRINTF_FALLBACK
2017-01-16 19:14:54 +01:00
Joseph Bisch
6221ce5206
Fix glib-2.0.m4 so that $PKG_CONFIG doesn't break configure script
If $PKG_CONFIG contains a space, then the test may not work, so
surround with quotation mark characters. (for example,
PKG_CONFIG="pkg-config --static" breaks configure before this commit).
2017-01-16 13:04:54 -05:00
Joseph Bisch
c8dafe2a76
Add SUPPRESS_PRINTF_FALLBACK
There are some cases (such as fuzzing with fe-fuzz) where suppressing
printf output may be desirable.
2017-01-16 12:56:33 -05:00
LemonBoy
6e36ddc6b7 Merge pull request #619 from hannob/master
perl_parse needs NULL terminated parameter list.
2017-01-15 22:33:42 +01:00
Hanno
677fb1f55c
perl_parse needs NULL terminated parameter list. 2017-01-15 22:20:23 +01:00
LemonBoy
305b02fc63 Merge pull request #613 from ailin-nemui/fix_completion
fix regression in completion
2017-01-13 22:36:44 +01:00
Alexander Færøy
7732bbed5e Merge pull request #610 from josephbisch/fe-fuzz
Add frontend for fuzzing
2017-01-13 00:16:30 +01:00
Joseph Bisch
fe1ea4b80a
Fix fe-fuzz nits 2017-01-12 18:11:09 -05:00
dx
fcd3ec467f Merge pull request #614 from irssi/revert-605-fix-early-ison
Revert "Don't reset wait_cmd during connection registration (fixes early ISON)"
2017-01-10 03:10:19 -03:00
dx
b15c27cc63 Revert "Don't reset wait_cmd during connection registration (fixes early ISON)" 2017-01-10 03:09:36 -03:00
Joseph Bisch
abdae2d5fc
Don't duplicate module-formats.* in fe-fuzz 2017-01-09 08:19:01 -05:00
ailin-nemui
17fc77565e fix regression in completion
fixes #609
2017-01-09 13:19:37 +01:00
LemonBoy
38ea52d09f Merge pull request #608 from tijko/master
Follow g_strsplit with call to g_strfreev
2017-01-08 21:55:39 +01:00
Joseph Bisch
cf46907256
Add frontend for fuzzing
Use the following configure command:

$ ./configure --with-fuzzer --with-fuzzer-lib=/path/to/libFuzzer.a \
      CC=clang CXX=clang++

Places an irssi-fuzz in src/fe-fuzz/ after build.

Also can specify SANFLAGS to override the chosen sanitizer flags
(defaults to "-g -fsanitize=address -fsanitize-coverage=trace-pc-guard").
2017-01-07 20:01:07 -05:00
Tim Konick
5917bc6f75 Follow g_strsplit with call to g_strfreev 2017-01-07 14:31:35 -08:00
LemonBoy
7c09b72a26 Merge pull request #605 from dequis/fix-early-ison
Don't reset wait_cmd during connection registration (fixes early ISON)
2017-01-07 22:00:00 +01:00
ailin-nemui
f97d5f2648 Merge pull request #603 from dequis/pining-for-the-freenodes
NEWS: Avoid explicitly mentioning freenode in the pinning examples
2017-01-06 17:08:06 +01:00
ailin-nemui
808a11a150 Merge pull request #606 from or4n/master
Fix syntax on /help SERVER example
2017-01-06 17:00:09 +01:00
dequis
69e112fbd1 NEWS: Avoid explicitly mentioning freenode in the pinning examples
They have proper certs, so using them as an example is wrong.
Particularly worse since they started using letsencrypt recently so
every server has a different cert and pubkey.

We'll figure out how to link this from the release notes later.
2017-01-06 12:57:53 -03:00
dequis
1831a8e1a7 Don't reset wait_cmd during connection registration (fixes early ISON) 2017-01-06 12:49:56 -03:00
Lasse Toimela
ef9da295cd Fix syntax on /help SERVER example 2017-01-06 17:47:08 +02:00
ailin-nemui
a40d4492d2 Merge pull request #604 from dequis/solaris
Add OPENSSL_NO_EC for solaris 11.3, see issue #598
2017-01-06 16:37:09 +01:00
dequis
752f484c6c Add OPENSSL_NO_EC for solaris 11.3, see issue #598
Original patch by 'Slarky'

According to that ticket, the next major version of solaris won't need
this. Consider reverting this when solaris 11.3 stops being relevant.
2017-01-06 11:47:24 -03:00
ailin-nemui
1d621d4643 Merge pull request #602 from McDutchie/master
make irssi --with-perl build with separate object directory
2017-01-06 12:44:02 +01:00
Martijn Dekker
c9c45e4f89 make irssi --with-perl build with separate object directory
irssi 1.0.0 will not build if Perl is enabled and a separate
object code directory is used. The problem was a relative path
to an internal Perl dependency in four Makefile.PL.in files.
2017-01-06 12:24:36 +01:00
ailin-nemui
cbb931ed1d continue head 2017-01-05 13:14:15 +01:00
ailin-nemui
ea7826b0ec tag as 1.0.0 2017-01-05 13:10:08 +01:00
ailin-nemui
fdd870695b Merge branch 'gregex-gerror' 2017-01-05 13:07:30 +01:00
ailin-nemui
33107be748 fix GRegex GError problem 2017-01-05 13:06:55 +01:00
ailin-nemui
f852ccae68 Merge branch 'integrate/0.8.21' 2017-01-03 14:39:10 +01:00
ailin-nemui
a96b1e4328 Merge tag '0.8.21' into integrate/0.8.21 2017-01-03 14:38:02 +01:00
ailin-nemui
7cac354161 tag as 0.8.21 2017-01-03 14:24:55 +01:00
ailin-nemui
6c6c42e3d1 Merge branch 'security' into 'master'
See merge request !7
2017-01-03 13:53:40 +01:00
ailin-nemui
78ba05985d Merge branch 'security' into 'master'
See merge request !7
2017-01-03 13:44:58 +01:00
Nei
7a112e0217 Merge branch 'master' into 'security'
Sync to master

See merge request !6
2017-01-03 13:30:39 +01:00
ailin-nemui
01163710e7 Merge pull request #585 from ailin-nemui/win_seq
g_sequence backing for window list
2017-01-03 12:45:50 +01:00
ailin-nemui
5787e2b4be Merge pull request #412 from LemonBoy/pcre-regexp
Use GLib's regexp interface (backed by PCRE)
2017-01-03 12:45:27 +01:00
Ailin Nemui
1f72b8e66a up abi version 2017-01-03 12:29:52 +01:00
Ailin Nemui
f5cbbebc2e switch for gregex and regex.h 2017-01-03 12:29:11 +01:00
Nei
1b99299ed2 Merge branch 'percent_flag' into 'security'
fix %[

See merge request !5
2017-01-02 17:01:47 +00:00
Nei
124bcd4804 Merge branch '4-use-after-free-when-receiving-numeric-432-invalid-nick' into 'security'
avoid server_disconnect

See merge request !4
2017-01-02 17:01:29 +00:00
Nei
c3cca5ecf3 Merge branch '1-null-pointer-dereference-in-irc_nickcmp_rfc1459' into 'security'
bail out if nick is NULL

See merge request !3
2017-01-02 17:01:05 +00:00
Nei
24d2d039b5 Merge branch '3-out-of-bounds-read-with-invalid-utf8-in-term_addstr' into 'security'
Fix oob read on invalid utf8 in term_addstr

See merge request !2
2017-01-02 17:00:44 +00:00
Nei
7daa7a6aa9 Merge branch '2-out-of-bounds-read-of-one-byte-with-x1b-48-in-truecolor-builds' into 'security'
check for end of string in ansi 48

See merge request !1
2017-01-02 17:00:15 +00:00
LemonBoy
5dcf291f21 Use the RAW flag when building the regexps.
Also, plugged a memory leak when retrieving the match position.
2017-01-02 17:50:14 +01:00
LemonBoy
5eaead761f Rebase against master. 2017-01-02 17:50:14 +01:00
LemonBoy
3fcd3cd2b9 Remove the regexp_compiled field.
It was made redundant by the introduction of the pointer to the GRegex
structure.
Silence the compiler warning in textbuffer.c about preg being
initialized by setting it to NULL.
2017-01-02 17:50:14 +01:00
LemonBoy
b5a727c87c Remove unused references to regex.h
Also remove the prototype for regex_match since it has been removed.
2017-01-02 17:50:14 +01:00
LemonBoy
8e5db471e4 Use GLib's regexp interface (backed by PCRE) 2017-01-02 17:50:14 +01:00
ailin-nemui
91f48c6f0e Merge pull request #586 from LemonBoy/fix-580
Process the nick changes in queries before the PRIVMSG is handled.
2017-01-02 14:44:07 +01:00
ailin-nemui
29ad8baedc Merge pull request #593 from LemonBoy/crown
Welcome TheLemonMan on board
2017-01-02 14:39:30 +01:00
ailin-nemui
ae48e49350 Merge pull request #594 from LemonBoy/sasl_fail_fix
Make sure SASL was actually requested before failing.
2017-01-02 14:39:01 +01:00
LemonBoy
7e22d051ae Make sure SASL was actually requested before failing. 2017-01-01 23:08:38 +01:00
LemonBoy
0a46a1664a Add myself to the core team members 2016-12-22 16:17:43 +01:00
ailin-nemui
77ff8f5b74 Merge pull request #514 from LemonBoy/sasl_fail
Add an option to stop the connection when SASL fails.
2016-12-21 15:29:26 +01:00
ailin-nemui
07050e2a3c Merge pull request #587 from ailin-nemui/sbar_crash
add assertion to statusbar_read_group
2016-12-21 15:28:17 +01:00
ailin-nemui
9151f87145 remove some for loops 2016-12-20 21:40:18 +01:00
ailin-nemui
9a018a782c sort windows_seq helpers to top 2016-12-20 21:36:56 +01:00
ailin-nemui
03f5dc63fe nits 2016-12-20 21:33:51 +01:00
ailin-nemui
9004265e54 clean up window_refnum_{prev,next} 2016-12-20 21:01:16 +01:00
ailin-nemui
7dc2f832c1 fix %[ 2016-12-20 16:41:57 +01:00
ailin-nemui
2f59fe2062 add some sequence helper functions 2016-12-19 22:03:46 +01:00
Joseph Bisch
8007e9e61d
Fix oob read on invalid utf8 in term_addstr 2016-12-19 15:52:05 -05:00
ailin-nemui
508d2e0860 bail out if nick is NULL in irc_query_find
Closes #1
2016-12-19 21:41:47 +01:00
ailin-nemui
77aab79057 avoid server_disconnect
Closes #4
2016-12-19 21:16:37 +01:00
LemonBoy
a39e210ea8 Minor cleanup in the highlighting signal. 2016-12-18 15:46:48 +01:00
LemonBoy
7a7f6abc16 Prevent a UaF by calling server_disconnect in a signal handler. 2016-12-15 22:41:57 +01:00
LemonBoy
0d6add02cf Process the nick changes in queries before the PRIVMSG is handled.
Otherwise we end up with the message in the status window since the
frontend knows jack shit about the casemapping option when it tries to
find the associated window for the query.
2016-12-15 19:36:44 +01:00
ailin-nemui
7b856d628b check for end of string in ansi 48 2016-12-15 18:01:26 +01:00
ailin-nemui
59242cb595 add assertion to statusbar_read_group
fix #564
2016-12-15 16:59:38 +01:00
ailin-nemui
365097319f manually redraw the activity list on expose only
might speed up /foreach query /unquery
2016-12-13 03:19:00 +01:00
ailin-nemui
560283ba4e g_sequence backing for window list 2016-12-13 01:04:26 +01:00
LemonBoy
4ccffd85ff Expose 'sasl_success' to the perl side. 2016-12-12 21:41:07 +01:00
LemonBoy
91c9e871c7 Add an option to stop the connection when SASL fails. 2016-12-12 21:41:06 +01:00
ailin-nemui
eb20a6c846 Merge pull request #548 from ailin-nemui/buf-fix
sync buf.pl
2016-09-26 14:08:55 +02:00
Alexandre Morignot
dee7825f05 handle an already used nick different from the one we send 2015-02-10 16:37:41 +01:00
Ailin Nemui
98435fb464 support storing and replaying the monospace attribute in textbuffer 2014-09-11 18:15:06 +02:00
562 changed files with 28639 additions and 10656 deletions

38
.clang-format Normal file
View file

@ -0,0 +1,38 @@
# IndentPPDirectives: AfterHash
# SpaceInParentheses: false
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
BinPackArguments: true
BinPackParameters: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Linux
BreakBeforeTernaryOperators: false
ColumnLimit: 100
IndentCaseLabels: false
IndentWidth: 8
IndentWrappedFunctionNames: true
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
Cpp11BracedListStyle: false
MaxEmptyLinesToKeep: 1
PointerAlignment: Right
SortIncludes: false
SpaceAfterCStyleCast: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpacesInSquareBrackets: false
TabWidth: 8
UseTab: ForIndentation

127
.github/workflows/abicheck.yml vendored Normal file
View file

@ -0,0 +1,127 @@
on: [pull_request]
name: abicheck
env:
build_options: -Dbuildtype=debug -Denable-true-color=yes -Dwith-proxy=yes -Dc_args=-DPERL_EUPXS_ALWAYS_EXPORT
prefix: /usr/local
apt_build_deps: ninja-build libutf8proc-dev libperl-dev libotr5-dev libglib2.0-dev
get_pip_build_deps: pip3 install 'setuptools<66'; pip3 install wheel; pip3 install 'meson<0.59.0'
getabidef_def: getabidef() { awk '$1=="#define" && $2=="IRSSI_ABI_VERSION" { print $3 }' "$1"/include/irssi/src/common.h; }
jobs:
build-base-ref:
runs-on: ubuntu-latest
outputs:
base_abi: ${{ steps.out.outputs.base_abi }}
steps:
- name: set PATH
run: |
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: prepare required software
run: |
sudo apt update; sudo apt install $apt_build_deps
eval "$get_pip_build_deps"
- name: checkout base ref
uses: actions/checkout@main
with:
path: base.src
ref: ${{ github.base_ref }}
- name: build base ref
run: |
meson Build.base base.src $build_options
ninja -C Build.base
DESTDIR=$PWD/base ninja -C Build.base install
- id: out
run: |
# print versions and abi versions
eval "$getabidef_def"
base_abi=$(getabidef base$prefix)
echo base abi : $base_abi
./base$prefix/bin/irssi --version
echo base_abi=$base_abi >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: base.inst
path: base
retention-days: 1
build-merge-ref:
runs-on: ubuntu-latest
outputs:
merge_abi: ${{ steps.out.outputs.merge_abi }}
steps:
- name: set PATH
run: |
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: prepare required software
run: |
sudo apt update; sudo apt install $apt_build_deps
eval "$get_pip_build_deps"
- name: checkout merge ref
uses: actions/checkout@main
with:
path: merge.src
- name: build merge ref
run: |
meson Build.merge merge.src $build_options
ninja -C Build.merge
DESTDIR=$PWD/merge ninja -C Build.merge install
- id: out
run: |
# print versions and abi versions
eval "$getabidef_def"
merge_abi=$(getabidef merge$prefix)
echo merge abi : $merge_abi
./merge$prefix/bin/irssi --version
echo merge_abi=$merge_abi >> $GITHUB_OUTPUT
- uses: actions/upload-artifact@v4
with:
name: merge.inst
path: merge
retention-days: 1
check-abi-diff:
runs-on: ubuntu-latest
needs:
- build-merge-ref
- build-base-ref
env:
base_abi: ${{ needs.build-base-ref.outputs.base_abi }}
merge_abi: ${{ needs.build-merge-ref.outputs.merge_abi }}
steps:
- name: prepare required software
run: |
sudo apt update; sudo apt install abigail-tools
- name: fetch base build
uses: actions/download-artifact@v4
with:
name: base.inst
path: base
- name: fetch merge build
uses: actions/download-artifact@v4
with:
name: merge.inst
path: merge
- run: |
# abipkgdiff
abipkgdiff -l base merge >abipkgdiff.out && diff_ret=0 || diff_ret=$?
echo "diff_ret=$diff_ret" >> $GITHUB_ENV
cat abipkgdiff.out
- uses: actions/upload-artifact@v4
with:
path: abipkgdiff.out
- run: |
# Check if no changes are needed
if [ "$diff_ret" -ne 0 ]; then
if [ "$base_abi" -lt "$merge_abi" ]; then
echo "::warning ::abigail found changes and ABI changed from $base_abi to $merge_abi"
exit 0
else
echo "::error ::Looks like the ABI changed but the IRSSI_ABI_VERSION did not"
exit $diff_ret
fi
else
if [ "$base_abi" -ne "$merge_abi" ]; then
echo "::error ::abigail found no changes yet the IRSSI_ABI_VERSION changed. Is this correct?"
exit 1
else
: "No changes detected and IRSSI_ABI_VERSION untouched"
exit 0
fi
fi

180
.github/workflows/check.yml vendored Normal file
View file

@ -0,0 +1,180 @@
on:
push:
branches:
- master
pull_request:
name: Check Irssi
env:
apt_build_deps: ninja-build libutf8proc-dev libperl-dev libotr5-dev libglib2.0-dev
get_pip_build_deps_meson: pip3 install setuptools${setuptools_ver}; pip3 install wheel; pip3 install meson${meson_ver}
build_options_meson: -Dwith-proxy=yes -Dwith-bot=yes -Dwith-perl=yes -Dwith-otr=yes
prefix: ~/irssi-build
jobs:
dist:
runs-on: ubuntu-latest
env:
meson_ver: <0.63.0
setuptools_ver: <66
steps:
- name: prepare required software
run: |
sudo apt update && sudo apt install $apt_build_deps
eval "$get_pip_build_deps_meson"
patch ~/.local/lib/python3.12/site-packages/pkg_resources/__init__.py <<- PATCH
--- __init__.py 2024-12-16 20:37:46.733230351 +0100
+++ __init__.py 2024-12-16 20:38:42.479554540 +0100
@@ -2188,7 +2188,8 @@ def resolve_egg_link(path):
return next(dist_groups, ())
-register_finder(pkgutil.ImpImporter, find_on_path)
+if hasattr(pkgutil, 'ImpImporter'):
+ register_finder(pkgutil.ImpImporter, find_on_path)
if hasattr(importlib_machinery, 'FileFinder'):
register_finder(importlib_machinery.FileFinder, find_on_path)
@@ -2345,7 +2346,8 @@ def file_ns_handler(importer, path_item,
return subpath
-register_namespace_handler(pkgutil.ImpImporter, file_ns_handler)
+if hasattr(pkgutil, 'ImpImporter'):
+ register_namespace_handler(pkgutil.ImpImporter, file_ns_handler)
register_namespace_handler(zipimport.zipimporter, file_ns_handler)
if hasattr(importlib_machinery, 'FileFinder'):
PATCH
- uses: actions/checkout@main
- name: make dist
run: |
./utils/make-dist.sh
- uses: actions/upload-artifact@v4
with:
path: irssi-*.tar.gz
retention-days: 1
install:
runs-on: ${{ matrix.os }}
env:
CC: ${{ matrix.compiler }}
needs: dist
continue-on-error: ${{ contains(matrix.flags, 'FAILURE-OK') }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, ubuntu-latest]
compiler: [clang, gcc]
flags: [regular]
setuptools_ver: [<66]
include:
- os: ubuntu-22.04
meson_ver: ==0.53.2
setuptools_ver: <51
- os: ubuntu-latest
meson_ver: <0.63.0
- os: ubuntu-latest
flags: meson-latest FAILURE-OK
steps:
- name: fetch dist
uses: actions/download-artifact@v4
- name: set PATH
run: |
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: prepare required software
env:
meson_ver: ${{ matrix.meson_ver }}
setuptools_ver: ${{ matrix.setuptools_ver }}
run: |
sudo apt update && sudo apt install $apt_build_deps
eval "$get_pip_build_deps_meson"
curl -SLf https://github.com/irssi-import/actions-irssi/raw/master/check-irssi/render.pl -o ~/render.pl && chmod +x ~/render.pl
- name: unpack archive
run: tar xaf artifact/irssi-*.tar.gz
- name: build and install with meson
run: |
# ninja install
cd irssi-*/
meson Build $build_options_meson --prefix=${prefix/\~/~}
ninja -C Build
ninja -C Build install
- name: run tests with Meson
run: |
# ninja test
cd irssi-*/
ninja -C Build test
find -name testlog.txt -exec sed -i -e '/Inherited environment:.* GITHUB/d' {} + -exec cat {} +
- name: run launch test
env:
TERM: xterm
run: |
# automated irssi launch test
cd
mkdir irssi-test
echo 'echo automated irssi launch test
^set settings_autosave off
^set -clear log_close_string
^set -clear log_day_changed
^set -clear log_open_string
^set log_timestamp *
^window log on
load irc
load dcc
load flood
load notifylist
load perl
load otr
load proxy
^quit' > irssi-test/startup
irssi-build/bin/irssi --home irssi-test | perl -Mutf8 -C ~/render.pl
cat irc.log.*
annotation-warnings:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'pull_request' }}
env:
CC: clang
steps:
- name: prepare required software
run: |
sudo apt update && sudo apt install $apt_build_deps
- uses: actions/checkout@main
- name: Setup local annotations
uses: irssi-import/actions-irssi/problem-matchers@master
- name: set PATH
run: |
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: prepare required software
env:
meson_ver: ${{ matrix.meson_ver }}
setuptools_ver: ${{ matrix.setuptools_ver }}
run: |
sudo apt update && sudo apt install $apt_build_deps
eval "$get_pip_build_deps_meson"
curl -SLf https://github.com/irssi-import/actions-irssi/raw/master/check-irssi/render.pl -o ~/render.pl && chmod +x ~/render.pl
- name: build and install with meson
run: |
meson Build $build_options_meson --prefix=${prefix/\~/~}
ninja -C Build
ninja -C Build install >/dev/null
- name: run launch test
env:
TERM: xterm
run: |
# automated irssi launch test
cd
mkdir irssi-test
echo 'echo automated irssi launch test
^set settings_autosave off
^set -clear log_close_string
^set -clear log_day_changed
^set -clear log_open_string
^set log_timestamp *
^window log on
load irc
load dcc
load flood
load notifylist
load perl
load otr
load proxy
^quit' > irssi-test/startup
irssi-build/bin/irssi --home irssi-test | perl -Mutf8 -C ~/render.pl
cat irc.log.*

51
.github/workflows/cifuzz.yml vendored Normal file
View file

@ -0,0 +1,51 @@
name: CIFuzz
on:
pull_request:
paths:
- 'src/core/**/*.c'
- 'src/fe-common/core/**/*.c'
- 'src/fe-text/gui-*.c'
- 'src/irc/**/*.c'
- 'src/fe-common/irc/**/*.c'
- 'src/lib-config/**/*.c'
- 'src/fe-fuzz/**/*.c'
- 'tests/**/*.c'
- '.github/workflows/cifuzz.yml'
jobs:
Fuzzing:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
sanitizer: [address, undefined, memory]
steps:
- uses: actions/checkout@main
with:
path: irssi
- name: Docker build build_fuzzers container
run: |
# google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
docker build -t build_fuzzers:actions -f "/home/runner/work/_actions/google/oss-fuzz/master/infra/build_fuzzers.Dockerfile" "/home/runner/work/_actions/google/oss-fuzz/master/infra"
- name: Build Fuzzers (${{ matrix.sanitizer }})
id: build
env:
OSS_FUZZ_PROJECT_NAME: 'irssi'
DRY_RUN: false
SANITIZER: ${{ matrix.sanitizer }}
PROJECT_SRC_PATH: /github/workspace/irssi
REPOSITORY: 'irssi'
run: |
docker run --workdir /github/workspace --rm -e OSS_FUZZ_PROJECT_NAME -e DRY_RUN -e SANITIZER -e PROJECT_SRC_PATH -e REPOSITORY -e WORKSPACE=/github/workspace -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "$GITHUB_WORKSPACE":"/github/workspace" build_fuzzers:actions
- name: Run Fuzzers (${{ matrix.sanitizer }})
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'irssi'
fuzz-seconds: 600
dry-run: false
sanitizer: ${{ matrix.sanitizer }}
- name: Upload Crash
uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: ${{ matrix.sanitizer }}-artifacts
path: ./out/artifacts

29
.github/workflows/clangformat.yml vendored Normal file
View file

@ -0,0 +1,29 @@
on: [pull_request]
name: clang-format
jobs:
check-clang-format:
runs-on: ubuntu-22.04
steps:
- name: install clang-format
run: sudo apt install clang-format-14
- uses: actions/checkout@main
- name: fetch target ref
run:
|
refs=($(git log -1 --format=%s))
git fetch --depth=1 origin "${refs[3]}"
- name: configure clang-format
run:
|
git config clangformat.binary $PWD/utils/clang-format-xs/clang-format-xs
git config clangformat.extensions c,h,xs
- name: run git-clang-format and Check if no changes are needed
run:
|
CLANG_FORMAT=clang-format-14 git-clang-format-14 --diff FETCH_HEAD HEAD | tee git-clang-format.diff
cmp -s <(echo no modified files to format) git-clang-format.diff || cmp -s <(echo -n) git-clang-format.diff
- uses: actions/upload-artifact@v4
if: failure()
with:
name: git-clang-format.diff
path: git-clang-format.diff

32
.github/workflows/muon-fmt.yml vendored Normal file
View file

@ -0,0 +1,32 @@
name: Format meson files
on:
push:
pull_request:
permissions: {}
jobs:
muon-meson-fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@main
with:
persist-credentials: false
# Build from source because Ubuntu 24.04 apt only has muon 0.2.0.
# Newer muons seem to format differently.
- name: Build muon from source
run: |
git clone --depth 1 --branch 0.5.0 https://github.com/muon-build/muon /tmp/muon
cd /tmp/muon
./bootstrap.sh build
build/muon-bootstrap setup build
build/muon-bootstrap -C build samu
sudo build/muon -C build install
- name: Run muon fmt
run: |
find . -name meson.build -print0 | xargs -0 muon fmt -c .muon_fmt.ini -i
git diff --exit-code

104
.github/workflows/solarisvm.yml vendored Normal file
View file

@ -0,0 +1,104 @@
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
name: Check Irssi on Solaris
env:
get_pip_build_deps_meson: pip3 install setuptools${setuptools_ver}; pip3 install wheel
prefix: ~/irssi-build
jobs:
dist:
runs-on: ubuntu-latest
env:
setuptools_ver: <66
steps:
- name: prepare required software
run: |
sudo apt update && sudo apt install $apt_build_deps
eval "$get_pip_build_deps_meson"
patch ~/.local/lib/python3.12/site-packages/pkg_resources/__init__.py <<- PATCH
--- __init__.py 2024-12-16 20:37:46.733230351 +0100
+++ __init__.py 2024-12-16 20:38:42.479554540 +0100
@@ -2188,7 +2188,8 @@ def resolve_egg_link(path):
return next(dist_groups, ())
-register_finder(pkgutil.ImpImporter, find_on_path)
+if hasattr(pkgutil, 'ImpImporter'):
+ register_finder(pkgutil.ImpImporter, find_on_path)
if hasattr(importlib_machinery, 'FileFinder'):
register_finder(importlib_machinery.FileFinder, find_on_path)
@@ -2345,7 +2346,8 @@ def file_ns_handler(importer, path_item,
return subpath
-register_namespace_handler(pkgutil.ImpImporter, file_ns_handler)
+if hasattr(pkgutil, 'ImpImporter'):
+ register_namespace_handler(pkgutil.ImpImporter, file_ns_handler)
register_namespace_handler(zipimport.zipimporter, file_ns_handler)
if hasattr(importlib_machinery, 'FileFinder'):
PATCH
- uses: actions/checkout@main
- name: make dist
run: |
./utils/make-dist.sh
- uses: actions/upload-artifact@v4
with:
path: irssi-*.tar.gz
retention-days: 1
install:
runs-on: ubuntu-latest
needs: dist
steps:
- name: fetch dist
uses: actions/download-artifact@v4
- name: Test in Solaris
uses: vmactions/solaris-vm@v1
with:
usesh: true
sync: rsync
release: "11.4-gcc"
prepare: |
pkg update --accept || echo 1:$?
pkg install meson || echo 2:$?
pkgutil -y -i curl || echo 3:$?
pkgutil -y -i gtar || echo 4:$?
pkgutil -y -i findutils || echo 5:$?
run: |
set -ex
export PKG_CONFIG_PATH=/usr/lib/64/pkgconfig
curl -SLf https://github.com/irssi-import/actions-irssi/raw/master/check-irssi/render.pl -o ~/render.pl && chmod +x ~/render.pl
gtar xzf artifact/irssi-*.tar.gz
# ninja install
cd irssi-*/
meson Build -Dwith-proxy=yes -Dwith-bot=yes -Dwith-perl=yes --prefix=$HOME/irssi-build
ninja -C Build
ninja -C Build install
# ninja test
ninja -C Build test
gfind -name testlog.txt -exec gsed -i -e '/Inherited environment:.* GITHUB/d' {} + -exec cat {} +
export TERM=xterm
# automated irssi launch test
cd
mkdir irssi-test
echo 'echo automated irssi launch test
^set settings_autosave off
^set -clear log_close_string
^set -clear log_day_changed
^set -clear log_open_string
^set log_timestamp *
^window log on
load irc
load dcc
load flood
load notifylist
load perl
load otr
load proxy
^quit' > irssi-test/startup
irssi-build/bin/irssi --home irssi-test | perl -Mutf8 -C ~/render.pl
cat irc.log.*

79
.github/workflows/termuxpkg.yml vendored Normal file
View file

@ -0,0 +1,79 @@
on:
push:
branches:
- master
pull_request:
name: Build Irssi Termux package
jobs:
termux-package:
runs-on: ubuntu-latest
steps:
- name: checkout termux-packages
uses: actions/checkout@main
with:
repository: termux/termux-packages
- name: checkout irssi
uses: actions/checkout@main
with:
path: src.irssi.git
- name: download termux docker container
uses: docker://termux/package-builder:latest
- name: create irssi build receipe
run: |
mkdir packages/irssi-an
cat << 'BUILD_SH' > packages/irssi-an/build.sh
TERMUX_PKG_HOMEPAGE=https://irssi.org/
TERMUX_PKG_DESCRIPTION="Terminal based IRC client"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@irssi"
TERMUX_PKG_VERSION=@VERSION@
TERMUX_PKG_REVISION=@REVISION@
TERMUX_PKG_SRCURL=git+file:///home/builder/termux-packages/src.irssi.git
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="glib, libandroid-glob, libiconv, libotr, ncurses, openssl, perl, utf8proc"
TERMUX_PKG_BREAKS="irssi"
TERMUX_PKG_REPLACES="irssi"
TERMUX_MESON_PERL_CROSS_FILE=$TERMUX_PKG_TMPDIR/meson-perl-cross-$TERMUX_ARCH.txt
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-Dfhs-prefix=$TERMUX_PREFIX
--cross-file $TERMUX_MESON_PERL_CROSS_FILE
"
termux_step_pre_configure() {
LDFLAGS+=" -landroid-glob"
# Make build log less noisy.
CFLAGS+=" -Wno-compound-token-split-by-macro"
local perl_version=$(. $TERMUX_SCRIPTDIR/packages/perl/build.sh; echo $TERMUX_PKG_VERSION)
cat << MESON_PERL_CROSS >$TERMUX_MESON_PERL_CROSS_FILE
[properties]
perl_version = '$perl_version'
perl_ccopts = ['-I$TERMUX_PREFIX/include', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-I$TERMUX_PREFIX/lib/perl5/$perl_version/${TERMUX_ARCH}-android/CORE']
perl_ldopts = ['-Wl,-E', '-I$TERMUX_PREFIX/include', '-L$TERMUX_PREFIX/lib/perl5/$perl_version/${TERMUX_ARCH}-android/CORE', '-lperl', '-lm', '-ldl']
perl_archname = '${TERMUX_ARCH}-android'
perl_installsitearch = '$TERMUX_PREFIX/lib/perl5/site_perl/$perl_version/${TERMUX_ARCH}-android'
perl_installvendorarch = ''
perl_inc = ['$TERMUX_PREFIX/lib/perl5/site_perl/$perl_version/${TERMUX_ARCH}-android', '$TERMUX_PREFIX/lib/perl5/site_perl/$perl_version', '$TERMUX_PREFIX/lib/perl5/$perl_version/${TERMUX_ARCH}-android', '$TERMUX_PREFIX/lib/perl5/$perl_version']
MESON_PERL_CROSS
}
BUILD_SH
version=$(awk '/^v/ { $0=$1; gsub(/^v/,""); gsub(/-head/,"dev"); gsub(/-/,""); print; exit }' src.irssi.git/NEWS)
version=$version+g$(git -C src.irssi.git rev-parse --short HEAD)
sed -i \
-e "s:@VERSION@:$version:" \
-e "s:@REVISION@:$GITHUB_RUN_NUMBER:" \
packages/irssi-an/build.sh
git -C src.irssi.git tag v$version
- name: prepare output folder
run: |
install -m a+rwx -d output
- name: build irssi package
run: |
sudo ./scripts/run-docker.sh ./build-package.sh -I irssi-an
- uses: actions/upload-artifact@v4
with:
name: irssi-termux-pkg
path: output/irssi-an*.deb

20
.github/workflows/trigger-pages.yml vendored Normal file
View file

@ -0,0 +1,20 @@
on:
push:
branches:
- master
jobs:
rebuild-pages:
if: github.repository == 'irssi/irssi'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
with:
github-token: ${{ secrets.PAT_TOKEN }}
script: |
await github.rest.actions.createWorkflowDispatch({
owner: context.repo.owner,
repo: 'irssi.github.io',
workflow_id: 'pages.yml',
ref: 'main'
})

75
.github/workflows/voiddocker.yml vendored Normal file
View file

@ -0,0 +1,75 @@
on:
push:
branches:
- master
pull_request:
workflow_dispatch:
name: Check Irssi on Void Linux glibc
jobs:
dist:
runs-on: ubuntu-latest
container: ghcr.io/void-linux/void-glibc:latest
steps:
- name: prepare required software
run: |
xbps-install -Syu xbps || :
xbps-install -Syu
xbps-install -Sy git findutils python3-setuptools tar xz gzip
- uses: actions/checkout@main
- name: make dist
run: |
git config --global --add safe.directory /__w/irssi/irssi
./utils/make-dist.sh
- uses: actions/upload-artifact@v4
with:
path: irssi-*.tar.gz
retention-days: 1
install:
runs-on: ubuntu-latest
container: ghcr.io/void-linux/void-glibc:latest
needs: dist
steps:
- name: prepare required software
run: |
xbps-install -Syu xbps || :
xbps-install -Syu
xbps-install -Sy meson base-devel libglib-devel libutf8proc-devel ncurses-devel ncurses-base openssl-devel libotr-devel libgcrypt-devel tar findutils curl
- name: fetch dist
uses: actions/download-artifact@v4
- name: Setup local annotations
uses: irssi-import/actions-irssi/problem-matchers@master
- name: Test on Void Linux glibc
run: |
set -ex
curl -SLf https://github.com/irssi-import/actions-irssi/raw/master/check-irssi/render.pl -o ~/render.pl && chmod +x ~/render.pl
tar xzf artifact/irssi-*.tar.gz
# ninja install
cd irssi-*/
meson Build -Dwith-proxy=yes -Dwith-bot=yes -Dwith-perl=yes --prefix=$HOME/irssi-build --buildtype debugoptimized
ninja -C Build
ninja -C Build install
# ninja test
ninja -C Build test
find -name testlog.txt -exec sed -i -e '/Inherited environment:.* GITHUB/d' {} + -exec cat {} +
export TERM=xterm
# automated irssi launch test
cd
mkdir irssi-test
echo 'echo automated irssi launch test
^set settings_autosave off
^set -clear log_close_string
^set -clear log_day_changed
^set -clear log_open_string
^set log_timestamp *
^window log on
load irc
load dcc
load flood
load notifylist
load perl
load otr
load proxy
^quit' > irssi-test/startup
export LC_CTYPE=C.utf8
irssi-build/bin/irssi --home irssi-test | perl -Mutf8 -C ~/render.pl
cat irc.log.*

39
.gitignore vendored
View file

@ -11,7 +11,6 @@ config.status
configure
default-config.h
default-theme.h
faq.txt
irssi-config
irssi-config.h
irssi-config.h.in
@ -28,13 +27,14 @@ MYMETA.*
docs/help/Makefile.am
docs/help/[a-z]*
!docs/help/meson.build
!docs/help/in
docs/help/in/Makefile.am
src/fe-text/irssi
src/fe-common/irc/irc-modules.c
src/irc/irc.c
src/fe-fuzz/irssi-fuzz
src/fe-fuzz/irc/core/event-get-params-fuzz
src/fe-fuzz/fe-common/core/theme-load-fuzz
src/perl/perl-signals-list.h
src/perl/irssi-core.pl.h
@ -46,11 +46,35 @@ src/perl/ui/*.c
src/perl/*/MYMETA.*
src/perl/*/Makefile.old
src/fe-fuzz/crash-*
src/fe-fuzz/oom-*
/core
/irssi-1.pc
/irssi/
/tests/fe-common/core/test-formats
/tests/fe-common/core/test-formats.log
/tests/fe-common/core/test-formats.trs
/tests/fe-common/core/test-suite.log
/tests/irc/core/core
/tests/irc/core/test-channel-events
/tests/irc/core/test-channel-events.log
/tests/irc/core/test-channel-events.trs
/tests/irc/core/test-irc
/tests/irc/core/test-irc.log
/tests/irc/core/test-irc.trs
/tests/irc/core/test-suite.log
/tests/irc/flood/test-796
/tests/irc/flood/test-796.log
/tests/irc/flood/test-796.trs
/tests/irc/flood/test-suite.log
*.a
*.bs
*.la
*.lo
*.o
*.swp
*~
*.tar.bz2
@ -58,3 +82,10 @@ src/perl/*/Makefile.old
.deps
.libs
Build
subprojects/*
!subprojects/*.wrap
Irssi-Dist
setup.cfg
*.egg-info

14
.muon_fmt.ini Normal file
View file

@ -0,0 +1,14 @@
# Irssi configuration for muon fmt
max_line_len = 108
indent_style = space
indent_size = 2
#indent_by = ' '
space_array = true
kwargs_force_multiline = true
wide_colon = true
no_single_comma_function = true
insert_final_newline = true
sort_files = false
group_arg_value = true
sticky_parens = true
continuation_indent = true

13
.obs/workflows.yml Normal file
View file

@ -0,0 +1,13 @@
workflow:
steps:
- branch_package:
source_project: home:ailin_nemui:irssi-git-an
source_package: irssi-git-an
target_project: home:ailin_nemui:CI
- set_flags:
flags:
- type: publish
status: enable
project: home:ailin_nemui:CI
filters:
event: pull_request

View file

@ -1,46 +0,0 @@
sudo: false
language: perl
perl:
- "5.20-shrplib"
- "5.18-shrplib"
- "system-perl"
env:
- CC=clang
- CC=gcc
addons:
apt:
packages:
- libperl-dev
- elinks
before_install:
- perl -V
- ./autogen.sh --with-proxy --with-bot --with-perl=module
- make dist
- cd ..
- tar xaf */irssi-*.tar.*
- cd irssi-*
install:
- ./configure --with-proxy --with-bot --with-perl=module --prefix=$HOME/irssi-build
- make CFLAGS="-Wall -Werror"
- make install
before_script:
- cd
- mkdir irssi-test
- echo echo automated irssi launch test > irssi-test/startup;
echo ^set settings_autosave off >> irssi-test/startup;
echo ^set -clear log_close_string >> irssi-test/startup;
echo ^set -clear log_day_changed >> irssi-test/startup;
echo ^set -clear log_open_string >> irssi-test/startup;
echo ^set log_timestamp '* ' >> irssi-test/startup;
echo ^window log on >> irssi-test/startup
- echo load perl >> irssi-test/startup
- echo load proxy >> irssi-test/startup
- echo ^quit >> irssi-test/startup
- irssi-build/bin/irssi --home irssi-test
- cat irc.log.*
script: true

View file

@ -13,6 +13,7 @@ Irssi staff (current maintainers) <staff@irssi.org>:
Jase Thew (bazerka)
dequis (dx)
Ailin Nemui (Nei)
Giuseppe (TheLemonMan, lemonboy)
Former developers:
@ -26,7 +27,8 @@ Large feature patches by:
Heikki Orsila : DCC SEND queueing
Mark Trumbull : DCC SERVER
Francesco Fracassi : Passive DCC
Giuseppe (The Lemon Man)
Uli Meis : OTR support
David Goulet : OTR support
Other patches (grep for "patch" in ChangeLog) by:

103
INSTALL
View file

@ -2,68 +2,67 @@
Irssi installation instructions
-------------------------------
To compile irssi you need:
To compile Irssi you need:
- glib-2.6 or greater
- pkg-config
- meson-0.53 build system with ninja-1.8 or greater
- pkg-config (or compatible)
- glib-2.32 or greater
- openssl (for ssl support)
- perl-5.6 or greater (for perl support)
- perl-5.8 or greater (for building, and optionally Perl scripts)
(n.b a complete perl is needed, including ExtUtils::Embed and xsubpp)
- terminfo or ncurses (for text frontend)
- utf8proc (optional, for additional char width calculation)
- libgcrypt (for OTR)
For most people, this should work just fine:
./autogen.sh (for people who just cloned the repository)
./configure (if this script already exists, skip ./autogen.sh)
make
meson Build
ninja -C Build
su
make install (not _really_ required except for perl support)
ninja -C Build install
meson options
configure options
These options can be given to meson.
For a complete list of options, run
meson configure
--prefix
Specifies the path where irssi will be installed.
YES, you can install irssi WITHOUT ROOT permissions
Specifies the path where Irssi will be installed.
YES, you can install Irssi WITHOUT ROOT permissions
by using --prefix=/home/dir
--with-proxy
-Dwith-proxy=yes
Build the irssi proxy (see startup-HOWTO).
Build the Irssi proxy (see startup-HOWTO).
--disable-ssl
Disable SSL support.
--with-perl=[yes|no|module]
-Dwith-perl=[yes|no]
Enable Perl support
yes enable builtin (default)
no disable
module enable as module
--with-perl-lib=[site|vendor|DIR]
-Dwith-perl-lib=[site|vendor|DIR]
Specify installation dir for Perl libraries
site install in dir for site-specific modules (default)
vendor install in dir for vendor-specific modules
DIR install in DIR
--with-socks
Build with socks library
--with-bot
-Dwith-bot=yes
Build irssi-bot
--without-textui
-Dwithout-textui=yes
Build without text frontend
If anything is in non-standard path, you can just give the paths in
CPPFLAGS and LIBS environment variable, eg.:
the -Dc_args and -Dc_link_args options variable, eg.:
CPPFLAGS=-I/opt/openssl/include LDFLAGS=-L/opt/openssl/lib ./configure
meson Build -Dc_args='-I/opt/openssl/include' -Dc_link_args='-L/opt/openssl/lib'
@ -73,47 +72,51 @@ CPPFLAGS and LIBS environment variable, eg.:
Perl support generates most of the problems. There's quite a many
things that can go wrong:
- Compiling fails if you compile irssi with GCC in a system that has
perl compiled with some other C compiler. Very common problem with
non-Linux/BSD systems. You'll need to edit src/perl/*/Makefile files
and remove the parameters that gcc doesn't like. Mostly you'll just
need to keep the -I and -D parameters and add -fPIC.
- If there's any weird crashing at startup, you might have older irssi's
perl libraries installed somewhere, and you should remove those.
- Dynamic libraries don't want to work with some systems, so if your
system complains about some missing symbol in Irssi.so file, configure
irssi with --with-perl-staticlib option (NOT same as --with-perl=static).
- If configure complains that it doesn't find some perl stuff, you're
- If meson complains that it doesn't find some perl stuff, you're
probably missing libperl.so or libperl.a. In debian, you'll need to do
apt-get install libperl-dev
- For unprivileged home directory installations, you probably do not want
to specify --with-perl-lib=(site|vendor). Instead, you can use the
default perl installation target (below the irssi prefix). If you are
using local::lib you can also choose to install there by specifying
--with-perl-lib=$PERL_LOCAL_LIB_ROOT/lib/perl5
You can verify that the perl module is loaded and working with "/LOAD"
command. It should print something like:
Module Type Submodules
...
perl static core fe
perl dynamic fe core
System specific notes
---------------------
Android
When cross compiling Irssi for Android, you can specify the path of
the cross-perl in the cross file.
You may not have a cross-perl available. In that case, you will have
to manually supply the required Perl arguments in the cross file. See
the commented properties in the example cross file.
An example cross file can be found in the docs folder. To use it, you
would call:
meson Build --cross-file cross-android-aarch64.txt \
--prefix /data/data/com.termux/files/usr \
--libdir lib \
-Dfhs-prefix=/data/data/com.termux/files/usr \
Cygwin
Getting perl scripting to work needs a few things:
- configure with --with-perl-staticlib
- TODO
- libperl.dll is required in linking and running irssi, it's normally
located somewhere around /usr/lib/perl5/5.6.1/cygwin/CORE/libperl5_6_1.dll
copy it to eg. /usr/bin/libperl.dll
- -DUSEIMPORTLIB is needed to be defined while compiling src/perl directory.
It doesn't hurt to be defined everywhere, so configure irssi with:
Apple MacOS / Darwin
CFLAGS='-DUSEIMPORTLIB' ./configure --with-perl-staticlib
At the time of writing, meson has an open issue with correctly linking
libraries on macos.
See docs/meson-macos-ar.txt for a workaround.

35
MANIFEST.in Normal file
View file

@ -0,0 +1,35 @@
global-include meson.build
recursive-include src *.c *.h meson.build
recursive-include src/perl *.c *.h *.xs *.pm *.pl typemap meson.build
recursive-include src/fe-fuzz *.c *.h *.txt meson.build
recursive-include tests *.c meson.build
include meson_options.txt
include subprojects/*.wrap
# prune subprojects/*
include utils/*.pl utils/*.sh
exclude utils/make-dist.sh
include irssi.conf
include themes/*.theme
include docs/*.1 docs/*.txt docs/*.html
include docs/help/in/[a-z]*.in
include scripts/*.pl scripts/examples/*.pl
include irssi-icon.png
include NEWS
include INSTALL
include TODO
include ChangeLog
include .clang-format
# prune Build
# prune dist
prune *.egg-info
# ignore fuzz-support/fuzz.diff
# ignore utils/clang-format-xs/*

View file

@ -1,39 +0,0 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
# create default-config.h
BUILT_SOURCES = default-config.h default-theme.h irssi-version.h
CLEANFILES = default-config.h default-theme.h
@MAINTAINER_MODE_TRUE@.PHONY: irssi-version.h
default-config.h: $(srcdir)/irssi.conf
$(srcdir)/file2header.sh $(srcdir)/irssi.conf default_config > default-config.h
default-theme.h: $(srcdir)/default.theme
$(srcdir)/file2header.sh $(srcdir)/default.theme default_theme > default-theme.h
irssi-version.h:
VERSION="$(VERSION)" $(srcdir)/irssi-version.sh $(srcdir) | \
cmp -s - $@ || VERSION="$(VERSION)" $(srcdir)/irssi-version.sh $(srcdir) >$@
SUBDIRS = src docs scripts
confdir = $(sysconfdir)
conf_DATA = irssi.conf
themedir = $(datadir)/irssi/themes
theme_DATA = default.theme colorless.theme
pkginclude_HEADERS = irssi-config.h irssi-version.h
EXTRA_DIST = \
ChangeLog \
autogen.sh \
README.md \
file2header.sh \
$(conf_DATA) \
$(theme_DATA) \
irssi-config.in \
irssi-icon.png \
irssi-version.sh \
syntax.pl

845
NEWS
View file

@ -1,22 +1,769 @@
v0.8.21-head 2016-xx-xx The Irssi team <staff@irssi.org>
* Removed --disable-ipv6
v1.5-head 202x-xx-xx The Irssi team <staff@irssi.org>
v1.4.5 2023-10-03 The Irssi team <staff@irssi.org>
+ Add workaround for Perl 5.38.0 bug that breaks the Irssi
locale and glyph rendering (scripts.irssi.org#857, #1498)
- Fix Perl scripts broken by Perl 5.38 (scripts.irssi.org#851,
#1474). With input from Leon Timmermans
- Document workaround to fix linker errors when building with
meson on Apple (#1435, #1492)
- Fix meson using wrong filenames on Apple, leading to broken
Perl support (#1483, #1493)
- Fix /upgrade not accepting `~' (#1460, #1462). By Lukas Mai
- Improve compatibility with Perl5-IDEA (#1465, #1467). By
Charlie Daffern
- Fix logic in how own actions are printed for other protocols
(codeberg!5, #1471). By Andrej Kacian
- Fix crash on old PowerPC Mac (#1482, #1484)
- Fix wrong prototype of library function used in terminal
handling (#1495). By Emil Engler
- Minor cleanups (#1488, #1497). Includes work by Emil Engler
- Minor help and documentation fixes (#1458, #1494, #1477,
#1478). Includes work by KindOne
v1.4.4 2023-03-31 The Irssi team <staff@irssi.org>
* Expose location of signals.txt via pkg-config (codeberg!1,
#1439, #1446, #1447). By Andrej Kacian
+ Levels can now be inverted using `^' prefix in the /WINDOW
(HIDE)LEVEL commands (#1428)
+ Support receiving monospace (#1370, #1442). By Linus
Heckemann
- Fix config broken by /WINDOW LOGFILE without parameter
(#1392, #1432)
- Fix broken /LASTLOG -window switch (#1418, #1424, regression
introduced in #1398)
- Fix logic in how actions are printed for other protocols
(codeberg!3, #1454). By Andrej Kacian
- Fix stale special collector use after free (#1456). Reported
by ednash
- Help and message fixes (#1421, #1429, #1431, #1434, #1438,
#1452, #1453, #1455). Includes work by Jimmie Tyrrell and
Sven Grewe
v1.4.3 2022-10-31 The Irssi team <staff@irssi.org>
- Fix freeze on Alt+arrows (#1416, #1417)
- Fix crash on /upgrade (#1399, #1419)
- Fix saving of -disallow_starttls (#1401, #1420)
- Fix libnv detection on FreeBSD (freebsd#265397, #1407). By
Guido Falsi and Kristof Provost
- Minor help and script fixes (#1380, #1393, #1411, #1413,
#1414, #1415)
v1.4.2 2022-07-17 The Irssi team <staff@irssi.org>
* Add irssimoduledir to irssi-1.pc in the Meson build (#1383,
#1378)
- Use -isystem includes, limiting warnings to Irssi
code. Fixes compilation with Perl 5.36 (#1381,
gentoo#851522, #1384)
- Fix missing lines when changing dynamic textbuffer contents
(#1382, #1387). Reported by externalserver15
- Fix Perl cross compilation with Meson 0.60.0 (#1377)
- Fix default channel prefix used for /JOIN to default to `#'
(#1385, #1388)
- Fix crash in /LASTLOG by getting line texts before printing
(#1367, #1398)
v1.4.1 2022-06-12 The Irssi team <staff@irssi.org>
! Note: botti no longer compiles; get in touch if you use it
* Format the output of /QUOTE HELP (#1371, an#82). By Val
Lorentz. Add /SHELP as default alias (an#83)
+ GLib log message filter: /SET glib_log_domains (an#50,
an#59). By Andrej Kacian
+ An option to clear the cutbuffer:
/SET empty_kill_clears_cutbuffer (an#58). By Mikael
Magnusson
+ Scriptable pastebin (an#60, an#88)
+ Configurable actlist separator: /SET actlist_separator
(#1364, an#61)
- Fix window left/right not skipping visible windows
(an#57). By Mikael Magnusson
- Fix wrong printf-format on OpenBSD (an#66, an#68). Reported
by Aaron Bieber
- Fix erroneous output produced by autoload_modules (an#72)
- Fix scroll_page_count setting with `.' (#1365, an#76)
- Fix memory leak in /IGNORE (#1373, an#84). Found by Jookia
- Misc fixes (an#45, an#67, an#70, #1368, an#77)
- CHANTYPES take precedence over (missing) STATUSMSG in /join
(#1358, an#54)
- Fix crash in Perl's $view->set_bookmark (freebsd#254237,
an#56)
- Minor help fixes (an#51, an#52)
- Fix regression where own channel status was forgotten after
/UPGRADE (#1357, an#53)
* /SET resolve_reverse_lookup setting was removed (#1034,
#1135)
* Irssi will try to connect on IPv4 if IPv6 connection failed
(#1146). By Shivaram Lingamneni
* The display system now renders formats on the fly (#1079,
#1188, #1191, #1192, #1204, #1205, #1209, #1349, #1355,
an#13, an#14, an#28, an#29, an#36, an#37, an#49)
This major change will break scripts that try to modify
printed text during "print text" signal (#1189). They need
to be ported to modify the text during "print format"
instead. It also breaks the usage of using /FORMAT to add
different colours to a line. Such usage needs to be ported
to using $expando variables instead. Affected scripts
include format_identify.pl, friends_peder.pl, nickcolor.pl,
nm.pl, people.pl
The "gui print text finished" and "gui print text after
finished" signals gained a TEXT_DEST_REC *parameter in the
process.
A new "gui render line text" signal is available to change
the rendering of a line
* made the $Z expando (time) dynamic (#1087, #1207, #1208)
This change breaks the usage of /SET timestamp_format to
supply a custom displayed time stamp. Affected scripts
include binary_time.pl
* /HILIGHT -priority now affects which hilight rule gets
applied (#1228, #1232)
* The NAMES list is now hidden by default if there are more
than 18 users on the channel (an#7)
To revert to the previous behaviour
/SET show_names_on_join_limit -1
* -tls_verify is now enabled by default (#1170, an#18, #1309,
an#23, #1343, #1351)
This may cause an ugly display of notls_verify in the output
of /SERVER LIST, even on plain-text connection, on old
configs. Kindly remove the "tls_verify = "no";" entries from
your config file manually.
* Irssi will now attempt STARTTLS if advertised (#1170, #1312,
an#19)
Use -disallow_starttls if you absolutely do not want this
In order to check for a STARTTLS advertisement, Irssi will
now wait for a response (even an error) to CAP LS 302. If
your bouncer/server does not want to communicate before
receiving USER/PASS at all, use -nocap to disable the CAP
check.
* Channel sync requests (WHO, MODE) are now sent "later" than
user commands. This should improve responsiveness to user
commands in the autojoin phase (#1300, an#26, an#32, an#33)
* Irssi is now using full paths in #include directives and
consequently does not add all directories to the include
path anymore (#1040)
* The Build System was ported to Meson (#1064, #1065, #1068,
#1071, #1072, #1073, #1074, #1075, #1084, #1085, #1118, #1166,
#1223, #1224, #1245, #1313, #1314, an#31)
* Scriptassist was changed to use a YAML database (#1163)
It will tell you when you need to update your setting
* /BIND shows all partial matches (#1155)
* Cleanup of unused functions (#1017, #1132, #1145, #1182,
#1246, #1264)
Functions removed:
NET_CALLBACK
NET_HOST_CALLBACK
RESOLVED_NAME_REC
net_gethostbyaddr_nonblock
net_connect_nonblock
[ SIMPLE_THREAD_REC, simple_init, simple_readpipe ]
hash_save_key
Functions deprecated:
dec2octal
g_timeval_cmp
get_timeval_diff
Function names corrected:
g_input -> i_input
g_istr -> i_istr
g_io_channel -> i_io_channel
g_hash_free_value -> i_hash_free_value
remove g_free_true
gslist -> i_slist
glog_func -> i_log_func
glist -> i_list
If multi-version compatibility is desired, module authors
can find an example of backwards compatible code in
cdidier/irssi-xmpp#55
+ Add MSGLEVEL_HIDDEN to Perl (#1044)
+ Add $view->set_hidden_level and $view->remove_lines_by_level
to Perl (#1026)
+ Add a /SET scrollback_max_age setting (#1022). By Heikki
Orsila
+ Add /SET actlist_prefer_window_name (#1025)
+ Add -window option to /CAT (#1023, #1159)
+ Add an option to list specific sections with
/SET -section lookandfeel
(#1048)
+ Add support for IRCv3 CAP LS 302 (#1091)
+ Add a new "print noformat" signal that goes together with
"print format" (#1088, #1192)
+ Add support for IRCv3 extended-join. /SET show_extended_join
to enable (#1097, #1107, #1124)
There are two new /FORMATs, join_extended and
join_extended_account, that theme writers need to take into
account if desired.
+ Add support for IRCv3 setname (#1093, #1104, #1254, GL#33)
+ Add support for IRCv3 account-notify (#1100, #1098, GL#33,
#1105, #1131). Credit to oss-fuzz
/SET show_account_notify to enable
+ Add support for IRCv3 invite-notify (#1094)
+ Add support for receiving IRCv3 message-tags (#576, #1090)
+ Add support for sending IRCv3 message-tags (#1092, an#34)
+ Enable the znc.in/self-message CAP by default (#1123)
+ Add support for IRCv3 away-notify. /SET away_notify_public
to enable (#1099, GL#33, #1105)
+ Add support for IRCv3 chghost (#1096, GL#33, #1105)
For servers with broken chghost implementation that fill the
status window with host changed messages, one may add "quote
cap req -chghost" to the -autosendcmd or, if the host change
messages are entirely undesired, "/format -delete
host_changed"
+ Add support for IRCv3 server-time. /SET show_server_time to
enable (#1108)
+ Add support for logging IRCv3 server-time.
/SET log_server_time to disable (#1318, an#16)
+ Add IRCv3 features to signals.txt (#1111)
In particular, "message join" now takes 2 additional
arguments, script and module authors must beware of this
change.
+ Show the unignore time in /IGNORE output (#1158, #1161)
+ Add /SET quit_on_hup to make the behaviour of SIGHUP
configurable (#828, #1169). By Pinguin1234
+ Support numeric 489 as ERR_SECUREONLYCHAN (#1193, #1196). By
Michael Hansen
+ Improve support for building Irssi in Termux-Android with
Meson (#1199)
+ Add usermode key to Irssi::Irc::Chatnet in Perl (#1288). By
Jessica Sophie Porter
+ Add format_string_expand and format_string_unexpand
functions to Perl (#1286)
+ Add ...->format_create_dest(...)->printformat("format",
args...) and ...->printformat_module("module", "format",
args...) methods to Perl (#1284)
You can avoid any CORE::GLOBAL::caller hacks using the
printformat_module method, especially sind that hack was not
safe during signal emissions
+ Add tracking of user accounts in the channel nicklist using
WHOX on join (#1250)
+ Add auto-loading of the Perl and otr module from /SET
autoload_modules (#1295)
+ Add /IGNORE ... NOHILIGHT to ignore some hilights (#1260)
+ Do not beep on hidden lines with /SET beep_msg_level
... -HIDDEN (#1259)
+ Added /CS, /MS, /NS, and /OS aliases to the default config
(#1316). By Mathis Beer
+ Allow -tls_ca{file,path} '' to unset an argument (#730,
#1060, an#30)
+ Add a "server outgoing modify" signal to intercept outgoing
messages (#1148, #1151, an#15, an#43). Original by
JustAnotherArchivist
- remove some hard-coded 510 byte assumptions (#1086)
- Several fixes for error checks in SSL (#944, #1037, #943,
#1036). Reported by Chi Li
- Wrong variable tested in mask_match (#902, #1035)
- Fix bug where irssi-proxy with `?'-port would not reconnect
(#1041)
- Allow shrinking of /SET rawlog_lines (#957, #1020). By
Marcus "Teschi" Prinz
- Fix /WINDOW BALANCE warning (#1054)
- fix overflow when first command history entry expires
(#1070)
- begin modularising IRC module (#1067, #1112, #1113)
- fix some memory leaks in /DCC RESUME and settings_add
(#1077). By Zero King
- fix cut-off text with theme_indent module and /SET
indent_always OFF (#1078)
- fix the cap_queue order (#1095)
- add reference counted strings (#1089)
- Fix irc_op_public messages not triggering hilights (#354,
#891, #1129). By Dan Collins
- Fix /IGNORE not setting the right level in irc_op_public
messages (#1280). Credit to oss-fuzz
- Fix GTimeVal deprecation (#1141, #1144, #1145, #1350, an#44)
If multi-version compatibility is desired, module authors
can find an example of backwards compatible code in
cdidier/irssi-xmpp#53
- Fix /IGNORE ... MODES NO_ACT not working (#1164)
- Deprecated -ssl* options are hidden from tab completion
(#1171)
- Make /SET actlist_sort a choice type (#1198)
- Fix crash from self-unloading script (#1206). By Thomas
Stagner
- Fix crash during Perl signal emission (#1233, #1234)
- Fix a case where empty lines or comments inside channels or
servers in the config would confuse Irssi (#1062, #1242,
#1243)
- Fix reported freezing in DCC GET on slow disks (#159, #1271)
- Fix message-tags parsing (#1274, #1275). Credit to oss-fuzz
- Fail redirects when receiving numeric 263 (RPL_TRYAGAIN) in
response to /WHO (#1283)
- Some updates to .gitignore (#1302). By Rene Kita
- Fix build on operating systems with X/Open Curses, version 2
(#1305, #1308). By Nia Alarie (Regression introduced with
#1290, alternative fix for Irssi 1.2.3 no-term.h.patch)
- Fix otr module not using g_strndup, e.g. on Solaris 10
(#1315). By Claes Nästén
- Fix cursor getting stuck for auto completions that changes
case (#1176, #1322, an#8). By ffrogman
- Restore operation of tag/* in /SET activity_hide_targets
(#1337, an#11) nb. the ::all syntax was working in Irssi 1.1
and 1.2 (and continues to work)
- Fix /SERVER ADD -matrix -network my_matrix_network
(an#12). By Andrej Kacian
- Fix /SERVER ADD creating duplicated entries in the config
file (#1317, an#22, an#41)
- Fix critical when SASL user is set and SASL password is
empty (#1325, an#21)
- Misc fixes (#1106, #1141, #1272, #1297, an#35)
- Fuzz fixes (#1116, #1117, #1119, #1125, #1126, an#20)
- Build system fixes (#1101, #1102, #1069, #1140, #1181, #1253)
- Sync docs and scripts (an#39)
- Text and Help updates
- add -tls_* options to manual (#1029, #1030). By Jacob
V. Rasmussen
- missing targets in /MSG (#1032)
- wrong parameter in /ECHO (#1024)
- Spelling in OTR (#1047). By David Gall
- Clarify statusbar priority (#1049). By Marius Gedminas
- Document get_irssi_dir in Perl (#1051, #1052). By Alex
Shafer
- typo in /HILIGHT help (#1081). By DFrostByte
- improved clarity of your_nick_owned (#1138). By Mike Quin
- Update some URLs to https (#1163)
- Add documentation for escaping some characters (#1329,
#1330, an#9). By Guntbert Reiter
- Fix some typos (#1336, an#10). By Francis Mteo
- Document $abiversion and parse_special (an#38). By bw1
- Infrastructure updates:
- Support for Github Actions (#1039, #1103, #1160, #1212,
#1231, #1252, #1261, an#40)
- Run clang-format on pull requests (#1172, #1173, #1184,
#1230, #1247, #1287)
- Run abidiff on pull requests (#1179, #1195)
- Test CI-Fuzz (#1279, #1304, an#17)
v1.2.3 2021-04-11 The Irssi team <staff@irssi.org>
- Fix the compilation of utf8proc (#1021)
- Fix wrong call to free. By Zero King (#1076)
- Fix a colour reset in true colour themes when encountering
mIRC colours (#1059)
- Fix memory leak on malformed CAP requests (#1120)
- Fix an erroneous free of SASL data. Credit to Oss-Fuzz (#1128,
#1130)
- Re-set the TLS flag when reconnecting (#1027, #1134)
- Fix the scrollback getting stuck after /clear (#1115, #1136)
- Fix the input of Ctrl+C as the first character (#1153, #1154)
- Fix crash on quit during unloading of modules on certain
platforms (#1167)
- Fix Irssi freezing input after Ctrl+Space on GLib >2.62 (#1180,
#1183)
- Fix layout of IDCHANs. By Lauri Tirkkonen (#1197)
- Fix crash when server got reconnected before it was properly
connected (#1210, #1211)
- Fix multiple identical active caps (#1249)
- Minor help corrections (#1156, #1213, #1214, #1255)
- Remove erroneous colour in the colorless theme. Reported and
fixed by Nutchanon Wetchasit (#1220, #1221)
- Fix invalid bounds calculation when editing the text
entry. Found and fixed by Sergey Valentey (#1269)
- Fix passing of negative size in buffer writes. Found and
fixed by Sergey Valentey (#1270)
- Fix Irssi freezing on slow hardware and fast DCC transfers (#159,
#1271)
- Fix compilation on Solaris (#1291)
- Fix null pointer dereference when receiving broken JOIN
record. Credit to Oss-Fuzz (#1292)
- Fix crash on /connect to some sockets (#1239, #1298)
- Fix Irssi rendering on Apple ARM. By Misty De Méo (#1267,
#1268, #1290)
- Fix crash on /lastlog with broken lines (#1281, #1299)
- Fix memory leak when receiving bogus SASL authentication
data. Found and fixed by Sergey Valentey (#1293)
v1.2.2 2019-08-29 The Irssi team <staff@irssi.org>
- Fix a use after free issue when receiving IRCv3 CAP
information from the server (GL#34, GL!35)
- Fix a crash during startup when windows weren't fully
initialised yet (#1114, bdo#935813)
v1.2.1 2019-06-29 The Irssi team <staff@irssi.org>
! Contains all changes from 1.1.3
- Fix a test on big endian machines (#1014)
- Fix the compile time conditionality of wcwidth
implementation (#1019, gentoo#677804, #720)
- Fix /save no longer working on old Solaris (pre
POSIX.1-2008) (#1042, #1043)
- Fix regression of #764 where display of 8-bit (legacy
encoding) in the input prompt was broken (#1018,
#1057). Initial patch by Артём Курашов
v1.1.3 2019-06-29 The Irssi team <staff@irssi.org>
! Contains all changes from 1.0.8
- Fix regression of #779 where autolog_ignore_targets would
not matching itemless windows anymore (#1012, #1013)
v1.0.8 2019-06-29 The Irssi team <staff@irssi.org>
- Fix a use after free issue when sending the SASL login on
(automatic and manual) reconnects (#1055, #1058). Reported
by ilbelkyr
v1.2.0 2019-02-11 The Irssi team <staff@irssi.org>
! Contains all changes from 1.1.2
* Improved the /STATUSBAR commands (#858)
* /SET no longer shows `=' between setting and value (#886)
* /CUBES removed from default config (available as script)
(#956)
* /1 /2 /3 ... removed from default config (available as new
setting window_number_commands) (#958)
* Always redraw the screen on resize. By David Phillips (#896)
* Private notices intended for channels are now displayed on
the channel (new setting notice_channel_context) (#959)
+ Imported the "Off-the-record" module into Irssi tree (#854,
#589, #196, #881)
+ Initial support for sideways split windows (#697, #431,
#224, #807, FS#310, #947, #955, #989)
+ Change the implementation of `wcwidth'. This is used to
calculate the width of emojis on your terminal screen (#917,
#720)
+ Make the wcwidth functions available from Perl (#973):
string_width(str)
string_chars_for_width(str, width)
wcwidth(char)
+ Added completion_keep_word setting (#979)
+ Allow activity_hide_targets to hide activity in itemless
windows (#967, #997, #1001, #1003)
+ Added activity_hide_visible setting (#990)
+ Allow hiding of lines through the /IGNORE system (#901,
#900, #892, #890, #884, #937)
+ Add window_default_hidelevel setting. By Doug Freed (#941)
+ Add activity_hide_window_hidelevel setting, defaulting to ON
(#938)
+ Add autolog_only_saved_channels setting, to autolog only
channels that are in the config (#968)
+ Add format support for the input line. By Ben Paxton,
originally by Jonas Hurrelmann (#764, FS#621, #1004)
use Irssi::TextUI;
gui_input_set_extent(pos, text)
gui_input_set_extents(pos, len, left, right)
gui_input_clear_extents(pos, len)
gui_input_get_extent(pos)
gui_input_get_text_and_extents()
gui_input_set_text_and_extents(...)
+ Parsing of IRCv3 CAP 3.2 (#775, #869)
+ Show CAP-related events in the user interface (#918, #916,
#870, #704)
+ Continue using separators when addressing multiple nicks
with tab completion. By Manish Goregaokar (#822)
+ Bind Shift-tab by default. By Niklas Luokkala (#830, #829)
+ Fuzzing more things (#913, #780, #813)
- Disconnect SASL properly in case the SASL module got
unloaded from server (#931, #629, #618, #616)
- Fix backward completion jumping to the first instead of last
word (#979)
- Improve empty topic handling (#961, #905, #911, #897, #888)
- Prevent config truncation when no space left. By dequis and
Lukas Waymann (#922, #925, #910, #909, #906, #871, #817)
- Also time-out servers in lookup phase (#866, #130)
- Fix build with LibreSSL 2.7. By Dorian Harmans (#865)
- Fix a crash when appending to a textbuffer without
line. Reported by Jari Matilainen (#862)
- Fix segfault on sending large messages (#803, #796, #802)
- Fix segfault on invalid statusbar config (#993, #994)
- Fix random memory writes on restoring queries of foreign
protocols (#999, #1000)
- Make default keybinds deletable (#859, #507)
- Fix freeze when resizing Irssi very small (#946)
- Compare channels case-insensitively, avoiding confusions
with the config file (#857, #856)
- Fix DCC GET on Android. By Martin Staron (#844)
- Improve rawlog performance (#957)
- Fix nick escaping erroneously escaping quotes (#978, #974,
#709)
- Protect against theme recursion, improve padding
performance, limit alignment padding. Credit to Oss-Fuzz
(#835, #851, #850, #846, #848)
- Fix recursive loop in replaces (#833, GL#23)
- Fix headers for compilation of C modules (#939)
- Documentation. By Zero King (#814). (#852)
- Sync NEWS, docs, scripts (#849, #855)
- Build system (#868, #867, #985, #988)
- Fix build on IBM i and AIX. By Calvin Buckley (#975)
- Misc fixes (#840, #839, #843, #953, #962). Tests (#806,
#875, #905, #964, #1011). Fuzzing (#929).
v1.1.2 2019-01-09 The Irssi team <staff@irssi.org>
- Fix the resetting of window hiddenlevel (#861)
- Fix clearing of hidelevel in layout (#951)
- Fix accessing unallocated text when checking entry position
(#928, #930)
- Fix uninitialised memory on empty lines (#873, GL#31, #878,
#877, #907, #914)
- Fix use-after-free on expiration of hidden lines (#948)
- Fix use-after-frees. By Maya Rashish (#919)
- Fix out of bounds access in help display when window width
is small (#949)
- Fix paste_join_multiline (#970, #971)
- Correctly check for errno when displaying SSL errors. By
Janik Rabe (#895)
- Fix wrong signal emission argument count (#965)
- Documentation (#920). Sync NEWS, scripts (#849)
- Fix Perl detection on MacOS. By Dominyk Tiller (#927)
- Misc fixes. By Jaroslav Škarvada (#981, #982)
v1.1.1 2018-02-15 The Irssi team <staff@irssi.org>
! Contains all changes from 1.0.7
- Restore compatibility with OpenSSL < 1.0.2 (#820, #831)
- Fix test compilation on some platforms (#815, #816)
- Fix portability and backwards compatibility of test runner
(#818, #845)
v1.0.7 2018-02-15 The Irssi team <staff@irssi.org>
- Prevent use after free error during the execution of some
commands. Found by Joseph Bisch (GL#17, GL!24).
- Revert netsplit print optimisation due to crashes (#465, #809,
#812, #819, #824, #832).
- Fix use after free when SASL messages are received in
unexpected order (GL#26, GL!33).
- Fix null pointer dereference in the tab completion when an
empty nick is joined (GL#24, GL!31).
- Fix use after free when entering oper password (GL#22,
GL!32).
- Fix null pointer dereference when too many windows are
opened (GL#27, #837).
- Fix out of bounds access in theme strings when the last
escape is incomplete. Credit to Oss-Fuzz (#842).
- Fix out of bounds write when using negative counts on window
resize (GL#25, GL#29, #836).
- Minor help correction. By William Jackson (#834).
v1.1.0 2018-01-15 The Irssi team <staff@irssi.org>
! Warning. Irssi is broken and will crash with OpenSSL < 1.0.2
due to openssl/openssl commit
5b4b9ce976fce09a7a92e2f25b91a1635cb840fe
* Colour is now re-set when reaching a comma, matching mIRC
behaviour (#742, #740, #790)
* Irssi now shows the initial nick and name on first start
(#785, #786)
* lynx is no longer required to run autogen.sh (#81, #781)
* The command history no longer permits wrapping around (#686)
* /foreach now correctly sends arguments as commands, stopping
you from embarassing AMSGs (#659)
* /server does not connect to servers anymore, use /server
connect to change servers (#559, #649).
* The net_ip_compare API function is now deprecated, and the
previously deprecated net_connect has been removed. By Will
Storey (#770).
+ Add an option to ignore all channels or ignore all queries
using /set activity_hide_targets. By Jari Matilainen (#612,
#779)
+ Add a startup warning if the TERM var is wrong inside
tmux/screen (#726)
+ Add option to hide certain levels from the textbuffer using
/window hidelevel (#746, #808)
+ Irssi now has its first unit test (for mode parsing). By
Will Storey (#793)
+ Added access to global command history when using window
history, and a binding to erase entries from the command
history (erase_history_entry) (#762)
+ -alternate_nick is now available as a network specific
property. By Paul Townsend (#120, #771)
+ On FreeBSD, Irssi now supports Capsicum sandbox (/capsicum
enter). By Edward Tomasz Napierala (#735, #755, #772)
+ Filenames (directories) ending with a / now tab-complete
(#741)
+ UTF-8 should now work in regular expressions when using
GRegex (the default) (#636, #653)
+ Nicks are now properly escaped on completion. By Oscar
Linderholm (#693, #709)
+ /server add -port <num> now works. By Jari Matilainen (#703)
+ Add a setting key_timeout to make key sequences
automatically re-set when not finished (#644, #645)
+ Warn users about expired client certificates, as servers may
refuse them (#211, #627)
+ Add a new net_start_ssl function for StartTLS. This is
available from ABI 8 and can be used by protocol modules
(#615, #622).
+ The %# code is now stored in the textbuffer, so for example
web scripts can make use of it (#626)
+ Add new setting break_wide which can be used to enable
breaking of wide characters (for east-asian
users). Originally from FreeBSD ports. (#625)
+ Add fuzzing code (#610, #620, #701, #713)
- Netsplits show properly again (#812)
- Do not error on blank lines when using /exec -o. By Fabian
Kurz (FS#902, #805)
- Detect used nickname as reported by server. By Alexandre
Morignot (#219, #804)
- Prevent use after free error during the execution of some
commands. Found by Joseph Bisch. (GL#17, GL!24)
- Fix MODE parameter parsing when colon was used at a place
Irssi didn't expect (#601, #766)
- Fixed code to compile with
-Werror=declaration-after-statement (#795)
- Clang-format is now supported for git-clang-format (#784)
- Fix use after free when changing the network of
hilights. Reported by Rui Mathias. (#787, #788)
- Fix positioning error when tab-completing non-ascii
strings. (#752, #754)
- In-development issues (#750, #751)
- Clarify Alis in /help list (#699, #712)
- Improve /lastlog performance from O(N^2) to O(N) (#715)
- Fix a segfault on "script destroyed" signal. By Stephen
Oberholtzer (#660, #661).
- Fix early ISON error (#596, #647)
- Documentation improvements. By Paolo Martini (#639).
By Tristan Pepin (#731). By Paul Townsend (#684, #736).
By Will Storey (#777)
- Minor cleanups (#590). By Edward Tomasz Napierala (#734,
#738)
- Fix space issue in glib-2.0.m4 (#621)
v1.0.6 2018-01-07 The Irssi team <staff@irssi.org>
! Note: Code and aliases using `$($'-like constructs are no
longer supported due to issue GL#18. Sorry about the
inconvenience.
- Fix invalid memory access when reading hilight configuration
(#787, #788).
- Fix null pointer dereference when the channel topic is set
without specifying a sender (GL#20, GL!25).
- Fix return of random memory when using incomplete escape
codes (GL#21, GL!26).
- Fix heap buffer overflow when completing certain strings
(GL#19, GL!27).
- Fix return of random memory when using an incomplete
variable argument (GL#18, GL!28).
v1.0.5 2017-10-23 The Irssi team <staff@irssi.org>
- Fix missing -sasl_method '' in /NETWORK (#718, #719).
- Fix incorrect restoration of term state when hitting SUSP
inside screen (#737, #733).
- Fix out of bounds read when compressing colour
sequences. Found by Hanno Böck (GL#12, GL!18).
- Fix use after free condition during a race condition when
waiting on channel sync during a rejoin (GL#13, GL!19).
- Fix null pointer dereference when parsing certain malformed
CTCP DCC messages (GL#14, GL!20).
- Fix crash due to null pointer dereference when failing to
split messages due to overlong nick or target (GL#15, GL!21).
- Fix out of bounds read when trying to skip a safe channel ID
without verifying that the ID is long enough (GL#16, GL!22).
- Fix return of random memory when inet_ntop failed (#769).
- Minor statusbar help update. By Robert Bisewski (#758,
#763).
v1.0.4 2017-07-07 The Irssi team <staff@irssi.org>
- Fix null pointer dereference when parsing invalid timestamp (GL#10,
GL!15). Reported by Brian 'geeknik' Carpenter.
- Fix use-after-free condition when removing nicks from the internal
nicklist (GL#11, GL!16). Reported by Brian 'geeknik' Carpenter.
- Fix incorrect string comparison in DCC file names (#714).
- Fix regression in Irssi 1.0.3 where it would claim "Invalid time '-1'"
(#716, #722).
- Fix a bug when using \n to separate lines with expand_escapes (#723).
- Retain screen output on improper exit, to better see any error
messages (#287, #721).
- Minor help update (#729).
v1.0.3 2017-06-06 The Irssi team <staff@irssi.org>
! Regression info in 1.0.3: #716 Warnings on start up: invalid time '-1'
- Fix out of bounds read when scanning expandos (GL!11).
- Fix invalid memory access with quoted filenames in DCC
(GL#8, GL!12).
- Fix null-pointer dereference on DCC without address (GL#9, GL!13).
- Improve integer overflow handling. Originally reported by
oss-fuzz#525 (#706).
- Improve nicklist performance from O(N^2) to O(N) (#705).
- Fix initial screen redraw delay. By Stephen Oberholtzer
(#680, bdo#856201).
- Fix incorrect reset of true colours when resetting background. (#711).
- Fix missing -notls option in /SERVER. By Jari Matilainen (#117, #702).
- Fix minor history glitch on overcounter (#462, #685).
- Improved OpenSSL detection at compile time. By Rodrigo Rebello (#677).
- Improved NetBSD Terminfo detection. By Maya Rashish (#694, #698).
- Add missing syntax info for COMPLETION (#687, #688).
- Minor typo correction in help. By Michael Hansen (#707).
v1.0.2 2017-03-10 The Irssi team <staff@irssi.org>
! Warning. Irssi is broken on GLib 2.46 (bgo#755496)
- Prevent some null-pointer crashes (GL!9).
- Fix compilation with OpenSSL 1.1.0 (#628, #597).
- Correct dereferencing of already freed server objects during
output of netjoins. Found by APic (GL!10, GL#7).
- Fix in command arg parser to detect missing arguments in tail place
(#652, #651).
- Fix regression that broke incoming DCC file transfers (#667, #656).
- Fix issue with escaping \ in evaluated strings (#669, #520).
v1.0.1 2017-02-03 The Irssi team <staff@irssi.org>
- Fix Perl compilation in object dir. By Martijn Dekker (#602, #623).
- Disable EC cryptography on Solaris to fix build (#604, #598).
- Fix incorrect HELP SERVER example (#606, #519).
- Correct memory leak in /OP and /VOICE. By Tim Konick (#608).
- Fix regression that broke second level completion (#613, #609).
- Correct missing NULL termination in perl_parse. By Hanno Böck (#619).
- Sync broken mail.pl script (#624, #607).
- Prevent a memory leak during the processing of the SASL
response (GL!8, GL#5)
v1.0.0 2017-01-03 The Irssi team <staff@irssi.org>
* Removed --disable-ipv6 (#408).
* /connect Network now aborts with an error if no servers have been
added to that network.
added to that network (#443).
* /dcc commands now use quotes around spaces consistently.
+ irssiproxy can now forward all tags through a single port.
+ irssiproxy can also listen on unix sockets.
+ send channel -botcmds immediately when no mask is specified (#175).
* bell_beeps was removed (#524, #565).
* Switch to GRegex instead of regex.h (#412).
+ irssiproxy can now forward all tags through a single
port. By Lukas Mai (mauke, #425).
+ irssiproxy can also listen on unix sockets. By Lukas Mai (#427).
+ send channel -botcmds immediately when no mask is specified (#175, #399).
+ the kill buffer now remembers consecutive kills.
New bindings were added: yank_next_cutbuffer and append_next_kill
By Todd A. Pratt (#353, #414, #455)
+ connections will avoid looking up IPv6 addresses if the machine does
not have an IPv6 address assigned (exact behaviour is implementation
defined).
defined, #410).
+ Fix potential crash if scripts insert undef values into the completion
list.
+ Paste warning is now also shown on pasting overlong lines.
list (#413).
+ Paste warning is now also shown on pasting overlong
lines. By Manish Goregaokar (#426).
+ autolog_ignore_targets and activity_hide_targets learn a new syntax
tag/* and * to ignore whole networks or everything.
+ /hilight got a -matchcase flag to hilight case sensitively (#421).
By Jari Matilainen (vague666, #437)
+ /hilight got a -matchcase flag to hilight case
sensitively. By Thibault B (isundil, #421, #476).
+ Always build irssi with TLS support.
+ Rename SSL to TLS in the code and add -tls_* versions of the -ssl_*
options to /CONNECT and /SERVER, but make sure the -ssl_* options continue
@ -32,16 +779,16 @@ v0.8.21-head 2016-xx-xx The Irssi team <staff@irssi.org>
values like this: Start by downloading the certificate from a given IRC
server:
$ openssl s_client -connect chat.freenode.net:6697 < /dev/null 2>/dev/null | \
openssl x509 > freenode.cert
$ openssl s_client -connect irc.example.net:6697 < /dev/null 2>/dev/null | \
openssl x509 > example.cert
Find the value for -tls_pinned_cert:
$ openssl x509 -in freenode.cert -fingerprint -sha256 -noout
$ openssl x509 -in example.cert -fingerprint -sha256 -noout
Find the value for -tls_pinned_pubkey:
$ openssl x509 -in freenode.cert -pubkey -noout | \
$ openssl x509 -in example.cert -pubkey -noout | \
openssl pkey -pubin -outform der | \
openssl dgst -sha256 -c | \
tr a-z A-Z
@ -54,45 +801,87 @@ v0.8.21-head 2016-xx-xx The Irssi team <staff@irssi.org>
does not rely on the libval library. It is causing a lot of troubles for
our downstream maintainers.
+ /names and $[...] now uses utf8 string operations. By Xavier
G. (#40, #411, #471, #480).
+ New setting completion_nicks_match_case (#488).
+ /channel /server /network now support modify subcommand. By
Jari Matilainen (#338, #498).
+ Irssi::signal_remove now works with coderefs. By Tom Feist (shabble, #512).
+ /script reset got an -autorun switch (#540, #538).
+ cap_toggle can now be called from Perl, and fields
cap_active and cap_supported can be inspected (#542).
+ Make it possible to disable empty line completion. By Lauri
Tirkkonen (lotheac, #574).
+ New option sasl_disconnect_on_failure to disconnect when
SASL log-in failed (#514).
- IP addresses are no longer stored when resolve_reverse_lookup is
used.
- /names and $[...] now uses utf8 string operations (#40, #411).
- Removed broken support for curses.
- Removed broken support for curses (#521).
- Removed broken dummy mode (#526).
- Fix terminal state after suspend (#450, #452).
- Improve Perl library path detection (#479, #132).
- Reconnect now works on unix connections (#493).
- Fix completion warnings (#125, #496, FS#124).
- Fix a crash in the --more-- item (#501).
- Fix a display issue in /unignore (#517, bdo#577202).
- Fix a crash in some netsplits (#529, #500).
- Fix crashes with some invalid config (#550, #551, #563, #564, #587, #581, #570).
- Add support for SASL Fragmentation. By Kenny Root (kruton, #506).
- Improve netsplit dumping (#420, #465).
- Improve responsibility under DCC I/O strain (#578, #159).
- Fix query nick change on open (#580, #586).
- Correct a few help texts.
v0.8.21 2017-01-03 The Irssi team <staff@irssi.org>
- Correct a NULL pointer dereference in the nickcmp function found by
Joseph Bisch (GL#1)
- Correct an out of bounds read in certain incomplete control codes
found by Joseph Bisch (GL#2)
- Correct an out of bounds read in certain incomplete character
sequences found by Hanno Böck and independently by J. Bisch (GL#3)
- Correct an error when receiving invalid nick message (GL#4, #466)
v0.8.20 2016-09-16 The Irssi team <staff@irssi.org>
- Correct the name of an emitted sasl signal (#484)
- Correct the prototype for the 'message private' signal (#515)
- Corrections in away and hilight help text (#477, #518)
- /squery and /servlist commands have been restored.
- /squery and /servlist commands have been restored (#461).
- Where Irssi would previously only report "System error" on connect,
it will now try harder to retrieve the system error message.
it will now try harder to retrieve the system error message (#467).
- Fixed issue with +channels not working properly (#533)
- Fixed crash in optchan when item has no server (#485)
- Fixed crash in optchan when item has no server (#485, bdo#826525)
- Fixed random remote crash in the nicklist handling (#529)
- Fixed remote crash due to incorrect bounds checking on
formats, reported by Gabriel Campana and Adrien Guinet from
Quarkslab.
v0.8.19 2016-03-23 The Irssi team <staff@irssi.org>
! If your cursor keys stopped working, try this first: `/bind
meta-O key meta2'
- Fixed regression when joining and parting channels on IRCnet (#435)
- Fixed SASL EXTERNAL (#432)
- Fixed SASL EXTERNAL. By Mantas Mikulėnas (grawity, #432)
- Fixed regression when not using SASL (#438)
- Fixed incorrect SSL disconnects when using SSL from modules/scripts
(#439)
- Fixed incorrect SSL disconnects when using SSL from modules/scripts.
By Will Storey (horgh, #439)
- Fixed regression where proxy_string could not be configured or
certain file transfers could not be accepted (#445)
- Fixed storing layout of !channels (#183)
- Fixed restoration of bracketed paste mode on quit (#449)
certain file transfers could not be accepted (#445, #446)
- Fixed storing layout of !channels (#183, #405)
- Fixed restoration of bracketed paste mode on quit (#449, #457)
- Make the usage of meta-O for cursor keys configurable with
/set term_appkey_mode off
(#430, #459)
v0.8.18 2016-02-13 The Irssi team <staff@irssi.org>
* Modules will now require to define a
void MODULENAME ## _abicheck(int *version)
method to ensure that they are compiled against the correct Irssi
version.
* The signature of "message private" has been changed to
5: server, message, nick, address, target
in order to support "self messages". Module authors should
implement this change if they are using this signal.
* Removing networks will now remove all attached servers and channels
@ -105,12 +894,14 @@ v0.8.18 2016-02-13 The Irssi team <staff@irssi.org>
effect for anyone given that it has been unsupported for several years.
+ CAP SASL PLAIN login is now supported natively.
+ Paste bracket markers can be requested from terminal with
/set paste_use_bracketed_mode on
+ "Self messages" generated by some bouncers can now be received in the
proper window.
+ Try to split long lines on spaces to avoid words being splitted. Adds
a new option: 'split_line_on_space' which defaults to on.
+ Add setting hilight_nick_matches_everywhere (#56).
a new option: `split_line_on_space' which defaults to on.
+ Add setting `hilight_nick_matches_everywhere' (#56).
+ The config parser is more robust and prints out better diagnostics on
incorrect config files.
+ Ctrl+^ (FS#721) and Ctrl+J can now be bound.

137
README.md
View file

@ -1,109 +1,74 @@
# Irssi
# [Irssi](https://irssi.org)
[![Build Status](https://travis-ci.org/irssi/irssi.svg?branch=master)](https://travis-ci.org/irssi/irssi)
![Build Status](https://github.com/irssi/irssi/workflows/Check%20Irssi/badge.svg?branch=master)
Irssi is a modular chat client that is most commonly known for its
text mode user interface, but 80% of the code isn't text mode
specific. We have a working but currently unmaintained GTK2 frontend
called xirssi. Irssi comes with IRC support built in, and there are
third party [ICB](https://github.com/jperkin/irssi-icb),
Irssi is a modular text mode chat client. It comes with IRC support
built in, and there are third party
[ICB](https://github.com/jperkin/irssi-icb),
[SILC](http://www.silcnet.org/),
[XMPP](http://cybione.org/~irssi-xmpp/) (Jabber),
[PSYC](https://github.com/electric-blue/irssyc) and
[PSYC](http://about.psyc.eu/Irssyc) and
[Quassel](https://github.com/phhusson/quassel-irssi) protocol modules
available.
## Installation
![irssi](https://user-images.githubusercontent.com/5665186/32180643-cf127f60-bd92-11e7-8aa2-882313ce1d8e.png)
See the `INSTALL` file.
## [Download information](https://irssi.org/download/)
## Features
#### Development source installation
So what's so great about Irssi? Here's a list of some features I can
think of currently:
[Ninja](https://ninja-build.org/) 1.8 and [Meson](https://mesonbuild.com/) 0.53
- **Optional automation** - There's lots of things Irssi does for you
automatically that some people like and others just hate. Things like:
nick completion, creating new window for newly joined channel, creating
queries when msgs/notices are received or when you send a msg, closing
queries when it's been idle for some time, etc.
```
git clone https://github.com/irssi/irssi
cd irssi
meson Build
ninja -C Build && sudo ninja -C Build install
```
- **Multiserver friendy** - I think Irssi has clearly the best support
for handling multiple server connections. You can have as many as you
want in as many ircnets as you want. Having several connections in one
server works too, for example when you hit the (ircnet's) 10
channels/connection limit you can just create another connection and
you hardly notice it. If connection to server is lost, Irssi tries to
connect back until it's successful. Also channels you were joined
before disconnection are restored, even if they're "temporarily
unavailable" because of netsplits, Irssi keeps rejoining back to them.
Also worth noticing - there's not that stupid "server is bound to this
window, if this window gets closed the connection closes" thing that
ircII based clients have.
#### Release source installation
- **Channel automation** - You can specify what channels to join to
immediately after connected to some server or IRC network. After joined
to channel, Irssi can automatically request ops for you (or do
anything, actually) from channel's bots.
* Download [release](https://github.com/irssi/irssi/releases)
* Verify signature
```
tar xJf irssi-*.tar.xz
cd irssi-*
meson Build
ninja -C Build && sudo ninja -C Build install
```
- **Window content saving** - Say /LAYOUT SAVE when you've put all the
channels and queries to their correct place, and after restarting
Irssi, the channels will be joined back into windows where they were
saved.
### Requirements
- **Tab completing anything** - You can complete lots of things with tab:
nicks, commands, command -options, file names, settings, text format
names, channels and server names. There's also an excellent /msg
completion that works transparently with multiple IRC networks.
Completing channel nicks is also pretty intelligent, it first goes
through the people who have talked to you recently, then the people who
have talked to anyone recently and only then it fallbacks to rest of
the nicks. You can also complete a set of words you've specified, for
example homepage<tab> changes it to your actual home page URL.
- [glib-2.32](https://wiki.gnome.org/Projects/GLib) or greater
- [openssl](https://www.openssl.org/)
- [perl-5.8](https://www.perl.org/) or greater (for perl support)
- terminfo or ncurses (for text frontend)
- **Excellent logging** - You can log any way you want and as easily or
hard as you want. With autologging Irssi logs everything to specified
directory, one file per channel/nick. ircII style /WINDOW LOG ON is
also supported. There's also the "hard way" of logging - /LOG command
which lets you specify exactly what you wish to log and where. Log
rotating is supported with all the different logging methods, you can
specify how often you want it to rotate and what kind of time stamp to
use.
#### See the [INSTALL](INSTALL) file for details
- **Excellent ignoring** - You can most probably ignore anything any way
you want. Nick masks, words, regular expressions. You can add
exceptions to ignores. You can ignore other people's replies in
channels to nicks you have ignored. You can also specify that the
specific ignores work only in specific channel(s).
## [Documentation](https://irssi.org/documentation/)
- **Lastlog and scrollback handling** - /LASTLOG command has some new
features: -new option checks only lines that came since you last did
/LASTLOG command, -away option checks new lines since you last went
away. Regular expression matches work also, of course. Going to some
wanted place at scrollback has always been hard with non-GUI clients. A
search command that jumps around in scrollback in GUI-style is still
missing from Irssi, but there's something that's almost as good as it.
/LASTLOG always shows timestamps when the line was printed, even if you
didn't have timestamps on. Now doing /SB GOTO <timestamp> jumps
directly to the position in scrollback you wanted. Great feature when
you want to browse a bit of the discussion what happened when someone
said your name (as seen in awaylog) or topic was changed (/last
-topics)
* [New users guide](https://irssi.org/New-users/)
* [Questions and Answers](https://irssi.org/documentation/qna/)
* Check the built-in `/HELP`, it has all the details on command syntax
## Files
## [Themes](https://irssi-import.github.io/themes/)
- The `docs/` directory contains several documents:
- `startup-HOWTO.txt` - new users should read this
- `manual.txt` - manual I started writing but didn't get it very far :)
- `perl.txt` - Perl scripting help
- `formats.txt` - How to use colors, etc. with irssi
- `faq.txt` - Frequently Asked Questions
- `special_vars.txt` - some predefined $variables you can use with irssi
## [Scripts](https://scripts.irssi.org/)
## Bugs / Suggestions
## [Modules](https://irssi.org/modules/)
See the `TODO` file, http://bugs.irssi.org and the GitHub issues if it is
already listed in there; if not, open an issue on GitHub or send a mail to
[staff@irssi.org](mailto:staff@irssi.org).
## [Security information](https://irssi.org/security/)
You can also contact the Irssi developers in #irssi on freenode.
Please report security issues to staff@irssi.org. Thanks!
## [Bugs](https://github.com/irssi/irssi/issues) / Suggestions / Contributing
Check the GitHub issues if it is already listed in there; if not, open
an issue on GitHub or send a mail to [staff@irssi.org](mailto:staff@irssi.org).
Irssi is always looking for developers. Feel free to submit patches through
GitHub pull requests.
You can also contact the Irssi developers in
[#irssi](https://irssi.org/support/irc/) on irc.libera.chat.

View file

@ -1,67 +0,0 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
PKG_NAME="Irssi"
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
if test ! -f $srcdir/configure.ac; then
echo -n "**Error**: Directory \`$srcdir\' does not look like the"
echo " top-level $PKG_NAME directory"
exit 1
fi
# create help files
echo "Creating help files..."
perl syntax.pl
echo "Creating ChangeLog..."
git log > $srcdir/ChangeLog
if test "$?" -ne 0; then
echo "**Error**: ${PKG_NAME} Autogen must be run in a git clone, cannot proceed."
exit 1
fi
files=`echo docs/help/in/*.in|sed -e 's,docs/help/in/Makefile.in ,,' -e 's,docs/help/in/,!,g' -e 's/\.in /.in ?/g'`
cat docs/help/in/Makefile.am.gen|sed "s/@HELPFILES@/$files/g"|sed 's/?/\\?/g'|tr '!?' '\t\n' > docs/help/in/Makefile.am
files=`echo $files|sed 's/\.in//g'`
cat docs/help/Makefile.am.gen|sed "s/@HELPFILES@/$files/g"|sed 's/?/\\?/g'|tr '!?' '\t\n' > docs/help/Makefile.am
# .html -> .txt with lynx or elinks
echo "Documentation: html -> txt..."
if type lynx >/dev/null 2>&1 ; then
LC_ALL=en_IE.utf8 lynx -dump docs/faq.html|perl -pe 's/^ *//; if ($_ eq "\n" && $state eq "Q") { $_ = ""; } elsif (/^([QA]):/) { $state = $1 } elsif ($_ ne "\n") { $_ = " $_"; };' > docs/faq.txt
elif type elinks >/dev/null 2>&1 ; then
elinks -dump docs/faq.html|perl -pe 's/^ *//; if ($_ eq "\n" && $state eq "Q") { $_ = ""; } elsif (/^([QA]):/) { $state = $1 } elsif ($_ ne "\n") { $_ = " $_"; };' > docs/faq.txt
elif type links >/dev/null 2>&1 ; then
links -dump docs/faq.html|perl -pe 's/^ *//; if ($_ eq "\n" && $state eq "Q") { $_ = ""; } elsif (/^([QA]):/) { $state = $1 } elsif ($_ ne "\n") { $_ = " $_"; };' > docs/faq.txt
else
echo "**Error**: No lynx or elinks present"
exit 1
fi
if test x$NOCONFIGURE = x && test -z "$*"; then
echo "**Warning**: I am going to run \`configure' with no arguments."
echo "If you wish to pass any to it, please specify them on the"
echo \`$0\'" command line."
echo
fi
rm -f aclocal.m4
echo "Running autoreconf ..."
autoreconf -i || exit 1
conf_flags="--enable-maintainer-mode"
if test x$NOCONFIGURE = x; then
echo Running $srcdir/configure $conf_flags "$@" ...
$srcdir/configure $conf_flags "$@" \
&& echo Now type \`make\' to compile $PKG_NAME || exit 1
else
echo Skipping configure process.
fi
# make sure perl hashes have correct length
find src/perl -name *.c -o -name *.xs | xargs grep -n hv_store | perl -ne 'if (/"(\w+)",\s*(\d+)/) { print unless $2 == length $1 }'

View file

@ -1,626 +0,0 @@
AC_INIT(irssi, 0.8.21-head)
AC_CONFIG_SRCDIR([src])
AC_CONFIG_AUX_DIR(build-aux)
AC_PREREQ(2.50)
AC_CONFIG_HEADERS([irssi-config.h])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([1.9 no-define foreign])
AM_SILENT_RULES([yes])
AM_MAINTAINER_MODE
AC_PROG_CC
AC_PROG_CPP
AM_PROG_LIBTOOL
AC_PATH_PROG(sedpath, sed)
AC_PATH_PROG(perlpath, perl)
AC_CHECK_HEADERS(unistd.h dirent.h sys/ioctl.h sys/resource.h)
# check posix headers..
AC_CHECK_HEADERS(sys/socket.h sys/time.h sys/utsname.h regex.h)
AC_SYS_LARGEFILE
AC_ARG_WITH(textui,
[ --without-textui Build without text frontend],
if test x$withval = xno; then
want_textui=no
else
want_textui=yes
fi,
want_textui=yes)
AC_ARG_WITH(bot,
[ --with-bot Build irssi-bot],
if test x$withval = xno; then
want_irssibot=no
else
want_irssibot=yes
fi,
want_irssibot=no)
AC_ARG_WITH(proxy,
[ --with-proxy Build irssi-proxy],
if test x$withval = xno; then
want_irssiproxy=no
else
want_irssiproxy=yes
fi,
want_irssiproxy=no)
AC_ARG_WITH(modules,
[ --with-modules Specify what modules to build in binary],
if test x$withval != xyes -a x$withval != xno; then
build_modules="$withval"
fi)
if test "x$prefix" != "xNONE"; then
prefix=`eval echo $prefix`
PERL_MM_PARAMS="INSTALLDIRS=perl INSTALL_BASE=$prefix"
perl_set_use_lib=yes
perl_prefix_note=yes
fi
AC_ARG_WITH(perl-staticlib,
[ --with-perl-staticlib Specify that we want to link perl libraries
statically in irssi, default is no],
if test x$withval = xno; then
want_staticperllib=no
else
want_staticperllib=yes
fi,
want_staticperllib=no)
AC_ARG_WITH(perl-lib,
[ --with-perl-lib=[perl|site|vendor|DIR] Specify where to install the
Perl libraries for irssi, default is site],
if test "x$withval" = xyes; then
want_perl=yes
elif test "x$withval" = xno; then
want_perl=no
elif test "x$withval" = xperl; then
want_perl=yes
perl_prefix_note=no
PERL_MM_PARAMS="INSTALLDIRS=perl"
perl_set_use_lib=no
elif test "x$withval" = xsite; then
want_perl=yes
perl_prefix_note=no
PERL_MM_PARAMS=""
perl_set_use_lib=no
elif test "x$withval" = xvendor; then
want_perl=yes
perl_prefix_note=no
if test -z "`$perlpath -v|grep '5\.0'`"; then
PERL_MM_PARAMS="INSTALLDIRS=vendor"
else
PERL_MM_PARAMS="INSTALLDIRS=perl PREFIX=`$perlpath -e 'use Config; print $Config{prefix}'`"
fi
perl_set_use_lib=no
else
want_perl=yes
perl_prefix_note=no
PERL_MM_PARAMS="INSTALLDIRS=perl LIB=$withval"
perl_set_use_lib=yes
fi,
want_perl=yes)
AC_ARG_WITH(perl,
[ --with-perl[=yes|no|module] Build with Perl support - also specifies
if it should be built into main irssi binary
(static, default) or as module],
if test x$withval = xyes; then
want_perl=static
elif test x$withval = xstatic; then
want_perl=static
elif test x$withval = xmodule; then
want_perl=module
else
want_perl=no
fi,
want_perl=static)
AC_ARG_ENABLE(true-color,
[ --enable-true-color Build with true color support in terminal],
if test x$enableval = xno ; then
want_truecolor=no
else
want_truecolor=yes
fi,
want_truecolor=no)
dnl **
dnl ** just some generic stuff...
dnl **
dnl * OS specific options
case "$host_os" in
hpux*)
CFLAGS="$CFLAGS -D_XOPEN_SOURCE_EXTENDED"
;;
*)
;;
esac
AC_SEARCH_LIBS([socket], [network socket])
AC_SEARCH_LIBS([inet_addr], [nsl])
dnl * gcc specific options
if test "x$ac_cv_prog_gcc" = "xyes"; then
CFLAGS="$CFLAGS -Wall"
fi
AC_CHECK_TYPE(socklen_t, ,
[AC_DEFINE([socklen_t], [int], [Define to 'int' if <sys/socket.h> doesn't define.])], [
AC_INCLUDES_DEFAULT
#ifdef HAVE_SYS_SOCKET_H
# include <sys/socket.h>
#endif
])
AC_CHECK_SIZEOF(int)
AC_CHECK_SIZEOF(long)
AC_CHECK_SIZEOF(long long)
AC_CHECK_SIZEOF(off_t)
if test $ac_cv_sizeof_off_t = 8; then
offt_64bit=yes
else
offt_64bit=no
fi
if test x$ac_cv_sizeof_off_t = x$ac_cv_sizeof_long; then
# try to use unsigned long always first
AC_DEFINE_UNQUOTED(PRIuUOFF_T, "lu")
AC_DEFINE(UOFF_T_LONG)
elif test x$ac_cv_sizeof_off_t = x$ac_cv_sizeof_int; then
# next try int
AC_DEFINE_UNQUOTED(PRIuUOFF_T, "u")
AC_DEFINE(UOFF_T_INT)
elif test x$ac_cv_sizeof_off_t = x$ac_cv_sizeof_long_long; then
# and finally long long
AC_DEFINE_UNQUOTED(PRIuUOFF_T, "llu")
AC_DEFINE(UOFF_T_LONG_LONG)
else
AC_ERROR([Couldn't find integer type for off_t])
fi
dnl **
dnl ** OpenSSL checks
dnl **
AC_CHECK_LIB([ssl], [SSL_library_init])
dnl **
dnl ** fe-text checks
dnl **
for try in 1 2; do
if test $try = 1; then
glib_modules=gmodule
else
echo "*** trying without -lgmodule"
glib_modules=
fi
AM_PATH_GLIB_2_0(2.16.0,,, $glib_modules)
if test "$GLIB_LIBS"; then
if test $glib_modules = gmodule; then
AC_DEFINE(HAVE_GMODULE)
have_gmodule=yes
fi
break
fi
done
if test -z "$GLIB_LIBS"; then
echo
echo "*** If you don't have GLIB, you can get it from ftp://ftp.gtk.org/pub/glib/"
echo "*** We recommend you get the latest stable GLIB 2 version."
echo "*** Compile and install it, and make sure pkg-config finds it,"
echo "*** by adding the path where the .pc file is located to PKG_CONFIG_PATH"
echo -n "*** Or alternatively install your distribution's package"
if test -f /etc/debian_version; then
echo :
echo "*** sudo apt-get install libglib2.0-dev"
elif test -f /etc/redhat-release; then
echo " (glib2-devel)"
else
echo .
fi
echo
AC_ERROR([GLIB is required to build irssi.])
fi
LIBS="$LIBS $GLIB_LIBS -lssl -lcrypto"
dnl **
dnl ** curses checks
dnl **
if test "x$want_textui" != "xno"; then
TEXTUI_NO_LIBS="$LIBS"
LIBS=
AC_SEARCH_LIBS([setupterm], [tinfo ncursesw ncurses], [want_textui=yes], [
AC_ERROR(Terminfo not found - install libncurses-dev or ncurses-devel package)
want_textui="no, Terminfo not found"
])
TEXTUI_LIBS="$LIBS"
AC_SUBST(TEXTUI_LIBS)
LIBS="$TEXTUI_NO_LIBS"
fi
dnl **
dnl ** perl checks
dnl **
if test "$want_perl" != "no"; then
AC_MSG_CHECKING(for working Perl support)
if test -z "$perlpath"; then
perl_check_error="perl binary not found"
else
PERL_CFLAGS=`$perlpath -MExtUtils::Embed -e ccopts 2>/dev/null`
fi
if test "x$ac_cv_prog_gcc" = "xyes" -a -z "`echo $host_os|grep 'bsd\|linux'`"; then
dnl * several systems have Perl compiled with native compiler
dnl * but irssi is being compiled with GCC. Here we try to
dnl * fix those command line options a bit so GCC won't
dnl * complain about them. Normally there's only few options
dnl * that we want to keep:
dnl * -Ddefine -Uundef -I/path -fopt -mopt
PERL_CFLAGS=`echo $PERL_CFLAGS | $perlpath -pe 's/^(.* )?-@<:@^DUIfm@:>@@<:@^ @:>@+/\1/g; s/^(.* )?\+@<:@^ @:>@+/\1/g'`
PERL_EXTRA_OPTS="CCCDLFLAGS=\"-fPIC\""
AC_SUBST(PERL_EXTRA_OPTS)
fi
if test -z "$PERL_CFLAGS"; then
if test -n "$perl_check_error"; then
perl_check_error="Error getting perl CFLAGS"
fi
AC_MSG_RESULT([not found, building without Perl])
want_perl=no
else
PERL_LDFLAGS=`$perlpath -MExtUtils::Embed -e ldopts 2>/dev/null`
dnl * remove all database stuffs
dnl * nsl is already in ldflags
dnl * libc is of course linked without needing -lc
dnl * -rdynamic must not be in LIBADD line
for word in -ldb -ldbm -lndbm -lgdbm -lc -rdynamic; do
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e "s/$word //" -e "s/$word$//"`
done
case "$host_os" in
linux*)
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-lposix //' -e 's/-lposix$//'`
;;
hpux*)
if test "x$ac_cv_prog_gcc" = "xyes"; then
PERL_CFLAGS=`echo $PERL_CFLAGS | $sedpath -e 's/-Ae //' -e 's/-Ae$//'`
PERL_LDFLAGS=`echo $PERL_LDFLAGS | $sedpath -e 's/-Ae //' -e 's/-Ae$//'`
fi
;;
*)
;;
esac
dnl * check that perl's ldflags actually work
echo "#include <EXTERN.h>" > conftest.c
echo "#include <perl.h>" >> conftest.c
echo "int main(){perl_alloc(); return 0;}" >> conftest.c
$CC $CFLAGS $PERL_CFLAGS conftest.c -o conftest $LDFLAGS $PERL_LDFLAGS 2> perl.error.tmp > /dev/null
if test ! -s conftest -a "x$ignore_perl_errors" = "x"; then
perl_check_error="Error linking with perl libraries: $PERL_LDFLAGS: `cat perl.error.tmp`"
AC_MSG_RESULT([error linking with perl libraries, building without Perl])
want_perl=no
fi
rm -f perl.error.tmp
fi
if test "x$want_perl" != "xno"; then
AC_MSG_RESULT(ok)
if test "x$want_perl" = "xstatic"; then
dnl * building with static perl support
dnl * all PERL_LDFLAGS linking is done in fe-text
PERL_LINK_FLAGS="$PERL_LDFLAGS"
PERL_LINK_LIBS="../perl/libperl_core_static.la"
PERL_FE_LINK_LIBS="../perl/libfe_perl_static.la"
PERL_LDFLAGS=
AC_DEFINE(HAVE_STATIC_PERL)
dnl * build only static library of perl module
perl_module_lib=
perl_module_fe_lib=
perl_static_lib=libperl_core_static.la
perl_static_fe_lib=libfe_perl_static.la
else
dnl * build dynamic library of perl module
perl_module_lib=libperl_core.la
perl_module_fe_lib=libfe_perl.la
perl_static_lib=
perl_static_fe_lib=
fi
if test "x$want_staticperllib" = "xyes"; then
PERL_MM_PARAMS="$PERL_MM_PARAMS LINKTYPE=static"
PERL_LINK_LIBS="$PERL_LINK_LIBS ../perl/common/blib/arch/auto/Irssi/Irssi.a ../perl/irc/blib/arch/auto/Irssi/Irc/Irc.a ../perl/ui/blib/arch/auto/Irssi/UI/UI.a ../perl/textui/blib/arch/auto/Irssi/TextUI/TextUI.a"
PERL_STATIC_LIBS=1
else
PERL_STATIC_LIBS=0
fi
# remove any prefix from PERL_MM_OPT
PERL_MM_OPT=`perl -MText::ParseWords -e 'sub qu{$_=shift;s{^(.*?)=(.*)$}{($a,$b)=($1,$2);$b=~s/"/\\\\"/g;qq{$a="$b"}}ge if /@<:@\s"@:>@/;$_} local $,=" "; print map qu($_), grep !/^(INSTALL_BASE|PREFIX)=/, shellwords(@ARGV)' "$PERL_MM_OPT"`
# figure out the correct @INC path - we'll need to do this
# through MakeMaker since it's difficult to get it right
# otherwise.
$perlpath -MExtUtils::MakeMaker -e 'WriteMakefile(NAME => "test", MAKEFILE => "Makefile.test", FIRST_MAKEFILE => "/dev/null", NO_META => 1, NO_MYMETA => 1);' $PERL_MM_PARAMS >/dev/null
echo 'show-INSTALLDIRS:' >> Makefile.test
echo ' @echo $(INSTALLDIRS)' >> Makefile.test
perl_INSTALLDIRS=`$am_make -s -f Makefile.test show-INSTALLDIRS`
if test "x$perl_INSTALLDIRS" = "xsite"; then
perl_library_dir="site default"
perl_INSTALL_VAR=INSTALLSITEARCH
elif test "x$perl_INSTALLDIRS" = "xvendor"; then
perl_library_dir="vendor default"
perl_INSTALL_VAR=INSTALLVENDORARCH
else
perl_library_dir="module default"
perl_INSTALL_VAR=INSTALLARCHLIB
fi
echo 'show-ARCHLIB:' >> Makefile.test
echo ' @echo $('"$perl_INSTALL_VAR"')' >> Makefile.test
perl_use_lib=`$am_make -s -f Makefile.test show-ARCHLIB`
rm -f Makefile.test
if test "x$perl_set_use_lib" = "xyes"; then
if $perlpath -e 'exit ! grep $_ eq $ARGV@<:@0@:>@, grep /^\//, @INC' "$perl_use_lib"; then
perl_library_dir="other path in @INC"
perl_set_use_lib=no
else
perl_library_dir="prepends to @INC with /set perl_use_lib"
PERL_USE_LIB="$perl_use_lib"
fi
fi
AC_SUBST(perl_module_lib)
AC_SUBST(perl_static_lib)
AC_SUBST(perl_module_fe_lib)
AC_SUBST(perl_static_fe_lib)
AC_SUBST(PERL_LINK_FLAGS)
AC_SUBST(PERL_LINK_LIBS)
AC_SUBST(PERL_FE_LINK_LIBS)
AC_SUBST(PERL_LDFLAGS)
AC_SUBST(PERL_CFLAGS)
AC_SUBST(PERL_USE_LIB)
AC_SUBST(PERL_MM_OPT)
AC_SUBST(PERL_MM_PARAMS)
AC_SUBST(PERL_STATIC_LIBS)
fi
fi
dnl ** check what we want to build
AM_CONDITIONAL(BUILD_TEXTUI, test "$want_textui" = "yes")
AM_CONDITIONAL(BUILD_IRSSIBOT, test "$want_irssibot" = "yes")
AM_CONDITIONAL(BUILD_IRSSIPROXY, test "$want_irssiproxy" = "yes")
AM_CONDITIONAL(HAVE_PERL, test "$want_perl" != "no")
# move LIBS to PROG_LIBS so they're not tried to be used when linking eg. perl libraries
PROG_LIBS=$LIBS
LIBS=
AC_SUBST(PROG_LIBS)
dnl **
dnl ** Keep all the libraries here so each frontend doesn't need to
dnl ** keep track of them all
dnl **
dnl ** (these could be made configurable)
CHAT_MODULES="irc"
irc_MODULES="dcc flood notifylist"
if test -n "$build_modules"; then
irc_MODULES="$irc_MODULES $build_modules"
fi
dnl ****************************************
AC_SUBST(CHAT_MODULES)
AC_SUBST(irc_MODULES)
CORE_LIBS="../core/libcore.a ../lib-config/libirssi_config.a"
FE_COMMON_LIBS=""
CHAT_LIBS=""
for c in $CHAT_MODULES; do
module_inits=""
module_deinits=""
fe_module_inits=""
fe_module_deinits=""
CHAT_LIBS="$CHAT_LIBS ../$c/lib$c.a ../$c/core/lib${c}_core.a"
if test -f $srcdir/src/fe-common/$c/module.h; then
FE_COMMON_LIBS="$FE_COMMON_LIBS../fe-common/$c/libfe_common_$c.a "
fi
for s in `eval echo \\$${c}_MODULES`; do
CHAT_LIBS="$CHAT_LIBS ../$c/$s/lib${c}_$s.a"
module_inits="$module_inits ${c}_${s}_init();"
module_deinits="${c}_${s}_deinit(); $module_deinits"
if test -f $srcdir/src/fe-common/$c/$s/module.h; then
FE_COMMON_LIBS="$FE_COMMON_LIBS../fe-common/$c/$s/libfe_${c}_$s.a "
fe_module_inits="$fe_module_inits fe_${c}_${s}_init();"
fe_module_deinits="fe_${c}_${s}_deinit(); $fe_module_deinits"
fi
done
mkdir -p src/$c
file="src/$c/$c.c"
echo "/* this file is automatically generated by configure - don't change */" > $file
echo "void ${c}_core_init(void); void ${c}_core_deinit(void);" >> $file
if test -n "$module_inits"; then
echo "$module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
echo "$module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
fi
echo "void ${c}_init(void) { ${c}_core_init(); $module_inits }" >> $file
echo "void ${c}_deinit(void) { $module_deinits ${c}_core_deinit(); }" >> $file
if test -f $srcdir/src/fe-common/$c/module.h; then
mkdir -p src/fe-common/$c
file="src/fe-common/$c/${c}-modules.c"
echo "/* this file is automatically generated by configure - don't change */" > $file
if test -n "$fe_module_inits"; then
echo "$fe_module_inits" | $sedpath -e 's/()/(void)/g' -e 's/ /void /g' >> $file
echo "$fe_module_deinits" | $sedpath -e 's/ *$//' -e 's/()/(void)/g' -e 's/ /void /g' -e 's/^/void /' >> $file
fi
echo "void fe_${c}_modules_init(void) { $fe_module_inits }" >> $file
echo "void fe_${c}_modules_deinit(void) { $fe_module_deinits }" >> $file
fi
done
FE_COMMON_LIBS="$FE_COMMON_LIBS../fe-common/core/libfe_common_core.a"
dnl ** common libraries needed by frontends
COMMON_NOUI_LIBS="$CHAT_LIBS $CORE_LIBS"
COMMON_LIBS="$FE_COMMON_LIBS $COMMON_NOUI_LIBS"
AC_SUBST(COMMON_NOUI_LIBS)
AC_SUBST(COMMON_LIBS)
if test "x$want_truecolor" = "xyes"; then
AC_DEFINE([TERM_TRUECOLOR], [], [true color support in terminal])
else
want_truecolor=no
fi
AH_TEMPLATE(HAVE_GMODULE)
AH_TEMPLATE(HAVE_SOCKS_H, [misc..])
AH_TEMPLATE(HAVE_STATIC_PERL)
AH_TEMPLATE(PRIuUOFF_T, [printf()-format for uoff_t, eg. "u" or "lu" or "llu"])
AH_TEMPLATE(UOFF_T_INT, [What type should be used for uoff_t])
AH_TEMPLATE(UOFF_T_LONG)
AH_TEMPLATE(UOFF_T_LONG_LONG)
AC_CONFIG_FILES([
Makefile
src/Makefile
src/core/Makefile
src/irc/Makefile
src/irc/core/Makefile
src/irc/dcc/Makefile
src/irc/notifylist/Makefile
src/irc/proxy/Makefile
src/irc/flood/Makefile
src/fe-common/Makefile
src/fe-common/core/Makefile
src/fe-common/irc/Makefile
src/fe-common/irc/dcc/Makefile
src/fe-common/irc/notifylist/Makefile
src/fe-none/Makefile
src/fe-text/Makefile
src/lib-config/Makefile
src/perl/Makefile
src/perl/common/Makefile.PL
src/perl/irc/Makefile.PL
src/perl/ui/Makefile.PL
src/perl/textui/Makefile.PL
scripts/Makefile
scripts/examples/Makefile
docs/Makefile
docs/help/Makefile
docs/help/in/Makefile
irssi-config
])
AC_OUTPUT
dnl ** for building from objdir
old_dir=`pwd` && cd $srcdir && whole_dir=`pwd` && cd $old_dir
if test "x$old_dir" != "x$whole_dir"; then
$LN_S $srcdir/irssi-version.h irssi-version.h
if test "x$want_perl" != "xno"; then
subdirfiles=""
for i in $whole_dir/src/perl/common $whole_dir/src/perl/irc $whole_dir/src/perl/ui $whole_dir/src/perl/textui; do
subdirfiles=`echo $subdirfiles $i/typemap $i/module.h $i/*.pm $i/*.xs`
done
for file in $whole_dir/src/perl/module.h $subdirfiles; do
link=`echo $file|$sedpath "s?$whole_dir/??"`
rm -f $link
$LN_S $file $link
done
fi
fi
echo
echo "Building text frontend ........... : $want_textui"
echo "Building irssi bot ............... : $want_irssibot"
echo "Building irssi proxy ............. : $want_irssiproxy"
if test "x$have_gmodule" = "xyes"; then
echo "Building with module support ..... : yes"
else
echo "Building with module support : NO!! /LOAD will not work!"
echo " - You're missing gmodule (comes with glib) for some reason,"
echo " or it doesn't work in your system."
fi
if test "x$want_perl" = "xstatic"; then
echo "Building with Perl support ....... : static (in irssi binary)"
elif test "x$want_perl" = "xmodule"; then
echo "Building with Perl support ....... : module"
else
if test -z "$perl_check_error"; then
echo "Building with Perl support ....... : no"
else
echo "Building with Perl support ....... : NO!"
echo " - $perl_check_error"
if test -f /etc/debian_version; then
echo " - Try: sudo apt-get install libperl-dev"
elif test -f /etc/redhat-release; then
echo " - Try installing perl-devel"
fi
fi
fi
if test "x$want_perl" != "xno" -a "x$perl_mod_error" != "x"; then
echo " - NOTE: Perl support will be compiled statically to irssi, not as"
echo " a module as requested. Reason:"
echo " $perl_mod_error"
if test -f /etc/debian_version; then
echo " - Try: sudo apt-get install libperl-dev"
fi
fi
if test "x$want_perl" != "xno"; then
echo "Perl library directory ........... : ($perl_library_dir - $perl_use_lib)"
if test "x$perl_prefix_note" = "xyes"; then
echo " - NOTE: This was automatically set to the same directory you gave with"
echo " --prefix. If you want the perl libraries to install to their 'correct'"
echo " path, you'll need to give --with-perl-lib=site option to configure."
echo " Anyway, installing perl to this directory should work just as well."
fi
fi
echo "Install prefix ................... : $prefix"
echo
echo "Building with 64bit DCC support .. : $offt_64bit"
echo "Building with true color support.. : $want_truecolor"
echo
echo "If there are any problems, read the INSTALL file."

View file

@ -1,17 +0,0 @@
man_MANS = \
irssi.1
doc_DATA = \
design.txt \
formats.txt \
manual.txt \
faq.html \
faq.txt \
perl.txt \
signals.txt \
special_vars.txt \
startup-HOWTO.html
EXTRA_DIST = $(doc_DATA) $(man_MANS)
SUBDIRS = help

110
docs/New-users.html Normal file
View file

@ -0,0 +1,110 @@
<base href='https://irssi.org/New-users/'>
<h1>New users guide</h1>
<section id="new-to-irc">
<h2>New to IRC</h2>
<p>Internet Relay Chat was created in 1988 and has hardly changed. It can be used to exchange text messages (one message = single line) with other people, either privately (called query, PM, private message, MSG) or in a room (channel). Pictures are shared by uploading them to a temporary host like <a class="reference external" href="https://pomf.lain.la/">https://pomf.lain.la/</a> and then pasting the HTTP links. Code snippets or longer texts are shared by pasting them to a Pastebin like <a class="reference external" href="https://paste.opensuse.org/">https://paste.opensuse.org/</a> and then sharing the HTTP link.</p>
<p>IRC does not have message history. You can only receive replies while your computer is turned on and connected to the channel you want to follow. Some people run their IRC programs on remote servers for that reason.</p>
<p>IRC is organised into networks. Each network consists of many servers. It (mostly) does not matter which server you connect to as long as it belongs to the network you want to use. Irssi supports connections to many networks at the same time.</p>
<p>Each network contains many channels, rooms that are often dedicated to discussing a specific topic. You can find many channels on <a class="reference external" href="https://netsplit.de/">https://netsplit.de/</a> or using a search engine with the keyword “IRC”. Irssi supports joining many channels at the same time.</p>
<p>There is a rather large IRC network catering to free and open-source software and peer directed projects at <a class="reference external" href="https://libera.chat/">https://libera.chat/</a> and a smaller one at <a class="reference external" href="https://www.oftc.net/">https://www.oftc.net/</a> many free software projects still have support channels on these IRC networks (although some have moved to Matrix or proprietary platforms like Discord).</p>
</section>
<section id="first-start">
<h2>First start</h2>
<p>After (compiling and) installing Irssi, to start it, open a shell (Terminal) and type:</p>
<div class="highlight-default notranslate"><div><pre>irssi
</pre></div>
</div>
<p>You should be greeted by a blinking cursor behind <code class="docutils literal notranslate">[(status)]</code>. You are now in the status window of Irssi. Window is the Irssi name for what you might nowadays call a “Web browser tab”.</p>
<p>If youre confused about what you are seeing on the Irssi screen, you can find an annotated screenshot of it at <a class="reference internal" href="../User-interface/">User interface</a>.</p>
<p>If you want, you can pick a nick name (handle) that will be shown to others reading your messages now, by typing</p>
<div class="highlight-default notranslate"><div><pre>/set nick whatyouwant
</pre></div>
</div>
<p>Each command or message can be sent by pressing Enter. Commands in Irssi start with a <code class="docutils literal notranslate">/</code>. If there is no <code class="docutils literal notranslate">/</code>, then the line that you wrote will be sent as a message to the channel that you have open, for everyone to see.</p>
<section id="leaving">
<h3>Leaving</h3>
<p>Type <code class="docutils literal notranslate">/quit</code> to get out of Irssi.</p>
</section>
</section>
<section id="connecting-to-a-network">
<h2>Connecting to a network</h2>
<p>Irssi comes with some predefined networks. You can see the current list of networks by typing</p>
<div class="highlight-default notranslate"><div><pre>/network
</pre></div>
</div>
<p>(the list will be shown in your status window)</p>
<p>To connect to one of the networks in the list, type <code class="docutils literal notranslate">/connect networkname</code>, for example:</p>
<div class="highlight-default notranslate"><div><pre>/connect liberachat
</pre></div>
</div>
<p>You should see several messages scroll by. After a while, you should be connected to the Libera Chat network.</p>
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p>Irssi version 1.2 or older may be lacking the liberachat network entry. See <a class="reference external" href="https://github.com/shabble/irssi-docs/wiki/liberachat">https://github.com/shabble/irssi-docs/wiki/liberachat</a> for how to add it.</p>
</div>
<section id="nickname-registration">
<h3>Nickname registration</h3>
<p>Many IRC networks (but not all) offer a way to register a user account. Sometimes (but not on all networks) the account registration also includes reserving a nick for you. <em>How</em> to register also differs by network. Some <em>channels</em> only allow users with registered accounts to join them, so it may be very important for you to register a user account.</p>
<p>User accounts are always specific to a network.</p>
<p>For the Libera Chat network, you can find instructions how to register and set up your account with Irssi on <a class="reference external" href="https://github.com/shabble/irssi-docs/wiki/liberachat#configure-sasl-automated-log-in">https://github.com/shabble/irssi-docs/wiki/liberachat#configure-sasl-automated-log-in</a></p>
</section>
</section>
<section id="joining-a-channel">
<h2>Joining a channel</h2>
<p>Once you are connected to a network, you can join channels by typing <code class="docutils literal notranslate">/join #channelname</code>, for example:</p>
<div class="highlight-default notranslate"><div><pre>/join #irssi
</pre></div>
</div>
<p>Now, a new window will open and you can send messages to the channel.</p>
<section id="changing-windows">
<h3>Changing windows</h3>
<p>You can change between windows using the <code class="docutils literal notranslate">Ctrl</code>+<code class="docutils literal notranslate">n</code> or <code class="docutils literal notranslate">Ctrl</code>+<code class="docutils literal notranslate">p</code> keys, orif your terminal is configured properlyusing <code class="docutils literal notranslate">Alt</code>+<code class="docutils literal notranslate">1</code>, <code class="docutils literal notranslate">Alt</code>+<code class="docutils literal notranslate">2</code>, … See <a class="reference internal" href="../documentation/help/bind_-list/">bind -list</a> for a list of all default key bindings.</p>
</section>
<section id="removing-clutter">
<h3>Removing clutter</h3>
<p>By default, Irssi shows when someone joins or leaves a channel. These messages can waste a lot of lines and obscure the actual chat. To hide them, type</p>
<div class="highlight-default notranslate"><div><pre>/window hidelevel +joins +parts +quits
</pre></div>
</div>
<p>To get them back</p>
<div class="highlight-default notranslate"><div><pre>/window hidelevel -joins -parts -quits
</pre></div>
</div>
<p>If you want to hide them by default, <code class="docutils literal notranslate">/set window_default_hidelevel hidden joins parts quits</code></p>
</section>
</section>
<section id="adding-a-new-network">
<h2>Adding a new network</h2>
<p>If you want to join a network that is not there, you first need to find at least one server of that network. Lets say you have found the room <a class="reference external" href="https://netsplit.de/channels/details.php?room=%23hackint&amp;net=hackint">#hackint</a> on netsplit.de and want to join it. Then you can find that the <a class="reference external" href="https://netsplit.de/servers/?net=hackint">server</a> is irc.hackint.org, port 6697, SSL (TLS) on. To add it to Irssi, use the commands:</p>
<div class="highlight-default notranslate"><div><pre>/network add hackint
/server add -tls -network hackint irc.hackint.org 6697
</pre></div>
</div>
<p>Then, you can connect to the newly added network with</p>
<div class="highlight-default notranslate"><div><pre>/connect hackint
</pre></div>
</div>
<section id="multiple-networks">
<h3>Multiple networks</h3>
<p>If you are connected to multiple networks, you can change which one you are “talking” to (which one to send commands) by using the <code class="docutils literal notranslate">Ctrl</code>+<code class="docutils literal notranslate">x</code> key in the status window.</p>
</section>
</section>
<section id="on-line-help">
<h2>On-line help</h2>
<p>Most /commands have a help page, you can read it with</p>
<div class="highlight-default notranslate"><div><pre>/help commandname
</pre></div>
</div>
<p>or <a class="reference internal" href="../documentation/help/">on-line</a>.</p>
<p>The settings that can be changed with /SET are described on <a class="reference internal" href="../documentation/settings/">Settings Documentation</a> the settingshelp <a class="reference internal" href="#about-scripts">script</a> can be used to read it from within <code class="docutils literal notranslate">/help</code></p>
</section>
<section id="about-scripts">
<h2>About Scripts</h2>
<p>You can enhance your Irssi by installing scripts. Many Perl scripts written by other Irssi users can be found on <a class="reference external" href="https://scripts.irssi.org/">https://scripts.irssi.org/</a></p>
<p>Most of them should be compatible with Irssi 1.4 (but some may not, also see the Full Change log for some incompatible ones)</p>
</section>
<section id="about-themes">
<h2>About Themes</h2>
<p>Irssis look can be thoroughly changed with themes. Many themes created by other Irssi users can be found on <a class="reference external" href="https://themes.irssi.org/">https://themes.irssi.org/</a></p>
<p>If you want to modify the look of Irssi yourself, the <em>default</em> theme which can be found in your <code class="docutils literal notranslate">~/.irssi</code> folder is a good starting point. It also has a few comments explaining what some of the abstracts are used for</p>
</section>

193
docs/New-users.txt Normal file
View file

@ -0,0 +1,193 @@
# New users guide #
## New to IRC ##
Internet Relay Chat was created in 1988 and has hardly changed. It can be used
to exchange text messages (one message = single line) with other people, either
privately (called query, PM, private message, MSG) or in a room (channel).
Pictures are shared by uploading them to a temporary host like [1]https://
pomf.lain.la/ and then pasting the HTTP links. Code snippets or longer texts
are shared by pasting them to a Pastebin like [2]https://paste.opensuse.org/
and then sharing the HTTP link.
IRC does not have message history. You can only receive replies while your
computer is turned on and connected to the channel you want to follow. Some
people run their IRC programs on remote servers for that reason.
IRC is organised into networks. Each network consists of many servers. It
(mostly) does not matter which server you connect to as long as it belongs to
the network you want to use. Irssi supports connections to many networks at the
same time.
Each network contains many channels, rooms that are often dedicated to
discussing a specific topic. You can find many channels on [3]https://
netsplit.de/ or using a search engine with the keyword “IRC”. Irssi supports
joining many channels at the same time.
There is a rather large IRC network catering to free and open-source software
and peer directed projects at [4]https://libera.chat/ and a smaller one at [5]
https://www.oftc.net/ many free software projects still have support channels
on these IRC networks (although some have moved to Matrix or proprietary
platforms like Discord).
## First start ##
After (compiling and) installing Irssi, to start it, open a shell (Terminal)
and type:
irssi
You should be greeted by a blinking cursor behind [(status)]. You are now in
the status window of Irssi. Window is the Irssi name for what you might
nowadays call a “Web browser tab”.
If youre confused about what you are seeing on the Irssi screen, you can find
an annotated screenshot of it at [6]User interface.
If you want, you can pick a nick name (handle) that will be shown to others
reading your messages now, by typing
/set nick whatyouwant
Each command or message can be sent by pressing Enter. Commands in Irssi start
with a /. If there is no /, then the line that you wrote will be sent as a
message to the channel that you have open, for everyone to see.
### Leaving ###
Type /quit to get out of Irssi.
## Connecting to a network ##
Irssi comes with some predefined networks. You can see the current list of
networks by typing
/network
(the list will be shown in your status window)
To connect to one of the networks in the list, type /connect networkname, for
example:
/connect liberachat
You should see several messages scroll by. After a while, you should be
connected to the Libera Chat network.
Attention
Irssi version 1.2 or older may be lacking the liberachat network entry. See [7]
https://github.com/shabble/irssi-docs/wiki/liberachat for how to add it.
### Nickname registration ###
Many IRC networks (but not all) offer a way to register a user account.
Sometimes (but not on all networks) the account registration also includes
reserving a nick for you. How to register also differs by network. Some
channels only allow users with registered accounts to join them, so it may be
very important for you to register a user account.
User accounts are always specific to a network.
For the Libera Chat network, you can find instructions how to register and set
up your account with Irssi on [8]https://github.com/shabble/irssi-docs/wiki/
liberachat#configure-sasl-automated-log-in
## Joining a channel ##
Once you are connected to a network, you can join channels by typing /join #
channelname, for example:
/join #irssi
Now, a new window will open and you can send messages to the channel.
### Changing windows ###
You can change between windows using the Ctrl+n or Ctrl+p keys, orif your
terminal is configured properlyusing Alt+1, Alt+2, … See [9]bind -list for a
list of all default key bindings.
### Removing clutter ###
By default, Irssi shows when someone joins or leaves a channel. These messages
can waste a lot of lines and obscure the actual chat. To hide them, type
/window hidelevel +joins +parts +quits
To get them back
/window hidelevel -joins -parts -quits
If you want to hide them by default, /set window_default_hidelevel hidden joins
parts quits
## Adding a new network ##
If you want to join a network that is not there, you first need to find at
least one server of that network. Lets say you have found the room [10]#
hackint on netsplit.de and want to join it. Then you can find that the [11]
server is irc.hackint.org, port 6697, SSL (TLS) on. To add it to Irssi, use the
commands:
/network add hackint
/server add -tls -network hackint irc.hackint.org 6697
Then, you can connect to the newly added network with
/connect hackint
### Multiple networks ###
If you are connected to multiple networks, you can change which one you are
“talking” to (which one to send commands) by using the Ctrl+x key in the status
window.
## On-line help ##
Most /commands have a help page, you can read it with
/help commandname
or [12]on-line.
The settings that can be changed with /SET are described on [13]Settings
Documentation the settingshelp [14]script can be used to read it from within
/help
## About Scripts ##
You can enhance your Irssi by installing scripts. Many Perl scripts written by
other Irssi users can be found on [15]https://scripts.irssi.org/
Most of them should be compatible with Irssi 1.4 (but some may not, also see
the Full Change log for some incompatible ones)
## About Themes ##
Irssis look can be thoroughly changed with themes. Many themes created by
other Irssi users can be found on [16]https://themes.irssi.org/
If you want to modify the look of Irssi yourself, the default theme which can
be found in your ~/.irssi folder is a good starting point. It also has a few
comments explaining what some of the abstracts are used for
References:
[1] https://pomf.lain.la/
[2] https://paste.opensuse.org/
[3] https://netsplit.de/
[4] https://libera.chat/
[5] https://www.oftc.net/
[6] https://irssi.org/User-interface/
[7] https://github.com/shabble/irssi-docs/wiki/liberachat
[8] https://github.com/shabble/irssi-docs/wiki/liberachat#configure-sasl-automated-log-in
[9] https://irssi.org/documentation/help/bind_-list/
[10] https://netsplit.de/channels/details.php?room=%23hackint&net=hackint
[11] https://netsplit.de/servers/?net=hackint
[12] https://irssi.org/documentation/help/
[13] https://irssi.org/documentation/settings/
[14] https://irssi.org/New-users/#about-scripts
[15] https://scripts.irssi.org/
[16] https://themes.irssi.org/

31
docs/capsicum.txt Normal file
View file

@ -0,0 +1,31 @@
Capsicum is a lightweight OS capability and sandbox framework provided
by FreeBSD. When built with Capsicum support - which is the default under
FreeBSD - Irssi can enter a Capsicum capability mode (a sandbox), greatly
limiting possible consequences of a potential security hole in Irssi
or the libraries it depends on.
To make Irssi enter capability mode on startup, add
capsicum = "yes";
awaylog_file = "~/irclogs/away.log";
to your ~/.irssi/config in the settings/core section, and restart the
client. Alternatively you can enter it "by hand", using the
"/capsicum enter" command. From the security point of view it's strongly
preferable to use the former method, to avoid establishing connections
without the sandbox protection; the "/capsicum" command is only intended
for experimentation, and in cases where you need to do something that's not
possible in capability mode - run scripts, for example - before continuing.
There is no way to leave the capability mode, apart from exiting Irssi.
When running in capability mode, there are certain restrictions - Irssi
won't be able to access any files outside the directory pointed to by
capsicum_irclogs_path (which defaults to ~/irclogs/). If you change
the path when already in capability mode it won't be effective until
you restart Irssi. Capability mode also makes it impossible to use
the "/save" command.
Currently there is no way to use custom SSL certificates. As a workaround
you can establish connections and enter the capability mode afterwards
using the "/capsicum enter" command.

165
docs/design.html Normal file
View file

@ -0,0 +1,165 @@
<base href='https://irssi.org/documentation/design/'>
<h1>Design</h1>
<p>Irssis hierarchy is something like this:</p>
<pre class="repl" id="fig1"><code class="language-ascidia">
sub1 sub2
\ /
xxx IRC COMMON ICQ yyy
| | | | |
'----+-----:-----+----+----'
|
GUI (gtk/gnome, qt/kde, text, none)
|
sub1 sub2 |
\ / |
xxx IRC | COMMON ICQ yyy
'----+-----+-----+----+----'
|
COMMON UI
|
sub1 sub2 |
\ / |
xxx IRC | ICQ yyy
| | | | |
'----+-----+-----+----'
|
CORE
/
lib-config
</code></pre>
<p>(IRC, ICQ, xxx and yyy are chat protocols ..)</p>
<p>(sub1 and sub2 are submodules of IRC module, like DCC and flood protect)</p>
<p>Chat protocols and frontends are kept in separate modules. Common UI
and GUI modules also have the common parts which dont know anything
about the chat protocols. This should allow implementing modules to
whatever chat protocols and with whatever frontends easily.</p>
<h2 id="signals">Signals</h2>
<p>Communication between different modules are done with “signals”. They are
not related to UNIX signals in any way, you could more like think of them
as “events” - which might be a better name for them, but I dont really
want to change it anymore :)</p>
<p>So, you send signal with <code>signal_emit()</code> and its sent to all modules that
have grabbed it by calling <code>signal_add()</code> in their init function. For
example:</p>
<div><div><pre><code>signal_emit("mysignal", 1, "hello");
</code></pre></div></div>
<p>Sends a “mysignal” function with one argument “hello” - before that, you
should have grabbed the signal somewhere else with:</p>
<div><div><pre><code>static void sig_mysignal(const char *arg1)
{
/* arg1 contains "hello" */
}
signal_add("mysignal", (SIGNAL_FUNC) sig_mysignal);
</code></pre></div></div>
<p>There are three different <code>signal_add()</code> functions which you can use to
specify if you want to grab the signal first, “normally” or last. You can
also stop the signal from going any further.</p>
<p>Emitting signal with its name creates a small overhead since it has to
look up the signals numeric ID first, after which it looks up the signal
structure. This is done because if you call a signal <em>really</em> often,
its faster to find it with its numeric ID instead of the string. You
can use <code>signal_get_uniq_id()</code> macro to convert the signal name into ID -
youll have to do this only once! - and use <code>signal_emit_id()</code> to emit the
signal. Dont bother to do this unless your signal is sent (or could be
sent) several times in a second.</p>
<p>See <code>src/core/signals.h</code> for definition of the signal function, and
signals.txt for a list of signals.</p>
<h2 id="lib-config">lib-config</h2>
<p>Irssi depends on this for reading and saving configuration.
(created by me for irssi)</p>
<h2 id="core-module">CORE module</h2>
<p>Provides some functionality that all other modules can use:</p>
<ul>
<li>signal handling</li>
<li>keeping list of settings</li>
<li>keeping list of /commands</li>
<li>keeping track of loaded modules</li>
<li>networking functions (with nonblocking connects, IPv6 support)</li>
<li>handles connecting to servers</li>
<li>raw logging of servers input/output data</li>
<li>/EVAL support</li>
<li>fgets() like function line_split() without any maximum line limits</li>
<li>command line parameter handling</li>
<li>miscellaneous useful little functions</li>
<li>handles logging</li>
</ul>
<h2 id="common-ui-module">COMMON UI module</h2>
<ul>
<li>knows basics about windows and window items (=channels, queries, ..)</li>
<li>printtext() - parsing texts and feeding it for GUI to print.</li>
<li>themes</li>
<li>translation tables</li>
<li>text hilighting</li>
<li>command history</li>
<li>user interface (/commands) for COREs functionality</li>
</ul>
<h2 id="gui-modules">GUI modules</h2>
<ul>
<li>all the rest of the functionality needed for a working client.</li>
</ul>
<h2 id="irc-module">IRC module</h2>
<ul>
<li>CORE
<ul>
<li>IRC specific /commands</li>
<li>flood protecting commands sent to server</li>
<li>creating IRC masks based on nick/address for bans, ignores, etc.</li>
<li>keeps list of channels, nicks, channel modes, bans, etc.</li>
<li>keeps list of servers, server settings, irc networks,
server reconnections and irc network splits</li>
<li>redirection of commands replies</li>
<li>lag detection</li>
<li>ctcp support and flood protection</li>
<li>Handles ignoring people</li>
</ul>
</li>
<li>DCC
<ul>
<li>DCC chat, send and get</li>
</ul>
</li>
<li>FLOOD
<ul>
<li>detects private or channel flooding and sends “flood” signal</li>
<li>automatic ignoring when flooding</li>
</ul>
</li>
<li>NOTIFYLIST
<ul>
<li>handles notifylist</li>
</ul>
</li>
</ul>
<h2 id="irc-ui-module">IRC UI module</h2>
<ul>
<li>placing channels and queries in windows</li>
<li>nick completion</li>
<li>printing infomation of some events</li>
</ul>

View file

@ -1,150 +1,139 @@
Design
Irssi's hierarchy is something like this:
Irssis hierarchy is something like this:
sub1 sub2
\ /
xxx IRC COMMON ICQ yyy
| | | | |
'----+-----:-----+----+----'
|
GUI (gtk/gnome, qt/kde, text, none)
|
sub1 sub2 |
\ / |
xxx IRC | COMMON ICQ yyy
'----+-----+-----+----+----'
|
COMMON UI
|
sub1 sub2 |
\ / |
xxx IRC | ICQ yyy
| | | | |
'----+-----+-----+----'
|
CORE
/
lib-config
sub1 sub2
\ /
xxx IRC COMMON ICQ yyy
|____|___________|____|____|
|
GUI (gtk/gnome, qt/kde, text, none)
|
sub1 sub2 |
\ / |
xxx IRC | COMMON ICQ yyy
|____|_____|_____|____|____|
|
COMMON UI
|
sub1 sub2 |
\ / |
xxx IRC | ICQ yyy
|____|_____|_____|____|
|
CORE
/
lib-config
(IRC, ICQ, xxx and yyy are chat protocols ..)
(sub1 and sub2 are submodules of IRC module, like DCC and flood protect)
(IRC, ICQ, xxx and yyy are chat protocols ..)
(sub1 and sub2 are submodules of IRC module, like DCC and flood protect)
Chat protocols and frontends are kept in separate modules. Common UI and GUI
modules also have the common parts which dont know anything about the chat
protocols. This should allow implementing modules to whatever chat protocols
and with whatever frontends easily.
Signals
Chat protocols and frontends are kept in separate modules. Common UI
and GUI modules also have the common parts which don't know anything
about the chat protocols. This should allow implementing modules to
whatever chat protocols and with whatever frontends easily.
Communication between different modules are done with “signals”. They are not
related to UNIX signals in any way, you could more like think of them as
“events” - which might be a better name for them, but I dont really want to
change it anymore :)
** Signals
So, you send signal with signal_emit() and its sent to all modules that have
grabbed it by calling signal_add() in their init function. For example:
Communication between different modules are done with "signals". They are
not related to UNIX signals in any way, you could more like think of them
as "events" - which might be a better name for them, but I don't really
want to change it anymore :)
signal_emit("mysignal", 1, "hello");
So, you send signal with signal_emit() and it's sent to all modules that
have grabbed it by calling signal_add() in their init function. For
example:
Sends a “mysignal” function with one argument “hello” - before that, you should
have grabbed the signal somewhere else with:
signal_emit("mysignal", 1, "hello");
static void sig_mysignal(const char *arg1)
{
/* arg1 contains "hello" */
}
Sends a "mysignal" function with one argument "hello" - before that, you
should have grabbed the signal somewhere else with:
signal_add("mysignal", (SIGNAL_FUNC) sig_mysignal);
static void sig_mysignal(const char *arg1)
{
/* arg1 contains "hello" */
}
There are three different signal_add() functions which you can use to specify
if you want to grab the signal first, “normally” or last. You can also stop the
signal from going any further.
signal_add("mysignal", (SIGNAL_FUNC) sig_mysignal);
Emitting signal with its name creates a small overhead since it has to look up
the signals numeric ID first, after which it looks up the signal structure.
This is done because if you call a signal really often, its faster to find it
with its numeric ID instead of the string. You can use signal_get_uniq_id()
macro to convert the signal name into ID - youll have to do this only once! -
and use signal_emit_id() to emit the signal. Dont bother to do this unless
your signal is sent (or could be sent) several times in a second.
There are three different signal_add() functions which you can use to
specify if you want to grab the signal first, "normally" or last. You can
also stop the signal from going any further.
See src/core/signals.h for definition of the signal function, and signals.txt
for a list of signals.
Emitting signal with it's name creates a small overhead since it has to
look up the signal's numeric ID first, after which it looks up the signal
structure. This is done because if you call a signal _really_ often,
it's faster to find it with it's numeric ID instead of the string. You
can use signal_get_uniq_id() macro to convert the signal name into ID -
you'll have to do this only once! - and use signal_emit_id() to emit the
signal. Don't bother to do this unless your signal is sent (or could be
sent) several times in a second.
lib-config
See src/core/signals.h for definition of the signal function, and
signals.txt for a list of signals.
Irssi depends on this for reading and saving configuration. (created by me for
irssi)
CORE module
** lib-config
Provides some functionality that all other modules can use:
Irssi depends on this for reading and saving configuration.
(created by me for irssi)
• signal handling
• keeping list of settings
• keeping list of /commands
• keeping track of loaded modules
• networking functions (with nonblocking connects, IPv6 support)
• handles connecting to servers
• raw logging of servers input/output data
• /EVAL support
• fgets() like function line_split() without any maximum line limits
• command line parameter handling
• miscellaneous useful little functions
• handles logging
COMMON UI module
** CORE module
• knows basics about windows and window items (=channels, queries, ..)
• printtext() - parsing texts and feeding it for GUI to print.
• themes
• translation tables
• text hilighting
• command history
• user interface (/commands) for COREs functionality
Provides some functionality that all other modules can use:
- signal handling
- keeping list of settings
- keeping list of /commands
- keeping track of loaded modules
- networking functions (with nonblocking connects, IPv6 support)
- handles connecting to servers
- raw logging of server's input/output data
- /EVAL support
- fgets() like function line_split() without any maximum line limits
- command line parameter handling
- miscellaneous useful little functions
- handles logging
GUI modules
• all the rest of the functionality needed for a working client.
** COMMON UI module
IRC module
- knows basics about windows and window items (=channels, queries, ..)
- printtext() - parsing texts and feeding it for GUI to print.
- themes
- translation tables
- text hilighting
- command history
- user interface (/commands) for CORE's functionality
• CORE
□ IRC specific /commands
□ flood protecting commands sent to server
□ creating IRC masks based on nick/address for bans, ignores, etc.
□ keeps list of channels, nicks, channel modes, bans, etc.
□ keeps list of servers, server settings, irc networks, server
reconnections and irc network splits
□ redirection of commands replies
□ lag detection
□ ctcp support and flood protection
□ Handles ignoring people
• DCC
□ DCC chat, send and get
• FLOOD
□ detects private or channel flooding and sends “flood” signal
□ automatic ignoring when flooding
• NOTIFYLIST
□ handles notifylist
IRC UI module
** GUI modules
• placing channels and queries in windows
• nick completion
• printing infomation of some events
- all the rest of the functionality needed for a working client.
** IRC module
* CORE
- IRC specific /commands
- flood protecting commands sent to server
- creating IRC masks based on nick/address for bans, ignores, etc.
- keeps list of channels, nicks, channel modes, bans, etc.
- keeps list of servers, server settings, irc networks,
server reconnections and irc network splits
- redirection of commands' replies
- lag detection
- ctcp support and flood protection
- Handles ignoring people
* DCC
- DCC chat, send and get
* FLOOD
- detects private or channel flooding and sends "flood" signal
- automatic ignoring when flooding
* NOTIFYLIST
- handles notifylist
** IRC UI module
- placing channels and queries in windows
- nick completion
- printing infomation of some events

View file

@ -0,0 +1,47 @@
[binaries]
ar = 'aarch64-linux-android-ar'
c = 'aarch64-linux-android-clang'
cpp = 'aarch64-linux-android-clang++'
ld = 'aarch64-linux-android-ld'
pkgconfig = '/home/builder/.termux-build/_cache/android-r20-api-24-v3/bin/aarch64-linux-android-pkg-config'
strip = 'aarch64-linux-android-strip'
;; you have to substitute 5.30.2 with the Perl version, that can be
;; obtained by running ` miniperl -e 'print substr $^V, 1' `
perl = ['/home/builder/.termux-build/perl/src/miniperl', '-I/data/data/com.termux/files/usr/lib/perl5/5.30.2/aarch64-android', '-I/data/data/com.termux/files/usr/lib/perl5/5.30.2']
[properties]
needs_exe_wrapper = true
c_args = ['-fstack-protector-strong', '-Oz', '-I/data/data/com.termux/files/usr/include']
cpp_args = ['-fstack-protector-strong', '-Oz', '-I/data/data/com.termux/files/usr/include']
c_link_args = ['-L/data/data/com.termux/files/usr/lib', '-Wl,-rpath=/data/data/com.termux/files/usr/lib', '-Wl,--enable-new-dtags', '-Wl,--as-needed', '-Wl,-z,relro,-z,now', '-landroid-glob']
cpp_link_args = ['-L/data/data/com.termux/files/usr/lib', '-Wl,-rpath=/data/data/com.termux/files/usr/lib', '-Wl,--enable-new-dtags', '-Wl,--as-needed', '-Wl,-z,relro,-z,now', '-landroid-glob']
;; if you do not have a cross-perl like miniperl available, you have
;; to specify the required options by uncommenting the following
;; properties
;; you can get the proper values by running the commands on your
;; Android device:
;; ` perl -V::version: `
; perl_version = '5.30.2'
;; ` perl -MExtUtils::Embed -o ccopts `
; perl_ccopts = ['-I/data/data/com.termux/files/usr/include', '-D_LARGEFILE_SOURCE', '-D_FILE_OFFSET_BITS=64', '-I/data/data/com.termux/files/usr/lib/perl5/5.30.2/aarch64-android/CORE']
;; ` perl -MExtUtils::Embed -o ldopts `
; perl_ldopts = ['-Wl,-E', '-I/data/data/com.termux/files/usr/include', '-L/data/data/com.termux/files/usr/lib/perl5/5.30.2/aarch64-android/CORE', '-lperl', '-lm', '-ldl']
;; ` perl -V::archname: `
; perl_archname = 'aarch64-android'
;; ` perl -V::installsitearch: `
; perl_installsitearch = '/data/data/com.termux/files/usr/lib/perl5/site_perl/5.30.2/aarch64-android'
;; ` perl -V::installvendorarch: `
; perl_installvendorarch = ''
;; ` perl -E 'say for @INC' `
; perl_inc = ['/data/data/com.termux/files/usr/lib/perl5/site_perl/5.30.2/aarch64-android', '/data/data/com.termux/files/usr/lib/perl5/site_perl/5.30.2', '/data/data/com.termux/files/usr/lib/perl5/5.30.2/aarch64-android', '/data/data/com.termux/files/usr/lib/perl5/5.30.2']
[host_machine]
cpu_family = 'arm'
cpu = 'aarch64'
endian = 'little'
system = 'android'

View file

@ -1,7 +1,8 @@
<base href='https://irssi.org/documentation/faq/'>
<h1>Frequently Asked Questions</h1>
<h3 id="q-why-doesnt-irssi-display-colors-even-when-ircii-etc-displays-them">Q: Why doesnt irssi display colors even when ircii etc. displays them?</h3>
<h3 id="q-why-doesnt-irssi-display-colors-even-when-ircii-etc-displays-them">Q: Why doesnt irssi display colors even when ircii etc. displays them?</h3>
<p>A: They force ANSI colors even if terminal doesnt support them. By default, irssi uses colors only if terminfo/termcap so says. The correct way to fix this would be to change your TERM environment to a value where colors work, like xterm-color or color_xterm (eg. <code>TERM=xterm-color irssi</code>). If this doesnt help, then use the evil way of <code>/SET term_force_colors ON</code>.</p>
<p>A: They force ANSI colors even if terminal doesnt support them. By default, irssi uses colors only if terminfo/termcap so says. The correct way to fix this would be to change your TERM environment to a value where colors work, like xterm-256color or color_xterm (eg. <code>TERM=xterm-256color irssi</code>). If this doesnt help, then use the evil way of <code>/SET term_force_colors ON</code>.</p>
<h3 id="q-how-do-i-easily-write-text-to-channel-that-starts-with--character">Q: How do I easily write text to channel that starts with / character?</h3>
@ -53,7 +54,7 @@
<h3 id="q-will-there-be-detach-like-feature">Q: Will there be /DETACH-like feature?</h3>
<p>A: <a href="http://tmux.github.io/">tmux</a>, <a href="http://www.gnu.org/software/screen/screen.html">screen</a> and <a href="http://dtach.sf.net/">dtach</a> can be used to do it just fine.</p>
<p>A: <a href="https://tmux.github.io/">tmux</a>, <a href="https://www.gnu.org/software/screen/screen.html">screen</a> and <a href="https://sourceforge.net/projects/dtach/">dtach</a> can be used to do it just fine.</p>
<h3 id="q-how-do-i-run-scripts-automatically-at-startup">Q: How do I run scripts automatically at startup?</h3>
@ -69,7 +70,7 @@
<h3 id="q-how-can-i-have-whois-replies-to-active-window">Q: How can I have /WHOIS replies to active window?</h3>
<p>A: You can disable the status window, or do <code>/WINDOW LEVEL -CRAP</code> in it which would also make several other messages show up in active window. You can also use a <a href="http://dgl.cx/irssi/hack-whois-in-current-window.pl">script</a>.</p>
<p>A: You can disable the status window, or do <code>/WINDOW LEVEL -CRAP</code> in it which would also make several other messages show up in active window. You can also use a <a href="https://dgl.cx/irssi/hack-whois-in-current-window.pl">script</a>.</p>
<h3 id="q-how-do-i-add-the-active-network-to-the-statusbar">Q: How do I add the active network to the statusbar</h3>
@ -77,4 +78,4 @@
<h3 id="q-how-to-pronounce-irssi">Q: How to pronounce Irssi?</h3>
<p>A: Check <a href="https://irssi.org/assets/irssi.wav">here</a></p>
<p>A: Check <a href="/assets/irssi.wav">here</a></p>

124
docs/faq.txt Normal file
View file

@ -0,0 +1,124 @@
Frequently Asked Questions
Q: Why doesnt irssi display colors even when ircii etc. displays them?
A: They force ANSI colors even if terminal doesnt support them. By default,
irssi uses colors only if terminfo/termcap so says. The correct way to fix this
would be to change your TERM environment to a value where colors work, like
xterm-256color or color_xterm (eg. TERM=xterm-256color irssi). If this doesnt
help, then use the evil way of /SET term_force_colors ON.
Q: How do I easily write text to channel that starts with / character?
A: / /text
Q: Why doesnt irssi update my realname (or whatever) after I change it with /
SET realname and reconnect with /RECONNECT or /SERVER?
A: Irssi is trying to be too smart. This will be fixed in future, but for now
you should use /DISCONNECT and /CONNECT.
Q: I connected to some server which isnt responding but now irssi tries to
connect back to it all the time! How can I stop it?
A: Two ways. The “good way” to do it is with /DISCONNECT. Check the server tags
first with /SERVER without giving it any parameters, reconnections are those
that have tag starting with “recon” text. So most probably youre going to do /
DISCONNECT recon-1. The other way is to remove all the reconnections with /
RMRECONNS, easier but may remove some connections you actually wanted to
reconnect (if you used multiple servers..).
Q: How do I add seconds to timestamp?
A: /FORMAT timestamp {timestamp %%H:%%M:%%S} - and remember to add the trailing
space :)
Q: Why does irssi say “Irssi: Channel not fully synchronized yet, try again
after a while” when I try to use /BAN etc?
A: Possibly a bug in irssi, or ircd youre using does something that irssi
didnt really notice. The new code should make this happen far less often than
before, but one known reason for this is when irssi doesnt notice that you
were unable to join some channel. Currently however I dont know of any such
events irssi doesnt know about.
Anyway, if this does happen, do /RAWLOG SAVE ~/rawlog soon after joining to
channel, and either try to figure out yourself why irssi didnt get reply to
WHO request, or open a Github issue with the full log included. Note that the
rawlog is by default only 200 lines and it may not be enough to show all needed
information, so you might want to do /SET rawlog_lines 1000 or so.
MODE +b still works fine though.
Q: Wheres the GUI version?
A: There was one on [1]irssi-import/xirssi but it has not been maintained for a
long time.
Q: How do I autorejoin channels after being kicked?
A: Thats evil and you shouldnt do it. If you get kicked, you should stay out,
at least until the channel forgot you existed :) Most channels Ive joined just
ban you if you autorejoin after kick. If youre joined to channels who kick
people for fun, try changing channels or something.
Anyway, if you REALLY want to do that, and you understand that youre doing
evilness, you can use the autorejoin.pl script that comes with irssi. Youll
still need to specify the channels you wish to rejoin with /SET
autorejoin_channels #chan1 #chan2 ...
Q: How do I announce that Im away/back in all channels Ive joined? Or how do
I change my nick when setting myself away/back?
A: Thats even worse than autorejoin. Who could possibly care every time you
come and go? Many channels will kick you for using this, and I for example have
added several ignores so Id never need to see these messages. Learn to use /
AWAY command properly and tell its existence to people who dont know about it.
/WII yournick shows your away reason much better for people who actually want
to know if youre there or not.
Q: Why does irssi autojoin on invite by default?
A: The setting is /SET join_auto_chans_on_invite - its not the same as regular
autojoin-on-invite, which irssi doesnt even have. The only channels that are
joined on invite, are the ones youve added to config with /CHANNEL ADD -auto.
This is very useful with +i channels when you need to first send an invite
request to bot, or if you get accidentally kicked from channel, the kicker can
invite you back immediately.
I dont see any bad side effects with this feature, so its ON by default. I
guess someone could start kicking/inviting you all the time but server
connection shouldnt drop because of that, and you shouldnt join channels
whose operators are that evil.
Q: How to make UTF-8 support work with irssi?
A: Make sure your terminal supports UTF-8 (for example, xterm -u8). If you use
screen, you may have to do screen -U. And in Irssi do /SET term_charset utf-8.
(for 0.8.9 and older: /SET term_type utf-8)
Q: Will there be /DETACH-like feature?
A: [2]tmux, [3]screen and [4]dtach can be used to do it just fine.
Q: How do I run scripts automatically at startup?
A: Put them into ~/.irssi/scripts/autorun/ directory. Or better would be if you
placed them in ~/.irssi/scripts/ and created symlinks to autorun directory (eg.
cd ~/.irssi/scripts/autorun/ ; ln -s ../script.pl .)
Q: How do I execute commands automatically at startup?
A: Put them into ~/.irssi/startup file, each command on its own line. The
preceding slash (/) is not necessary.
Q: How do I easily edit existing topic?
A: /TOPIC <tab>
Q: How can I have /WHOIS replies to active window?
A: You can disable the status window, or do /WINDOW LEVEL -CRAP in it which
would also make several other messages show up in active window. You can also
use a [5]script.
Q: How do I add the active network to the statusbar
A: Modify the window-line in statusbar section in config file to window = "{sb
$winref:$tag/$T{sbmode $M}}";
Q: How to pronounce Irssi?
A: Check [6]here
References:
[1] https://github.com/irssi-import/xirssi
[2] https://tmux.github.io/
[3] https://www.gnu.org/software/screen/screen.html
[4] https://sourceforge.net/projects/dtach/
[5] https://dgl.cx/irssi/hack-whois-in-current-window.pl
[6] https://irssi.org/assets/irssi.wav

View file

@ -1,12 +0,0 @@
# Makefile.am is autogenerated by autogen.sh from Makefile.am.gen
helpdir = $(datadir)/irssi/help
help_DATA = \
@HELPFILES@
EXTRA_DIST = \
Makefile.am.gen \
$(help_DATA)
SUBDIRS = in

View file

@ -1,5 +0,0 @@
# Makefile.am is autogenerated by autogen.sh from Makefile.am.gen
EXTRA_DIST = \
Makefile.am.gen \
@HELPFILES@

View file

@ -15,7 +15,7 @@
%9Examples:%9
/ADMIN
/ADMIN orwell.freenode.net
/ADMIN irc.libera.chat
/ADMIN mike
%9See also:%9 INFO

View file

@ -6,7 +6,8 @@
%9Parameters:%9
-list: Displays a list of all the bindable commands.
-delete: Removes the binding,
-delete: Removes the binding.
-reset: Reset a key to its default binding.
A name of the binding and the command to perform; if no parameter is given,
the list of bindings will be displayed.
@ -16,13 +17,15 @@ Details:
Adds or removes a binding; the binding itself is case-sensitive and may
contain as many characters as you want.
Uppercase characters usually indicate that you need to keep the shift-key
pressed to use the binding.
Key bindings are case sensitive so uppercase letters mean you also have
to use the shift key, except for ctrl which does not support shift but
the keys must always be typed in uppercase.
%9Examples:%9
/BIND
/BIND meta-c /CLEAR
/BIND meta-C /CYCLE
/BIND meta-q change_window 16
/BIND -delete meta-y
/BIND ^W^C /WINDOW NEW HIDE

View file

@ -5,15 +5,22 @@
%9Parameters:%9
The file to display.
-window: Displays the output in the active window.
The file to display and optionally a position to seek in the file,
in bytes.
%9Description:%9
Displays the contents of the specified file into the active window.
Displays the contents of the specified file in the active window if -window
is specified, otherwise to the closest matching window depending on levels.
The seek position parameter is used internally to display away logs, if
omitted the whole file is shown.
%9Examples:%9
/CAT /etc/network/interfaces
/CAT -window /etc/network/interfaces
/CAT /home/mike/resume.txt
/CAT contact_details.txt

View file

@ -33,12 +33,12 @@
/CHANNEL
/CHANNEL LIST
/CHANNEL ADD -auto #irssi Freenode
/CHANNEL ADD -auto #irssi liberachat
/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 '*!@*.irssi.org *!bot@irssi.org' -botcmd 'msg $0 op WzerTrzq' #hideout liberachat
/CHANNEL ADD -auto -bots 'Q!TheQBot@CServe.quakenet.org' -botcmd '^MSG Q op #irssi' #irssi Quakenet
/CHANNEL MODIFY -noauto #irssi Freenode
/CHANNEL REMOVE #hideout Freenode
/CHANNEL MODIFY -noauto #irssi liberachat
/CHANNEL REMOVE #hideout liberachat
%9Special Example:%9

View file

@ -12,8 +12,8 @@
%9Description:%9
Clears the window of all text; you may use this to clear a windows that
contains sensitive information or has rendered improperly.
Scrolls up the text in the window and fills the window with blank lines; you
may want to use this to make new text start at the top of the window again.
%9See also:%9 REDRAW
%9See also:%9 REDRAW, SCROLLBACK CLEAR

View file

@ -17,6 +17,8 @@
-tls_ciphers: TLS cipher suite preference lists.
-tls_pinned_cert: Pinned x509 certificate fingerprint.
-tls_pinned_pubkey: Pinned public key fingerprint.
-nocap: Disable CAPREQ during connect
-noproxy: Ignores the global proxy configuration.
-network: The network this connection belongs to.
-host: The hostname you would like to connect from.
-rawlog: Immediately open rawlog after connecting.
@ -33,9 +35,9 @@
%9Examples:%9
/CONNECT Freenode
/CONNECT -6 Freenode
/CONNECT -4 -! -host staff.irssi.org -network Freenode orwell.freenode.net
/CONNECT liberachat
/CONNECT -6 liberachat
/CONNECT -4 -! -host staff.irssi.org -network liberachat irc.libera.chat
/CONNECT irc.irssi.org 6667 WzerT8zq mike
%9See also:%9 DISCONNECT, RMRECONNS, SERVER

View file

@ -27,7 +27,7 @@
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 connection
want to try if using the passive parameter resolves your connection
problem.
You can send files which contain special character or spaces by enclosing

View file

@ -18,7 +18,7 @@
%9Examples:%9
/DISCONNECT Freenode I'm off for today, take care!
/DISCONNECT liberachat I'm off for today, take care!
/DISCONNECT * Vacation time :D
/DISCONNECT

View file

@ -5,7 +5,6 @@
%9Parameters:%9
-current: Displays the output in the active window.
-window: Displays the output in the target window.
-level: Displays the output with a given message level.
@ -18,7 +17,7 @@
%9Examples:%9
/ECHO 1 + 1 = 2 :D
/ECHO -current Testing the ECHO command
/ECHO Testing the ECHO command
/ECHO -window #irssi Special variables such as ${N} will not be expanded.
%9See also:%9 CAT, EVAL, EXEC, LEVELS

View file

@ -10,13 +10,23 @@
%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.
If the command contains a string with `$', `\' or `;' those characters
need to be escaped:
`$' -> `$$'
`\' -> `\\' (or even `\\\\', depending on where they are used)
`;' -> `\;'
%9Examples:%9
/EVAL echo I am connected to ${S} on ${chatnet} as ${N}
/EVAL echo My user privileges are +${usermode}; echo Let's party!
to print `1;2$3\4':
/EVAL echo 1\;2$$3\\4
%9References:%9
https://github.com/irssi/irssi/blob/master/docs/special_vars.txt

View file

@ -15,7 +15,7 @@
%9References:%9
http://www.irssi.org
https://irssi.org
https://github.com/irssi
%9See also:%9 DIE, KILL, OPER

View file

@ -20,7 +20,7 @@
%9References:%9
http://www.irssi.org
https://irssi.org
https://github.com/irssi
%9See also:%9 CONNECT, MSG, NETWORK, SERVER

View file

@ -12,7 +12,7 @@
-full: The text must match the full word.
-matchcase: The text must match case.
-regexp: The text is a regular expression.
-color: The color the display the highlight in.
-color: The color to display the highlight in.
-actcolor: The color to mark the highlight activity in the statusbar.
-level: Matches only on the given message level.
-network: Matches only on the given network.

View file

@ -14,6 +14,8 @@
-network: Ignores only on a specific network.
-channels: Ignores only on specific channels.
-time: The timeout to automatically remove the ignore.
Accepts units specified in days, hours, minutes, seconds,
milliseconds, or no unit for seconds.
The mask, channels and levels to ignore; if no argument is provided, the
list of ignores will be displayed.
@ -25,6 +27,10 @@
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.
The special level 'HIDDEN' can be used to hide matching messages that can
later be revealed using /WINDOW HIDELEVEL -HIDDEN
The special level 'NOHILIGHT' can be used to suppress hilights without actually
ignoring the message.
%9Examples:%9
@ -35,12 +41,15 @@
/IGNORE #irssi ALL -PUBLIC -ACTIONS
/IGNORE -replies *!*@*.irssi.org ALL
/IGNORE -regexp -pattern (away|gone|back|playing|returned) * ACTIONS
/IGNORE -regexp -pattern (away|gone|back|playing|returned) #channel ACTIONS
/IGNORE *zzz* NICKS
/IGNORE *afk* NICKS
/IGNORE *away* NICKS
/IGNORE #irssi NO_ACT JOINS PARTS QUITS
/IGNORE mike NO_ACT -MSGS
/IGNORE -regexp -pattern
/IGNORE mike HIDDEN PUBLIC JOINS PARTS QUITS
/IGNORE -time 5days christmas PUBLICS
/IGNORE -time 300 mike PUBLICS
%9See also:%9 ACCEPT, SILENCE, UNIGNORE

View file

@ -15,7 +15,7 @@
%9Examples:%9
/INFO
/INFO orwell.freenode.net
/INFO irc.libera.chat
%9See also:%9 ADMIN

View file

@ -16,5 +16,5 @@
/ISON mike
/ISON sarah bob
%9See also:%9 NOTIFY, WHOAS, WHOIS
%9See also:%9 NOTIFY, WHOWAS, WHOIS

View file

@ -20,7 +20,7 @@
/JOIN #irssi
/JOIN #basementcat secret_lair
/JOIN -invite
/JOIN -freenode #github,#freenode,#irssi
/JOIN -liberachat #github,#libera,#irssi
%9See also:%9 KICK, PART

View file

@ -23,7 +23,7 @@
%9Examples:%9
/KNOCK #irssi
/KNOCK #freenode
/KNOCK #libera
/KNOCK #github
%9See also:%9 INVITE, JOIN

View file

@ -20,9 +20,10 @@
MODES A channel mode is modified.
MSGS Private messages.
NICKS A nickname changes to another nickname.
NOTICES Notices sent from a nickname.
NOTICES Private notices.
PARTS A nickname leaves a channel.
PUBLIC Public messages in a channel.
PUBNOTICES Public notices in a channel.
QUITS A nickname disconnects from IRC.
SNOTES Notices sent from a server.
TOPICS A channel topic is modified.
@ -32,8 +33,10 @@
HILIGHT The text is highlighted.
NEVER Never ignores or logs the message.
HIDDEN Hides the message when window HIDELEVEL includes HIDDEN.
NO_ACT Doesn't trigger any activity in the statusbar.
NOHILIGHT The text is not highlighted.
Suppresses hilights when used with /ignore.
When using levels from Irssi scripts, you need to prepend the level with
'MSGLEVEL_'; for example 'CRAP' becomes 'MSGLEVEL_CRAP'.

View file

@ -24,11 +24,15 @@
%9Remarks:%9
Not all networks support server-side filtering and may provide a network
Not all networks support server-side filtering. Some provide a network
service or service bot instead; on IRCnet, you may use the List service:
/SQUERY List HELP
/MSG ALIS HELP
/SQUERY Alis HELP
Other networks with service bots (like ChanServ) may also provide a list
service bot (confirm with /WHOIS ALIS):
/MSG Alis HELP
%9See also:%9 STATS, SQUERY, WHOIS

View file

@ -33,10 +33,10 @@
%9Examples:%9
/LOG OPEN -targets mike ~/irclogs/mike.log MSGS
/LOG OPEN -targets #irssi-freenode ~/irclogs/freenode/irssi-%%Y-%%m-%%d
/LOG CLOSE ~/irclogs/freenode/irssi-%%Y-%%m-%%d
/LOG STOP ~/irclogs/freenode/irssi-%%Y-%%m-%%d
/LOG START ~/irclogs/freenode/irssi-%%Y-%%m-%%d
/LOG OPEN -targets #irssi ~/irclogs/liberachat/irssi-%%Y-%%m-%%d
/LOG CLOSE ~/irclogs/liberachat/irssi-%%Y-%%m-%%d
/LOG STOP ~/irclogs/liberachat/irssi-%%Y-%%m-%%d
/LOG START ~/irclogs/liberachat/irssi-%%Y-%%m-%%d
/SET autolog ON

View file

@ -5,7 +5,7 @@
%9Parameters:%9
The server to search on and the remote sever to search on; if no arguments
The server to search on and the remote server to search on; if no arguments
are given, the active server will be used.
%9Description:%9

1
docs/help/in/meson.build Normal file
View file

@ -0,0 +1 @@
# don't forget to add new help files to ../meson.build

View file

@ -15,7 +15,7 @@
%9Examples:%9
/MOTD
/MOTD orwel.freenode.org
/MOTD irc.libera.chat
/MOTD bob
%9See also:%9 ADMIN, INFO, LINKS, MAP

View file

@ -11,8 +11,13 @@
The target nickname or channel and the message to send.
Use the wildcard character '*' if you want to use the active nickname or
channel.
The target can be a comma delimited list of targets, ie
nick1,nick2 or #chan1,#chan2
Or one of the following special targets:
* : Use the active nickname or channel
, : Last person who sent you a /msg
. : Last person you sent a /msg to
%9Description:%9

View file

@ -21,7 +21,7 @@
%9Examples:%9
/NAMES -ops
/NAMES -voices #irssi,#freenode
/NAMES -voices #irssi,#libera
%9See also:%9 JOIN, PART, WHO, WHOIS

View file

@ -15,7 +15,7 @@
%9Examples:%9
/NCTCP #irssi VERSION King of the Jungle v1.0
/NCTCP bob,#freenode USERINFO I am bob :p
/NCTCP bob,#libera USERINFO I am bob :p
%9See also:%9 CTCP

View file

@ -11,13 +11,15 @@
REMOVE: Removes a network from your configuration.
-nick: Specifies the nickname to use.
-alternate_nick Specifies the alternate nickname to use.
-user: Specifies the user identity to use.
-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
connecting.
connecting.
(Some characters need to be escaped - see /help eval)
-querychans: Specifies the maximum number of channels to put in one MODE
or WHO command when synchronizing.
-whois: Specifies the maximum number of nicknames in one WHOIS
@ -34,8 +36,9 @@
-cmdmax: Specifies the maximum number of commands to perform before
starting the internal flood protection.
-sasl_mechanism Specifies the mechanism to use for the SASL authentication.
At the moment irssi only supports the 'plain' and the
'external' mechanisms.
Irssi supports: PLAIN, EXTERNAL, SCRAM-SHA-1, SCRAM-SHA-256
and SCRAM-SHA-512
Use '' to disable the authentication.
-sasl_username Specifies the username to use during the SASL authentication.
-sasl_password Specifies the password to use during the SASL authentication.
@ -57,11 +60,11 @@
%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 -usermode +iw -nick mike -realname 'The one and only mike!' -host staff.irssi.org liberachat
/NETWORK ADD -autosendcmd '^MSG NickServ identify WzerT8zq' liberachat
/NETWORK ADD -autosendcmd '^MSG Q@CServe.quakenet.org AUTH mike WzerT8zq; WAIT 2000; OPER mike WzerT8zq; WAIT 2000; MODE mike +kXP' Quakenet
/NETWORK MODIFY -usermode +gi EFnet
/NETWORK REMOVE Freenode
/NETWORK REMOVE liberachat
%9See also:%9 CHANNEL, CONNECT, SERVER

111
docs/help/in/otr.in Normal file
View file

@ -0,0 +1,111 @@
OTR %|[OPTION]
Command to control the OTR module. Without an option, /OTR INFO is printed.
This help contains three sections which are %9options, quickstart and files.%n
To add the OTR status bar (highly recommended):
%9/statusbar window add otr%n
%9Options:%n
AUTH <secret>
Start or respond to an authentication process.
AUTHQ <question> <secret>
Start a SMP authentication process.
Example: %9/otr authq "My question is" "this is the secret"%n
AUTHABORT
Abort an ongoing authentication process.
CONTEXTS
List known contexts which basically list the known fingerprints and their
state.
DEBUG
Turn on debugging.
DISTRUST <fingerprint>
Distrust a specific fingerprint. This command can be done inside a private
window for which the current fingerprint of the other person will be used
or else set fp to a human readable OTR fingerprint available with the above
contexts command.
Examples: %9/otr distrust 487FFADA 5073FEDD C5AB5C14 5BB6C1FF 6D40D48A%n
FINISH
End the OTR session. This MUST be done inside a private conversation
window.
FORGET <fingerprint>
Forget a specific fingerprint (deleted from the known fingerprints). The
behavior is the same as the distrust command explained above.
GENKEY <name>
Generate OTR keys for a given account name. This is done automatically
if someone tries to establish a secure session.
This process is done in a background worker and can take an arbitrary
amount of time. The completion is checked when another irssi event is
caught.
HELP
Print this help.
INFO
Display the OTR fingerprint(s) of all your account(s).
INIT
Initialize an OTR conversation within a private conversation window.
TRUST <fingerprint>
Trust a specific fingerprint. The behavior is the same as the forget and
distrust commands explained above.
VERSION
Print the version of the OTR module.
%9Quickstart:%n
Start a private conversation with the person you want to initiate a secure
session. Once in the private message window:
%9/otr init%n
Key generation should start if no key is found for your account name. Once the
process is done, either type a message which should automatically start the
session or redo the init command.
Time to authenticate the person. Either use a shared secret exchange through
phone or GPG-signed email or use the socialist millionaire problem mechanism
(SMP) which is basically to ask a question for which the answer can only be
known by the other person.
%9/otr auth <shared-secret>%n OR %9/otr authq "A question" <shared-secret>%n
Or to respond to an authentication:
%9/otr auth <secret>%n
%9Files:%n
This otr modules creates a directory in %9$HOME/.irssi/otr%n and creates three
files:
* %9otr.key%n
Contains your OTR private key(s). NEVER shared this directory with someone
else unless you know what you are doing.
* %9otr.fp%n
The known fingerprints with their _trust_ status.
* %9otr.instag
Instance tag of the libotr. This should NEVER be copied to an other
computer. If unsure, just ignore this file.
For more information on OTR, see https://otr.cypherpunks.ca/

View file

@ -14,7 +14,7 @@
%9Examples:%9
/PART #irssi
/PART #freenode,#irssi
/PART #libera,#irssi
%9See also:%9 JOIN, KICK

View file

@ -17,8 +17,8 @@
%9Examples:%9
/QUERY mike
/QUERY -freenode bob
/QUERY -freenode -window sarah
/QUERY -liberachat bob
/QUERY -liberachat -window sarah
%9See also:%9 MSG, UNQUERY, WINDOW

View file

@ -22,7 +22,7 @@
%9Examples:%9
/RECODE
/RECODE ADD Freenode/mike utf-8
/RECODE ADD liberachat/mike utf-8
/RECODE ADD #korea euc-kr
/RECODE REMOVE #korea

View file

@ -15,7 +15,7 @@
%9Examples:%9
/RECONNECT
/RECONNECT Freenode
/RECONNECT liberachat
/RECONNECT EFnet BRB :)
%9See also:%9 CONNECT, DISCONNECT, NETWORK, RMRECONNS, SERVER

View file

@ -20,10 +20,10 @@
%9Description:%9
Manipulate the text in the window to go to a to the given line number, or
Manipulate the text in the window to go to the given line number, or
clear the buffers.
The timestamp format is format is '[dd[.mm] | -<days ago>] hh:mi[:ss]'.
The timestamp format is '[dd[.mm] | -<days ago>] hh:mi[:ss]'.
%9Examples:%9

View file

@ -5,7 +5,7 @@
%9Parameters:%9
LIST: Displays the list of servers you are connected to.
LIST: Displays the list of servers you have configured.
CONNECT: Connects to the given server.
ADD: Adds a server to your configuration.
MODIFY: Modifies a server in your configuration.
@ -16,11 +16,13 @@
-4: Connects using IPv4.
-6: Connects using IPv6.
-tls: Connects using TLS encryption.
-notls: Connect without TLS encrption.
-tls_cert: The TLS client certificate file.
-tls_pkey: The TLS client private key, if not included in the
certificate file.
-tls_pass: The password for the TLS client private key or certificate.
-tls_verify: Verifies the TLS certificate of the server.
-tls_verify: Verifies the TLS certificate of the server.
-notls_verify: Doesn't verify the TLS certificate of the server.
-tls_cafile: The file with the list of CA certificates.
-tls_capath: The directory which contains the CA certificates.
-tls_ciphers: TLS cipher suite preference lists.
@ -28,6 +30,8 @@
-tls_pinned_pubkey: Pinned public key fingerprint.
-auto: Automatically connects to the server on startup.
-noauto: Doesn't connect to the server on startup.
-cap: Enable CAPREQ for server.
-nocap: Disable CAPREQ for server.
-network: The network the server belongs to.
-host: The hostname you would like to connect from.
-cmdspeed: Specifies the minimum amount of time, expressed in
@ -36,6 +40,7 @@
-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.
-rawlog: Immediately open rawlog after connecting.
-noautosendcmd: Doesn't execute autosendcmd.
@ -50,24 +55,24 @@
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
method is applicable to the CONNECT parameter.
When using the CONNECT parameter, it will connect to the specified
server; the server in the active window will be disconnected
unless you prepend the server with the '+' character.
Specify '-' as password to remove a server password
%9Examples:%9
/SERVER
/SERVER chat.freenode.net
/SERVER +chat.freenode.net
/SERVER CONNECT chat.freenode.net
/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 orwell.freenode.net
/SERVER MODIFY -network Freenode -noauto orwell.freenode.net
/SERVER REMOVE orwell.freenode.net 6667 Freenode
/SERVER CONNECT irc.libera.chat
/SERVER CONNECT +irc.libera.chat
/SERVER ADD -network liberachat -noautosendcmd irc.libera.chat
/SERVER ADD -! -auto -host staff.irssi.org -4 -network liberachat -noproxy irc.libera.chat 6667
/SERVER MODIFY -network liberachat -noauto irc.libera.chat
/SERVER MODIFY -network liberachat irc.libera.chat 6697 -
/SERVER REMOVE irc.libera.chat 6667 liberachat
/SERVER PURGE
/SERVER PURGE orwell.freenode.net
/SERVER PURGE irc.libera.chat
%9See also:%9 CHANNEL, CONNECT, DISCONNECT, NETWORK, RECONNECT, RMRECONNS

View file

@ -7,6 +7,7 @@
-clear: Removes the setting's value from the configuration.
-default: Restore the setting to its default value.
-section: Print settings under the specified section
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
@ -27,6 +28,7 @@
/SET -clear nick
/SET log_timestamp %%H:%%H:%%S
/SET -default log_timestamp
/SET -section lookandfeel
/SET close
%9See also:%9 SAVE, TOGGLE

View file

@ -5,32 +5,61 @@
%9Parameters:%9
ENABLE: Enables the statusbar.
DISABLE: Disabled the statusbar.
ADD: Adds a statusbar to the list of statusbars.
MODIFY: Modifies the configuration of a 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.
ADDITEM: Adds an item to the specified statusbar. It can be set to
appear before/after another item and left/right aligned
on the screen.
MODIFYITEM: Changes an item position inside a bar.
REMOVEITEM: Removes an item from the specified statusbar.
INFO: List the current details and items of the specified
statusbar.
The name of the statusbar; if no argument is given, the list of statusbars
will be displayed.
-disable: Removes a statusbar from the list.
-type: Sets the type of statusbar, for each split window or only
once at the root (very top or bottom) of the screen.
-placement: Sets the placement of the statusbar, either at the top or
the bottom of the screen or split window.
-position: Sets the position of the statusbar. Represented as a
number, with smaller numbers implying a position further
to the top.
-visible: Sets the visibility of the statusbar. If set to always,
it is visible on all split windows, otherwise if set to
inactive or active then it is only visible on inactive or
active split windows, respectively.
-before: This item is added before the other item.
-after: This item is added after the other item.
-priority: When the statusbar items overflow, the item with the
lowest priority is removed or truncated first.
Priority can be negative, in which case it'll have to be
quoted (e.g. -priority "-1")
-alignment: Display the item on the right side.
Where statusbar refers to the name of the statusbar; if no
argument is given, or `LIST` is given, the entire list of
statusbars along with a quick overview of their properties will be
displayed.
%9Description:%9
Modified the attributes of the statusbar.
Allows adjustment of the attributes and items of a statusbar, as well
as where it is located and whether or not it is currently visible.
%9Examples:%9
/STATUSBAR
/STATUSBAR window
/STATUSBAR window REMOVE time
/STATUSBAR window ADD time
/STATUSBAR window RESET
/STATUSBAR topic DISABLE
/STATUSBAR topic ENABLE
/STATUSBAR INFO window
/STATUSBAR REMOVEITEM time window
/STATUSBAR ADDITEM time window
/STATUSBAR RESET window
/STATUSBAR MODIFY -disable topic
/STATUSBAR MODIFY -nodisable topic
%9Remarks:%9
Statusbar syntax was changed in Irssi 1.2. The old syntax is still
accepted for backward compatibility, but no longer documented.
%9See also:%9 WINDOW

View file

@ -15,7 +15,6 @@
%9Examples:%9
/TOGGLE resolve_prefer_ipv6
/TOGGLE channels_rejoin_unavailable ON
%9See also:%9 SET

View file

@ -33,22 +33,28 @@
THEME: %|Applies or removes a per-window theme.
GROW: %|Increase the size of the active split window by the specified number of lines.
SHRINK: %|Decrease the size of the active split window by the specified number of lines.
SIZE: %|Set the current split window size to the specified numer of lines.
SIZE: %|Set the current split window size to the specified number of lines.
BALANCE: %|Balance the heights of all split windows.
HIDE: %|Hides the current split window, or the split window specified by number or item name.
SHOW: %|Show the window specified by number or item name as a new split windows. It is made sticky when autostick_split_windows is turned on.
UP: %|Set the split window above the current one active. At the top, wraps to the bottom.
DOWN: %|Set the split window below the current one active. At the bottom, wraps to the top.
UP: %|Set the split window left or above the current one active. At the top, wraps to the bottom.
DOWN: %|Set the split window right or below the current one active. At the bottom, wraps left.
LEFT: %|Go to the previous window numerically that is part of the current sticky group (or not part of any sticky group).
RIGHT: %|Go to the next window numerically that is part of the current sticky group (or not part of any sticky group).
STICK: %|Make the currently active window sticky, or stick the window specified by number to the currently visible split window. Or turn off stickyness of the currently active window or the window specified by number.
HIDELEVEL: %|Changes the levels of text lines that should be hidden from view, or query the current hidden level.
MOVE LEFT: %|Move the window to the numerically previous location inside the current sticky group.
MOVE RIGHT: %|Move the window to the numerically next location inside the current sticky group.
MOVE UP: %|Move the current window to the sticky group of the split window above. If no sticky group remains, the split window collapses.
MOVE DOWN: %|Move the current window to the sticky group of the split window below. If no sticky group remains, the split window collapses.
MOVE UP: %|Move the current window to the sticky group of the previous split window. If no sticky group remains, the split window collapses.
MOVE DOWN: %|Move the current window to the sticky group of the next split window. If no sticky group remains, the split window collapses.
-right: %|Makes the command work on the width instead of height, or create the split window to the right instead of top.
-directional: %|Set the split window in the given direction to the current one active, or move the current window to the sticky group of the split window in the given direction. (If no sticky group remains, the split window collapses.)
%|Add the required arguments for the given command. Without arguments, the details (size, immortality, levels, server, name and sticky group) of the currently active window are displayed. If used with a number as argument, same as WINDOW REFNUM.
%|LEVEL and HIDELEVEL modify the currently set level. Without arguments, the current level is displayed. Levels listed starting with `+' are added to the current levels. Levels listed starting with `-' are removed from the current levels. To clear the levels, start the new level setting with `NONE'. Levels listed starting with `^' are either removed or added from the current setting, depending on whether they were previously set or not (since Irssi 1.4.4). Levels listed as is are also added to the current levels. Afterwards, the new level setting is displayed.
%9Description:%9
Manipulates the window layout and positioning attributes.
@ -65,7 +71,8 @@
/WINDOW LOG OFF
/WINDOW LOG ON ~/logs/debug.log
/WINDOW LEVEL -ALL +NOTICES
/WINDOW HIDELEVEL ^JOINS ^PARTS ^QUITS
/WINDOW LOGFILE ~/logs/notices.log
%9See also:%9 JOIN, LEVELS, LOG, QUERY
%9See also:%9 JOIN, LEVELS, LOG, QUERY, SET window_default_level, SET window_default_hidelevel

122
docs/help/meson.build Normal file
View file

@ -0,0 +1,122 @@
install_data(
files(
'accept',
'action',
'admin',
'alias',
'away',
'ban',
'beep',
'bind',
'cat',
'cd',
'channel',
'clear',
'completion',
'connect',
'ctcp',
'cycle',
'dcc',
'dehilight',
'deop',
'devoice',
'die',
'disconnect',
'echo',
'eval',
'exec',
'flushbuffer',
'format',
'hash',
'help',
'hilight',
'ignore',
'info',
'invite',
'irssiproxy',
'ison',
'join',
'kick',
'kickban',
'kill',
'knock',
'knockout',
'lastlog',
'layout',
'levels',
'links',
'list',
'load',
'log',
'lusers',
'map',
'me',
'mircdcc',
'mode',
'motd',
'msg',
'names',
'nctcp',
'netsplit',
'network',
'nick',
'notice',
'notify',
'op',
'oper',
'otr',
'part',
'ping',
'query',
'quit',
'quote',
'rawlog',
'recode',
'reconnect',
'rehash',
'reload',
'restart',
'rmreconns',
'rmrejoins',
'save',
'sconnect',
'script',
'scrollback',
'server',
'servlist',
'set',
'silence',
'squery',
'squit',
'stats',
'statusbar',
'time',
'toggle',
'topic',
'trace',
'ts',
'unalias',
'unban',
'unignore',
'unload',
'unnotify',
'unquery',
'unsilence',
'upgrade',
'uptime',
'userhost',
'ver',
'version',
'voice',
'wait',
'wall',
'wallops',
'who',
'whois',
'whowas',
'window',
),
install_dir : helpdir,
)
# subdir('in')

View file

@ -59,7 +59,7 @@ show a help message
.SH SEE ALSO
.B Irssi
has a solid amount of documentation available; check /HELP or look online
at http://www.irssi.org
at https://irssi.org
.SH FILES
.TP
.I ~/.irssi/config

View file

@ -1,5 +1,5 @@
Irssi 0.8 documentation - http://www.irssi.org/
Irssi 0.8 documentation - https://irssi.org/
Copyright(c) 2000 Timo Sirainen <cras@irssi.org>
@ -18,16 +18,16 @@
9. Text highlighting
10. Ignoring
11. Logging
12. Commands
14. Last log (currently text version only)
15. Word completion
16. Recode
18. Key bindings (text version)
19. Perl scripting
( not written yet: )
12. Commands
13. Themes
14. Last log (currently text version only)
15. Nick and word completion
16. Recode
17. Windowing system (text version)
18. Keyboard (text version)
19. Perl scripting
@ -141,44 +141,7 @@
--hostname -h Specify what host name to use
2. Message levels
Message levels (or in short, levels) are used almost everywhere.
They describe what kind of messages we're dealing with. Here's a
list of them all:
CRAP - Can be almost anything
MSGS - Private messages
PUBLIC - Public messages in channel
NOTICES - Notices
SNOTES - Server notices
CTCPS - CTCP messages
ACTIONS - Actions (/me) - usually ORed with PUBLIC or MSGS
JOINS - Someone joins a channel
PARTS - Someone parts a channel
QUITS - Someone quits IRC
KICKS - Someone gets kicked from channel
MODES - Channel mode is changed
TOPICS - Channel topic is changed
WALLOPS - Wallop is received
INVITES - Invite is received
NICKS - Someone changes nick
DCC - DCC related messages
DCCMSGS - DCC chat messages
CLIENTNOTICES - Irssi's notices
CLIENTERRORS - Irssi's error messages
CLIENTCRAP - Some other messages from Irssi
And a few special ones that could be included with the
levels above:
HILIGHT - Text is highlighted
NOHILIGHT - Don't check highlighting for this message
NO_ACT - Don't trigger channel activity when printing
this message
NEVER - Never ignore or log this message
2. Message levels <https://irssi.org/documentation/help/levels/>
3. Flood protection
@ -252,47 +215,12 @@
Currently only messages, notices and ctcps are checked for
flooding.
/SET flood_max_msgs = <count>, default is 4
/SET flood_timecheck = <seconds>, default is 5 seconds
/SET flood_max_msgs <count>, default is 4
/SET flood_timecheck <seconds>, default is 5 seconds
If either of these is 0, the flood checking is disabled.
4. Configuration
4.1 Configuration files
The configuration is saved to ~/.irssi/config file. You can edit
it with text editor if you want, you can also add comments to it
and they stay there even if /SAVE is used. Comments are the lines
starting with # character. Any errors in config file are displayed
at startup.
Irssi uses it's own config library for handling the config file.
The format is pretty much the same as in libPropList and should be
easily understandable.
You can reload the config file on the fly with /RELOAD command, you
can also read a different config file with /RELOAD <filename>.
If you change any settings, they aren't saved to file until you use
/SAVE. You can save the config file to different place with
/SAVE <filename>.
4.2 Settings
You can view or change the settings with /SET command.
/SET without any arguments displays all the settings.
/SET <key> displays settings which key (partly) matches <key>
/SET <key> <value> sets <key> to <value>
Boolean settings accepts 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.
Remember that changes are not saved until you use /SAVE!
4. Configuration <https://irssi.org/documentation/manual/configuration/>
5. Servers
@ -349,7 +277,7 @@
after connecting to the network. This is useful for automatically
identifying yourself to NickServ, for example
/NETWORK ADD -autosendcmd "/^msg NickServ identify secret" freenode
/NETWORK ADD -autosendcmd "/^msg NickServ identify secret" liberachat
/NETWORK REMOVE <name>
@ -367,11 +295,11 @@
you setup the server using /SERVER ADD (see next section). If the
settings can't be found there either, Irssi will use the defaults:
/SET default_nick = <nick>, defaults to user_name
/SET alternate_nick = <nick>, defaults to <default_nick>_
/SET user_name = <user>, defaults to your login name
/SET real_name = <name>, taken from /etc/passwd by default
/SET hostname = <host>, what host name to use when connecting
/SET default_nick <nick>, defaults to user_name
/SET alternate_nick <nick>, defaults to <default_nick>_
/SET user_name <user>, defaults to your login name
/SET real_name <name>, taken from /etc/passwd by default
/SET hostname <host>, what host name to use when connecting
/SET skip_motd ON|OFF|TOGGLE - Don't show server's MOTD
NOTE: /CONNECT is also a command for IRC operators to connect IRC
@ -394,10 +322,26 @@
5.4 Server settings
/SERVER ADD [-auto | -noauto] [-network <network>] [-host <hostname>]
/SERVER ADD [-tls] [-tls_cert <cert>] [-tls_pkey <pkey>]
[-tls_pass <password>] [-tls_verify] [-tls_cafile <cafile>]
[-tls_capath <capath>] [-tls_ciphers <list>]
[-tls_pinned_cert <fingerprint>] [-tls_pinned_pubkey <fingerprint>]
[-auto | -noauto] [-network <network>] [-host <hostname>]
[-cmdspeed <ms>] [-cmdmax <count>] [-port <port>]
<address> [<port> [<password>]]
-tls: Connects using TLS encryption.
-tls_cert: The TLS client certificate file.
-tls_pkey: The TLS client private key, if not included in the
certificate file.
-tls_pass: The password for the TLS client private key or
certificate.
-tls_verify: Verifies the TLS certificate of the server.
-tls_cafile: The file with the list of CA certificates.
-tls_capath: The directory which contains the CA certificates.
-tls_ciphers: TLS cipher suite preference lists.
-tls_pinned_cert: Pinned x509 certificate fingerprint.
-tls_pinned_pubkey: Pinned public key fingerprint.
-auto: Automatically connect to server at startup
-noauto: Don't connect to server at startup (default)
-network: Specify what IRC network this server belongs to
@ -429,9 +373,6 @@
After connected to server, Irssi can automatically change your user
mode. You can set it with /SET usermode <mode>, default is +i.
/SET resolve_prefer_ipv6 - If ON, prefer IPv6 for hosts that
have both v4 and v6 addresses.
5.5 Automatic reconnecting
If you get disconnected from server, Irssi will try to reconnect
@ -776,13 +717,7 @@
/SET massjoin_max_joins <count>.
7. IRC commands and features (FIXME)
7.x Basic commands
7.x IRC operator commands
7.x Away features
7. IRC commands and features <https://irssi.org/documentation/help/>
8. Notify list
@ -830,9 +765,9 @@
/HILIGHT without any arguments displays list of the hilights.
If <color> is a
number, Irssi will treat it as a MIRC color code. You can also use
bolds (^B), underlines (^_) etc. as <color> if you like.
If <color> is a number, Irssi will treat it as a MIRC color
code. You can also use bolds (^B), underlines (^_) etc. as
<color> if you like.
10. Ignoring
@ -977,29 +912,24 @@ If <color> is a
You can disable this feature by setting awaylog_level to NONE.
12. Commands
12. Commands <https://irssi.org/documentation/manual/commands/>
Any char in the `cmdchars' setting can begin a command. The
syntax for a command is the following:
13. Themes
<CMDCHAR>[<CMDCHAR>][^]<DATA>
14. Last log <https://irssi.org/documentation/help/lastlog/>
If <CMDCHAR> is repeated two times, alias expansion is
disabled, enabled otherwise. If `^' is present, command output
is disabled. If <DATA> begins with a space, command lookup is
inhibited and the data is sent to the active window item
(useful to send a line that begins with <CMDCHAR>).
15. Word completion <https://irssi.org/documentation/help/completion/>
16. Recode
irssi supports selective encoding of incoming/outgoing messages
Irssi supports selective encoding of incoming/outgoing messages
through the recode system. All incoming/outgoing messages can be
optionally converted to/from the charset specified by the
`term_charset' variable (which defaults to the locale encoding and
should _not_ be changed in most cases), by setting the `recode'
variable to 'ON'.
Since there is no way in IRC to know the encoding associated to a
message, for incoming messages irssi uses the following algorithm:
message, for incoming messages Irssi uses the following algorithm:
if `recode_autodetect_utf8' is 'ON' and the message is valid UTF-8 the
encoding is assumed to be UTF-8.
@ -1016,5 +946,9 @@ If <color> is a
iconv specific extension to peform transliteration (locale dependent)
when a character is not representable in the destination encoding.
18. Key bindings <https://irssi.org/documentation/help/bind_-list/>
19. Scripting <https://irssi.org/documentation/scripting/>
.. no, the docs end here, I got bored of writing these after a few days and
haven't touched these since then.

6
docs/meson-macos-ar.txt Normal file
View file

@ -0,0 +1,6 @@
;; manual workaround for meson bug https://github.com/mesonbuild/meson/issues/11165
;; fixes compilation with meson on apple macos
;; usage: meson --native-file ./docs/meson-macos-ar.txt ...
[binaries]
ar = ['/bin/sh', '-c', 'ar=${AR:-ar}; ranlib=${RANLIB:-ranlib -c -}; case "x$1" in xcsr*) $ar "$@" && $ranlib "$2" || exit $?; ;; *) exec $ar "$@"; ;; esac;', 'ar']

19
docs/meson.build Normal file
View file

@ -0,0 +1,19 @@
install_data(
files(
'capsicum.txt',
'design.html',
'design.txt',
'faq.html',
'faq.txt',
'formats.txt',
'manual.txt',
'perl.txt',
'signals.txt',
'special_vars.txt',
'startup-HOWTO.html',
'startup-HOWTO.txt',
),
install_dir : docdir,
)
subdir('help')

View file

@ -178,6 +178,9 @@ listed after the generic ones.
Window active_win() - return active window
Server active_server() - return server in active window
get_irssi_dir() - returns the absolute path to the user configuration
directory - either the value passed to --home at startup, or ~/.irssi
windows() - return list of all windows
servers() - return list of all servers
reconnects() - return list of all server reconnections
@ -202,6 +205,12 @@ Window::command(cmd)
Windowitem::command(cmd)
Send a command `cmd' (in current channel). The '/' char isn't needed.
version() - return client release date and time (format YYYYMMDD.hhmm)
parse_special(cmd, data="", flags=0)
Server::parse_special(cmd, data="", flags=0)
Windowitem::parse_special(cmd, data="", flags=0)
evaluate a string with special vars
*** Themes
@ -513,6 +522,8 @@ Connect->{}
address - Address where we connected (irc.blah.org)
port - Port where we connected
chatnet - Chat network
chosen_family - IP family chosen to connect to
ipaddr - IP address connected to
password - Password we used in connection.
wanted_nick - Nick which we would prefer to use
@ -1192,6 +1203,7 @@ Client->{}
Bugs and Limitations
--------------------
* Calling die in 'script error' handler causes segfault (#101)
* Calling "script unload" from your own script causes segfault
* Storing and later using any Irssi object may result in use-after-free related crash
- Workaround: always acquire fresh objects
* Calling $dcc->close from the "dcc created" signal will cause unstable behaviour and crashes (#386)

View file

@ -24,7 +24,7 @@ You really should set some password for the proxy with:
Then you'll need to configure the ports/ircnets the proxy listens in,
something like:
/SET irssiproxy_ports ircnet=2777 efnet=2778 freenode=2779
/SET irssiproxy_ports IRCnet=2777 EFNet=2778 liberachat=2779
There we have 3 different irc networks answering in 3 ports. Note that
you'll have to make the correct /IRCNET ADD and /SERVER ADD commands to

52
docs/qna.html Normal file
View file

@ -0,0 +1,52 @@
<base href='https://irssi.org/documentation/qna/multi/'>
<h1>Right-aligned nicks</h1>
<p>To create a “tabular” effect of the chat view, or to align nick names in a column, you can use Irssis theme/format system. The basic commands are the following:</p>
<div class="highlight-default notranslate"><div><pre>/format own_msg {ownmsgnick $2 {ownnick $[-9]0}}$1
/format own_msg_channel {ownmsgnick $3 {ownnick $[-9]0}{msgchannel $1}}$2
/format pubmsg_me {pubmsgmenick $2 {menick $[-9]0}}$1
/format pubmsg_me_channel {pubmsgmenick $3 {menick $[-9]0}{msgchannel $1}}$2
/format pubmsg_hilight {pubmsghinick $0 $3 $[-9]1}$2
/format pubmsg_hilight_channel {pubmsghinick $0 $4 $[-9]1{msgchannel $2}}$3
/format pubmsg {pubmsgnick $2 {pubnick $[-9]0}}$1
/format pubmsg_channel {pubmsgnick $3 {pubnick $[-9]0}{msgchannel $1}}$2
</pre></div>
</div>
<p>These are copied from the default themes default values, which are responsible for displaying your own messages sent to a channel (<code class="docutils literal notranslate">own_msg</code>) as well as received messages (<code class="docutils literal notranslate">pubmsg</code>) and the two basic highlightings (<code class="docutils literal notranslate">me</code> and <code class="docutils literal notranslate">hilight</code>).</p>
<p>Then, in front of the argument that contains the nick name (<code class="docutils literal notranslate">$0</code> in most cases, but <code class="docutils literal notranslate">$1</code> in <code class="docutils literal notranslate">pubmsg_hilight</code>), an alignment modifier (see <a class="reference internal" href="../../settings/#a-b">Appendix B: Special Variables and Expandos</a>) has been added: <code class="docutils literal notranslate">[-9]</code>. This means that the nicks will be right-aligned and truncated to 9 characters.</p>
<p><strong>Note</strong>: Modifiers <em>only</em> work in the <code class="docutils literal notranslate">/format</code> section of a theme (this may change in the future)</p>
<p>There are also some scripts that try to do the alignment for you, like: <code class="docutils literal notranslate">nm</code>, <code class="docutils literal notranslate">nm2</code>.</p>
<p>There are also some nice themes that extend the alignment to further formats, like: <a class="reference external" href="https://github.com/ronilaukkarinen/weed">weed</a>.</p>
<h1>Automatic log-in to NickServ</h1>
<p>Please check here =&gt; <a class="reference internal" href="../../manual/automation/#automatic-log-in-to-nickserv">Automatic log-in to NickServ</a></p>
<h1>CertFP Log-in</h1>
<p>CertFP, short for Certificate Finger Print, is another method to log you in to NickServ. Instead of a password, it uses a <a class="reference external" href="https://en.wikipedia.org/wiki/Client_certificate">Client Certificate</a>.</p>
<p>In order to use it, you</p>
<ul class="simple">
<li><p>first need a certificate,</p></li>
<li><p>then configure Irssi to use this certificate,</p></li>
<li><p>and finally register the certificate with NickServ.</p></li>
</ul>
<p>Irssi does not have built-in certificate management commands, so you need to use an external tool like <code class="docutils literal notranslate">openssl</code> to create the certificate.</p>
<p>A step-by-step guide for the Libera Chat network can be found here =&gt; <a class="reference external" href="https://github.com/shabble/irssi-docs/wiki/liberachat_certfp">https://github.com/shabble/irssi-docs/wiki/liberachat_certfp</a></p>
<p>It is necessary that the certificate be available as a file; PKCS#11 is not supported.</p>
<h1>Tor (The Onion Router)</h1>
<p><a class="reference external" href="https://www.torproject.org/">Tor</a> is an overlay network for anonymous communication. It operates a local <a class="reference external" href="https://en.wikipedia.org/wiki/SOCKS">SOCKS</a> proxy for applications to use.</p>
<p>Unfortunately, Irssi currently does not support SOCKS proxies natively. As a workaround, you can install the <a class="reference external" href="https://github.com/rofl0r/proxychains-ng">ProxyChains-NG</a> program (note, it must be the NG version).</p>
<p>Afterwards, you can launch Irssi like this:</p>
<div class="highlight-default notranslate"><div><pre>proxychains4 irssi
</pre></div>
</div>
<p>Now your connections will go through the Proxy configured in ProxyChains-NG (Tor by default).</p>
<p>IRC networks may have different requirements to be able to connect via Tor. For the Libera Chat network, you will first need to set up <a class="reference internal" href="../certfp/">CertFP Log-in</a> using a clearnet connection, and then connect to their <a class="reference external" href="https://libera.chat/guides/connect#accessing-liberachat-via-tor">Onion Service</a> <code class="docutils literal notranslate">palladium.libera.chat</code>. More detailed instructions can be found here =&gt; <a class="reference external" href="https://github.com/shabble/irssi-docs/wiki/liberator">https://github.com/shabble/irssi-docs/wiki/liberator</a></p>
<h1>The following signatures were invalid: EXPKEYSIG</h1>
<p>If you see such a message</p>
<div class="highlight-default notranslate"><div><pre>Err:4 home:/ailin_nemui:/irssi-an InRelease
The following signatures were invalid: EXPKEYSIG EDB7AED941EEDB57 home:ailin_nemui OBS Project &lt;home:ailin_nemui@build.opensuse.org&gt;
</pre></div>
</div>
<p>this means that the automatic signing key used by the Open Build Service expired. OBS renews the key periodically, but Debian does not support this.</p>
<section id="fix">
<h2>Fix</h2>
<p>Download the key again, following the regular OBS instructions. If it still does not work, verify if there is a second expired copy of the key in <code class="docutils literal notranslate">/etc/apt/trusted.gpg.d</code> or in <code class="docutils literal notranslate">apt-key list</code> and remove it as well.</p>
</section>

111
docs/qna.txt Normal file
View file

@ -0,0 +1,111 @@
# Right-aligned nicks #
To create a “tabular” effect of the chat view, or to align nick names in a
column, you can use Irssis theme/format system. The basic commands are the
following:
/format own_msg {ownmsgnick $2 {ownnick $[-9]0}}$1
/format own_msg_channel {ownmsgnick $3 {ownnick $[-9]0}{msgchannel $1}}$2
/format pubmsg_me {pubmsgmenick $2 {menick $[-9]0}}$1
/format pubmsg_me_channel {pubmsgmenick $3 {menick $[-9]0}{msgchannel $1}}$2
/format pubmsg_hilight {pubmsghinick $0 $3 $[-9]1}$2
/format pubmsg_hilight_channel {pubmsghinick $0 $4 $[-9]1{msgchannel $2}}$3
/format pubmsg {pubmsgnick $2 {pubnick $[-9]0}}$1
/format pubmsg_channel {pubmsgnick $3 {pubnick $[-9]0}{msgchannel $1}}$2
These are copied from the default themes default values, which are responsible
for displaying your own messages sent to a channel (own_msg) as well as
received messages (pubmsg) and the two basic highlightings (me and hilight).
Then, in front of the argument that contains the nick name ($0 in most cases,
but $1 in pubmsg_hilight), an alignment modifier (see [1]Appendix B: Special
Variables and Expandos) has been added: [-9]. This means that the nicks will be
right-aligned and truncated to 9 characters.
Note: Modifiers only work in the /format section of a theme (this may change in
the future)
There are also some scripts that try to do the alignment for you, like: nm,
nm2.
There are also some nice themes that extend the alignment to further formats,
like: [2]weed.
# Automatic log-in to NickServ #
Please check here => [3]Automatic log-in to NickServ
# CertFP Log-in #
CertFP, short for Certificate Finger Print, is another method to log you in to
NickServ. Instead of a password, it uses a [4]Client Certificate.
In order to use it, you
• first need a certificate,
• then configure Irssi to use this certificate,
• and finally register the certificate with NickServ.
Irssi does not have built-in certificate management commands, so you need to
use an external tool like openssl to create the certificate.
A step-by-step guide for the Libera Chat network can be found here => [5]https:
//github.com/shabble/irssi-docs/wiki/liberachat_certfp
It is necessary that the certificate be available as a file; PKCS#11 is not
supported.
# Tor (The Onion Router) #
[6]Tor is an overlay network for anonymous communication. It operates a local
[7]SOCKS proxy for applications to use.
Unfortunately, Irssi currently does not support SOCKS proxies natively. As a
workaround, you can install the [8]ProxyChains-NG program (note, it must be the
NG version).
Afterwards, you can launch Irssi like this:
proxychains4 irssi
Now your connections will go through the Proxy configured in ProxyChains-NG
(Tor by default).
IRC networks may have different requirements to be able to connect via Tor. For
the Libera Chat network, you will first need to set up [9]CertFP Log-in using a
clearnet connection, and then connect to their [10]Onion Service
palladium.libera.chat. More detailed instructions can be found here => [11]
https://github.com/shabble/irssi-docs/wiki/liberator
# The following signatures were invalid: EXPKEYSIG #
If you see such a message
Err:4 home:/ailin_nemui:/irssi-an InRelease
The following signatures were invalid: EXPKEYSIG EDB7AED941EEDB57 home:ailin_nemui OBS Project <home:ailin_nemui@build.opensuse.org>
this means that the automatic signing key used by the Open Build Service
expired. OBS renews the key periodically, but Debian does not support this.
## Fix ##
Download the key again, following the regular OBS instructions. If it still
does not work, verify if there is a second expired copy of the key in /etc/apt/
trusted.gpg.d or in apt-key list and remove it as well.
References:
[1] https://irssi.org/documentation/settings/#a-b
[2] https://github.com/ronilaukkarinen/weed
[3] https://irssi.org/documentation/manual/automation/#automatic-log-in-to-nickserv
[4] https://en.wikipedia.org/wiki/Client_certificate
[5] https://github.com/shabble/irssi-docs/wiki/liberachat_certfp
[6] https://www.torproject.org/
[7] https://en.wikipedia.org/wiki/SOCKS
[8] https://github.com/rofl0r/proxychains-ng
[9] https://irssi.org/documentation/qna/certfp/
[10] https://libera.chat/guides/connect#accessing-liberachat-via-tor
[11] https://github.com/shabble/irssi-docs/wiki/liberator

View file

@ -63,6 +63,7 @@ nicklist.c:
"nicklist remove", CHANNEL_REC, NICK_REC
"nicklist changed", CHANNEL_REC, NICK_REC, char *old_nick
"nicklist host changed", CHANNEL_REC, NICK_REC
"nicklist account changed", CHANNEL_REC, NICK_REC, char *account
"nicklist gone changed", CHANNEL_REC, NICK_REC
"nicklist serverop changed", CHANNEL_REC, NICK_REC
@ -132,7 +133,10 @@ irc-servers.c:
irc-cap.c
"server cap ack "<cmd>, SERVER_REC
"server cap nak "<cmd>, SERVER_REC
"server cap new "<cmd>, SERVER_REC
"server cap delete "<cmd>, SERVER_REC
"server cap end", SERVER_REC
"server cap req", SERVER_REC, char *caps
sasl.c
"server sasl failure", SERVER_REC, char *reason
@ -141,11 +145,13 @@ sasl.c
irc.c:
"server event", SERVER_REC, char *data, char *sender_nick, char *sender_address
"server event tags", SERVER_REC, char *data, char *sender_nick, char *sender_address, char *tags
"event "<cmd>, SERVER_REC, char *args, char *sender_nick, char *sender_address
"default event", SERVER_REC, char *data, char *sender_nick, char *sender_address
"whois default event", SERVER_REC, char *args, char *sender_nick, char *sender_address
"server incoming", SERVER_REC, char *data
"server outgoing modify", SERVER_REC, GString *data, int crlf
(for perl parser..)
"redir "<cmd>, SERVER_REC, char *args, char *sender_nick, char *sender_address
@ -241,12 +247,12 @@ FE common
"gui print text", WINDOW_REC, int fg, int bg, int flags, char *text, TEXT_DEST_REC
(Can be used to determine when all "gui print text"s are sent (not required))
"gui print text finished", WINDOW_REC
"gui print text finished", WINDOW_REC, TEXT_DEST_REC
* Provides signals:
completion.c:
"complete word", GList * of char*, WINDOW_REC, char *word, char *linestart, int *want_space
"complete word", GList * of char *s, WINDOW_REC, char *word, char *linestart, int *want_space
fe-common-core.c:
"irssi init read settings"
@ -261,14 +267,18 @@ fe-messages.c:
"message private", SERVER_REC, char *msg, char *nick, char *address, char *target
"message own_public", SERVER_REC, char *msg, char *target
"message own_private", SERVER_REC, char *msg, char *target, char *orig_target
"message join", SERVER_REC, char *channel, char *nick, char *address
"message join", SERVER_REC, char *channel, char *nick, char *address, char *account, char *realname
"message part", SERVER_REC, char *channel, char *nick, char *address, char *reason
"message quit", SERVER_REC, char *nick, char *address, char *reason
"message kick", SERVER_REC, char *channel, char *nick, char *kicker, char *address, char *reason
"message nick", SERVER_REC, char *newnick, char *oldnick, char *address
"message own_nick", SERVER_REC, char *newnick, char *oldnick, char *address
"message invite", SERVER_REC, char *channel, char *nick, char *address
"message invite_other", SERVER_REC, char *channel, char *invited, char *nick, char *address
"message topic", SERVER_REC, char *channel, char *topic, char *nick, char *address
"message host_changed", SERVER_REC, char *nick, char *newaddress, char *oldaddress
"message account_changed", SERVER_REC, char *nick, char *address, char *account
"message away_notify", SERVER_REC, char *nick, char *address, char *awaymsg
keyboard.c:
"keyinfo created", KEYINFO_REC
@ -276,6 +286,8 @@ keyboard.c:
printtext.c:
"print text", TEXT_DEST_REC *dest, char *text, char *stripped
"print format", THEME_REC *theme, char *module, TEXT_DEST_REC *dest, formatnum_args
"print noformat", TEXT_DEST_REC *dest, char *text
themes.c:
"theme created", THEME_REC
@ -283,6 +295,7 @@ themes.c:
window-activity.c:
"window hilight", WINDOW_REC
"window hilight check", TEXT_DEST_REC, char *msg, int *data_level, int *should_ignore
"window dehilight", WINDOW_REC
"window activity", WINDOW_REC, int old_level
"window item hilight", WI_ITEM_REC
@ -338,15 +351,25 @@ Text FE
gui-readline.c:
"gui key pressed", int key
"paste event", char *paste, char *arg
gui-printtext.c:
"beep"
"gui print text after finished", WINDOW_REC, LINE_REC *line, LINE_REC *prev_line
"gui print text after finished", WINDOW_REC, LINE_REC *line, LINE_REC *prev_line, TEXT_DEST_REC
textbuffer-view.c
"gui textbuffer line removed", TEXTBUFFER_VIEW_REC *view, LINE_REC *line, LINE_REC *prev_line
textbuffer-formats.c
"gui render line text", TEXT_DEST_REC, GString *str, LINE_INFO_META_REC
Perl
----
"script error", PERL_SCRIPT_REC, char *errormsg
OTR Core
--------
otr.c:
"otr event", SERVER_REC, char *nick, char *status

View file

@ -94,6 +94,8 @@ $A .. $Z is important.
$winname window name
$itemname like $T, but use item's visible_name which may be
different (eg. $T = !12345chan, $itemname = !chan)
$abiversion IRSSI_ABI_VERSION
https://github.com/irssi/irssi/wiki/irssi_abi_version
For example, assume you have the following alias:

View file

@ -1,16 +1,13 @@
<h1>Startup How-To</h1>
<h3 id="to-new-irssi-users-not-to-new-irc-users-">To new Irssi users (not to new IRC users ..)</h3>
<base href='https://irssi.org/documentation/startup/'>
<h1>Startup How-To</h1>
<h3 id="to-new-irssi-users-not-to-new-irc-users-">To new Irssi users (not to new IRC users ..)</h3>
<p>Copyright (c) 2000-2002 by Timo Sirainen, release under <a href="http://www.gnu.org/licenses/fdl.html">GNU FDL</a> 1.1 license.</p>
<p>Copyright (c) 2000-2002 by Timo Sirainen, release under <a href="https://www.gnu.org/licenses/fdl.html">GNU FDL</a> 1.1 license.</p>
<p>Index with some FAQ questions that are answered in the chapter:</p>
<ol>
<li><a href="#for-all-the-ircii-people">For all the ircII people</a>
<ul>
<li>This window management is just weird, I want it exactly like ircII</li>
</ul>
</li>
<li><a href="#first-steps">First steps</a></li>
<li><a href="#basic-user-interface-usage">Basic user interface usage</a>
<ul>
<li>Split windows work in weird way</li>
@ -50,7 +47,11 @@
</ul>
</li>
<li><a href="#proxies-and-irc-bouncers">Proxies and IRC bouncers</a></li>
<li><a href="#irssis-settings">Irssis settings</a></li>
<li><a href="#irssis-settings">Irssis settings</a>
<ul>
<li><a href="#for-all-the-ircii-people">For all the ircII people</a></li>
</ul>
</li>
<li><a href="#statusbar">Statusbar</a>
<ul>
<li>I loaded a statusbar script but its not visible anywhere!</li>
@ -58,169 +59,176 @@
</li>
</ol>
<h2 id="for-all-the-ircii-people">1. For all the ircII people</h2>
<h2 id="first-steps">1. First steps</h2>
<p>These settings should give you pretty good defaults (the ones I use):</p>
<p>IRC Networks are made of servers, and servers have channels. The default config has a few predefined networks, to list them:</p>
<p>If colors dont work, and you know youre not going to use some weird non-VT compatible terminal (you most probably arent), just say:</p>
<div><div><pre><code>/NETWORK LIST
</code></pre></div></div>
<pre><code> /SET term_force_colors ON
</code></pre>
<p>And to connect to one of those networks and join a channel:</p>
<p>I dont like automatic query windows, I dont like status window, I do like msgs window where all messages go:</p>
<div><div><pre><code>/CONNECT liberachat
/JOIN #irssi
</code></pre></div></div>
<pre><code> /SET autocreate_own_query OFF
/SET autocreate_query_level DCCMSGS
/SET use_status_window OFF
/SET use_msgs_window ON
</code></pre>
<p>To add more networks:</p>
<p>Disable automatic window closing when <code>/PART</code>ing channel or <code>/UNQUERY</code>ing query:</p>
<div><div><pre><code>/NETWORK ADD ExampleNet
</code></pre></div></div>
<pre><code> /SET autoclose_windows OFF
/SET reuse_unused_windows ON
</code></pre>
<p>Then add some servers (with -auto to automatically connect):</p>
<p>Heres the settings that make irssi work exactly like ircII in window management (send me a note if you can think of more):</p>
<div><div><pre><code>/SERVER ADD -auto -network ExampleNet irc.example.net
</code></pre></div></div>
<pre><code> /SET autocreate_own_query OFF
/SET autocreate_query_level NONE
/SET use_status_window OFF
/SET use_msgs_window OFF
/SET reuse_unused_windows ON
/SET windows_auto_renumber OFF
<p>Automatically join to channels after connected to server:</p>
/SET autostick_split_windows OFF
/SET autoclose_windows OFF
/SET print_active_channel ON
</code></pre>
<div><div><pre><code>/CHANNEL ADD -auto #lounge ExampleNet
</code></pre></div></div>
<p>And example how to add servers:</p>
<p>To modify existing networks (or servers, or channels) just ADD again using the same name as before. This configures a network to identify with nickserv and wait for 2 seconds before joining channels:</p>
<p>(OFTC network, identify with nickserv and wait for 2 seconds before joining channels)</p>
<div><div><pre><code>/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" ExampleNet
</code></pre></div></div>
<pre><code> /NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC
</code></pre>
<p>If you have irssi 0.8.18 or higher and the irc network supports it, you can use SASL instead of nickserv, which is more reliable:</p>
<p>(NOTE: use /IRCNET with 0.8.9 and older)</p>
<div><div><pre><code>/NETWORK ADD -sasl_username yourname -sasl_password yourpassword -sasl_mechanism PLAIN liberachat
</code></pre></div></div>
<p>Then add some servers to different networks (network is already set up for them), irc.kpnqwest.fi is used by default for IRCNet but if it fails, irc.funet.fi is tried next:</p>
<p>These commands have many more options, see their help for details:</p>
<pre><code> /SERVER ADD -auto -network IRCnet irc.kpnqwest.fi 6667
/SERVER ADD -network IRCnet irc.funet.fi 6667
/SERVER ADD -auto -network efnet efnet.cs.hut.fi 6667
</code></pre>
<p>Automatically join to channels after connected to server, send op request to bot after joined to efnet/#irssi:</p>
<pre><code> /CHANNEL ADD -auto #irssi IRCnet
/CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass" #irssi efnet
</code></pre>
<div><div><pre><code>/HELP NETWORK
/HELP SERVER
/HELP CHANNEL
/HELP
</code></pre></div></div>
<p>If you want lines containing your nick to hilight:</p>
<pre><code> /HILIGHT nick
</code></pre>
<div><div><pre><code>/HILIGHT nick
</code></pre></div></div>
<p>Or, for irssi 0.8.18 or higher:</p>
<div><div><pre><code>/SET hilight_nick_matches_everywhere ON
</code></pre></div></div>
<p>To get beeps on private messages or highlights:</p>
<div><div><pre><code>/SET beep_msg_level MSGS HILIGHT DCCMSGS
</code></pre></div></div>
<p>No other irssi settings are needed (dont enable bell_beeps), but there may be settings to change in your terminal multiplexer (screen/tmux), your terminal, or your desktop environment.</p>
<h2 id="basic-user-interface-usage">2. Basic user interface usage</h2>
<p>Windows can be scrolled up/down with PgUp and PgDown keys. If they dont work for you, use Meta-p and Meta-n keys. For jumping to beginning or end of the buffer, use <code>/SB HOME</code> and <code>/SB END</code> commands.</p>
<p>By default, irssi uses “hidden windows” for everything. Hidden window is created every time you <code>/JOIN</code> a channel or <code>/QUERY</code> someone. Theres several ways you can change between these windows:</p>
<p>By default, irssi uses “hidden windows” for everything. Hidden windows are created every time you <code>/JOIN</code> a channel or <code>/QUERY</code> someone. Theres several ways you can change between these windows:</p>
<pre><code> Meta-1, Meta-2, .. Meta-0 - Jump directly between windows 1-10
Meta-q .. Meta-o - Jump directly between windows 11-19
/WINDOW &lt;number&gt; - Jump to any window with specified number
Ctrl-P, Ctrl-N - Jump to previous / next window
</code></pre>
<div><div><pre><code>Meta-1, Meta-2, .. Meta-0 - Jump directly between windows 1-10
Meta-q .. Meta-o - Jump directly between windows 11-19
/WINDOW &lt;number&gt; - Jump to any window with specified number
Ctrl-P, Ctrl-N - Jump to previous / next window
</code></pre></div></div>
<p>Clearly the easiest way is to use Meta-number keys. And what is the Meta key? ESC key always works as Meta, but theres also easier ways. ALT could work as Meta, or if you have Windows keyboard, left Windows key might work as Meta. If they dont work directly, youll need to set a few X resources (NOTE: these work with both xterm and rxvt):</p>
<p>Clearly the easiest way is to use Meta-number keys. Meta usually means the ALT key, but if that doesnt work, you can use ESC.</p>
<pre><code> XTerm*eightBitInput: false
<p>Mac OS X users with ALT key issues might prefer using <a href="https://www.iterm2.com/">iTerm2</a> instead of the default terminal emulator.</p>
<h3 id="alt-key-as-meta-for-xtermrxvt-users">Alt key as meta, for xterm/rxvt users</h3>
<p>If you use xterm or rxvt, you may need to set a few X resources:</p>
<div><div><pre><code> XTerm*eightBitInput: false
XTerm*metaSendsEscape: true
</code></pre>
</code></pre></div></div>
<p>With rxvt, you can also specify which key acts as Meta key. So if you want to use ALT instead of Windows key for it, use:</p>
<pre><code> rxvt*modifier: alt
</code></pre>
<div><div><pre><code> rxvt*modifier: alt
</code></pre></div></div>
<p>You could do this by changing the X key mappings:</p>
<pre><code> xmodmap -e "keysym Alt_L = Meta_L Alt_L"
</code></pre>
<div><div><pre><code> xmodmap -e "keysym Alt_L = Meta_L Alt_L"
</code></pre></div></div>
<p>And how exactly do you set these X resources? For Debian, theres <code>/etc/X11/Xresources/xterm</code> file where you can put them and its read automatically when X starts. <code>~/.Xresources</code> and <code>~/.Xdefaults</code> files might also work. If you cant get anything else to work, just copy and paste those lines to <code>~/.Xresources</code> and directly call <code>xrdb -merge ~/.Xresources</code> in some xterm. The resources affect only the new xterms you start, not existing ones.</p>
<p>Many windows SSH clients also dont allow usage of ALT. One excellent client that does allow is putty, you can download it from <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/"> http://www.chiark.greenend.org.uk/~sgtatham/putty/</a>.</p>
<h3 id="split-windows-and-window-items">Split windows and window items</h3>
<p><em>Note: <a href="https://quadpoint.org/articles/irssisplit/">this guide</a> might be a better introduction to window splits</em></p>
<p>Irssi also supports split windows, theyve had some problems in past but I think they should work pretty well now :) Heres some commands related to them:</p>
<pre><code> /WINDOW NEW - Create new split window
/WINDOW NEW HIDE - Create new hidden window
/WINDOW CLOSE - Close split or hidden window
<div><div><pre><code>/WINDOW NEW - Create new split window
/WINDOW NEW HIDE - Create new hidden window
/WINDOW CLOSE - Close split or hidden window
/WINDOW HIDE [&lt;number&gt;|&lt;name&gt;] - Make the split window hidden window
/WINDOW SHOW &lt;number&gt;|&lt;name&gt; - Make the hidden window a split window
/WINDOW HIDE [&lt;number&gt;|&lt;name&gt;] - Make the split window hidden window
/WINDOW SHOW &lt;number&gt;|&lt;name&gt; - Make the hidden window a split window
/WINDOW SHRINK [&lt;lines&gt;] - Shrink the split window
/WINDOW GROW [&lt;lines&gt;] - Grow the split window
/WINDOW BALANCE - Balance the sizes of all split windows
</code></pre>
/WINDOW SHRINK [&lt;lines&gt;] - Shrink the split window
/WINDOW GROW [&lt;lines&gt;] - Grow the split window
/WINDOW BALANCE - Balance the sizes of all split windows
</code></pre></div></div>
<p>By default, irssi uses “sticky windowing” for split windows. This means that windows created inside one split window cannot be moved to another split window without some effort. For example you could have following window layout:</p>
<pre><code> Split window 1: win#1 - Status window, win#2 - Messages window
<div><div><pre><code> Split window 1: win#1 - Status window, win#2 - Messages window
Split window 2: win#3 - IRCnet/#channel1, win#4 - IRCnet/#channel2
Split window 3: win#5 - efnet/#channel1, win#6 - efnet/#channel2
</code></pre>
</code></pre></div></div>
<p>When you are in win#1 and press ALT-6, irssi jumps to split window #3 and moves the efnet/#channel2 the active window.</p>
<p>With non-sticky windowing the windows dont have any relationship with split windows, pressing ALT-6 in win#1 moves win#6 to split window 1 and sets it active, except if win#6 was already visible in some other split window irssi just changes to that split window. This it the way windows work with ircii, if you prefer it you can set it with</p>
<pre><code> /SET autostick_split_windows OFF
</code></pre>
<div><div><pre><code>/SET autostick_split_windows OFF
</code></pre></div></div>
<p>Each window can have multiple channels, queries and other “window items” inside them. If you dont like windows at all, you disable automatic creating of them with</p>
<pre><code> /SET autocreate_windows OFF
</code></pre>
<div><div><pre><code>/SET autocreate_windows OFF
</code></pre></div></div>
<p>And if you keep all channels in one window, you most probably want the channel name printed in each line:</p>
<pre><code> /SET print_active_channel ON
</code></pre>
<div><div><pre><code>/SET print_active_channel ON
</code></pre></div></div>
<p>If you want to group only some channels or queries in one window, use</p>
<pre><code> /JOIN -window #channel
/QUERY -window nick
</code></pre>
<div><div><pre><code>/JOIN -window #channel
/QUERY -window nick
</code></pre></div></div>
<h2 id="server-and-channel-automation">3. Server and channel automation</h2>
<p>Irssis multiple IRC network support is IMHO very good - at least compared to other clients :) Even if youre only in one IRC network you should group all your servers to be in the same IRC network as this helps with reconnecting if your primary server breaks and is probably useful in some other ways too :) For information how to actually use irssi correctly with multiple servers see the chapter 6.</p>
<p>First you need to have your IRC network set, use <code>/NETWORK</code> command to see if its already there. If it isnt, use <code>/NETWORK ADD yournetwork</code>. If you want to execute some commands automatically when youre connected to some network, use <code>-autosendcmd</code> option. (NOTE: use /IRCNET with 0.8.9 and older.) Heres some examples:</p>
<p>First you need to have your IRC network set, use <code>/NETWORK</code> command to see if its already there. If it isnt, use <code>/NETWORK ADD yournetwork</code>. If you want to execute some commands automatically when youre connected to some network, use <code>-autosendcmd</code> option. Heres some examples:</p>
<pre><code> /NETWORK ADD -autosendcmd '^msg bot invite' IRCnet
/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC
</code></pre>
<div><div><pre><code>/NETWORK ADD -autosendcmd '^msg bot invite' IRCnet
/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC
</code></pre></div></div>
<p>After that you need to add your servers. For example:</p>
<pre><code> /SERVER ADD -auto -network IRCnet irc.kpnqwest.fi 6667
/SERVER ADD -auto -network worknet irc.mycompany.com 6667 password
</code></pre>
<div><div><pre><code>/SERVER ADD -auto -network IRCnet irc.kpnqwest.fi 6667
/SERVER ADD -auto -network worknet irc.mycompany.com 6667 password
</code></pre></div></div>
<p>The <code>-auto</code> option specifies that this server is automatically connected at startup. You dont need to make more than one server with <code>-auto</code> option to one IRC network, other servers are automatically connected in same network if the <code>-auto</code> server fails.</p>
<p>And finally channels:</p>
<pre><code> /CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass" #irssi efnet
/CHANNEL ADD -auto #secret IRCnet password
</code></pre>
<div><div><pre><code>/CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass" #irssi efnet
/CHANNEL ADD -auto #secret IRCnet password
</code></pre></div></div>
<p><code>-bots</code> and <code>-botcmd</code> should be the only ones needing a bit of explaining. Theyre used to send commands automatically to bot when channel is joined, usually to get ops automatically. You can specify multiple bot masks with <code>-bots</code> option separated with spaces (and remember to quote the string then). The $0 in <code>-botcmd</code> specifies the first found bot in the list. If you dont need the bot masks (ie. the bot is always with the same nick, like chanserv) you can give only the <code>-botcmd</code> option and the command is always sent.</p>
@ -228,9 +236,9 @@
<p>First connect to all the servers, join the channels and create the queries you want. If you want to move the windows or channels around use commands:</p>
<pre><code> /WINDOW MOVE LEFT/RIGHT/number - move window elsewhere
/WINDOW ITEM MOVE &lt;number&gt;|&lt;name&gt; - move channel/query to another window
</code></pre>
<div><div><pre><code>/WINDOW MOVE LEFT/RIGHT/number - move window elsewhere
/WINDOW ITEM MOVE &lt;number&gt;|&lt;name&gt; - move channel/query to another window
</code></pre></div></div>
<p>When everything looks the way you like, use <code>/LAYOUT SAVE</code> command (and <code>/SAVE</code>, if you dont have autosaving enabled) and when you start irssi next time, irssi remembers the positions of the channels, queries and everything. This “remembering” doesnt mean that simply using <code>/LAYOUT SAVE</code> would automatically make irssi reconnect to all servers and join all channels, youll need the <code>/SERVER ADD -auto</code> and <code>/CHANNEL ADD -auto</code> commands to do that.</p>
@ -240,32 +248,32 @@
<p>By default, all the “extra messages” go to status window. This means pretty much all messages that dont clearly belong to some channel or query. Some people like it, some dont. If you want to remove it, use</p>
<pre><code> /SET use_status_window OFF
</code></pre>
<div><div><pre><code>/SET use_status_window OFF
</code></pre></div></div>
<p>This doesnt have any effect until you restart irssi. If you want to remove it immediately, just <code>/WINDOW CLOSE</code> it.</p>
<p>Another common window is “messages window”, where all private messages go. By default its disabled and query windows are created instead. To make all private messages go to msgs window, say:</p>
<pre><code> /SET use_msgs_window ON
/SET autocreate_query_level DCCMSGS (or if you don't want queries to
<div><div><pre><code>/SET use_msgs_window ON
/SET autocreate_query_level DCCMSGS (or if you don't want queries to
dcc chats either, say NONE)
</code></pre>
</code></pre></div></div>
<p>use_msgs_window either doesnt have any effect until restarting irssi. To create it immediately say:</p>
<pre><code> /WINDOW NEW HIDE - create the window
/WINDOW NAME (msgs) - name it to "(msgs)"
/WINDOW LEVEL MSGS - make all private messages go to this window
/WINDOW MOVE 1 - move it to first window
</code></pre>
<div><div><pre><code>/WINDOW NEW HIDE - create the window
/WINDOW NAME (msgs) - name it to "(msgs)"
/WINDOW LEVEL MSGS - make all private messages go to this window
/WINDOW MOVE 1 - move it to first window
</code></pre></div></div>
<p>Note that neither use_msgs_window nor use_status_window have any effect at all if <code>/LAYOUT SAVE</code> has been used.</p>
<p>This brings us to message levels.. What are they? All messages that irssi prints have one or more “message levels”. Most common are PUBLIC for public messages in channels, MSGS for private messages and CRAP for all sorts of messages with no real classification. You can get a whole list of levels with</p>
<pre><code> /HELP levels
</code></pre>
<div><div><pre><code>/HELP levels
</code></pre></div></div>
<p>Status window has message level <code>ALL -MSGS</code>, meaning that all messages, except private messages, without more specific place go to status window. The <code>-MSGS</code> is there so it doesnt conflict with messages window.</p>
@ -273,15 +281,15 @@
<p>ircii and several other clients support multiple servers by placing the connection into some window. IRSSI DOES NOT. There is no required relationship between window and server. You can connect to 10 servers and manage them all in just one window, or join channel in each one of them to one single window if you really want to. That being said, heres how you do connect to new server without closing the old connection:</p>
<pre><code> /CONNECT irc.server.org
</code></pre>
<div><div><pre><code>/CONNECT irc.server.org
</code></pre></div></div>
<p>Instead of the <code>/SERVER</code> which disconnects the existing connection. To see list of all active connections, use <code>/SERVER</code> without any parameters. You should see a list of something like:</p>
<pre><code> -!- IRCNet: irc.song.fi:6667 (IRCNet)
<div><div><pre><code> -!- IRCNet: irc.song.fi:6667 (IRCNet)
-!- OFTC: irc.oftc.net:6667 (OFTC)
-!- RECON-1: 192.168.0.1:6667 () (02:59 left before reconnecting)
</code></pre>
</code></pre></div></div>
<p>Here you see that were connected to IRCNet and OFTC networks. The IRCNet at the beginning is called the “server tag” while the (IRCnet) at the end shows the IRC network. Server tag specifies unique tag to refer to the server, usually its the same as the IRC network. When the IRC network isnt known its some part of the server name. When theres multiple connections to same IRC network or server, irssi adds a number after the tag so there could be network, network2, network3 etc.</p>
@ -289,63 +297,63 @@
<p>To disconnect one of the servers, or to stop irssi from reconnecting, use</p>
<pre><code> /DISCONNECT network - disconnect server with tag "network"
/DISCONNECT recon-1 - stop trying to reconnect to RECON-1 server
/RMRECONNS - stop all server reconnections
<div><div><pre><code>/DISCONNECT network - disconnect server with tag "network"
/DISCONNECT recon-1 - stop trying to reconnect to RECON-1 server
/RMRECONNS - stop all server reconnections
/RECONNECT recon-1 - immediately try reconnecting back to RECON-1
/RECONNECT ALL - immediately try reconnecting back to all
/RECONNECT recon-1 - immediately try reconnecting back to RECON-1
/RECONNECT ALL - immediately try reconnecting back to all
servers in reconnection queue
</code></pre>
</code></pre></div></div>
<p>Now that youre connected to all your servers, youll have to know how to specify which one of them you want to use. One way is to have an empty window, like status or msgs window. In it, you can specify which server to set active with</p>
<pre><code> /WINDOW SERVER tag - set server "tag" active
Ctrl-X - set the next server in list active
</code></pre>
<div><div><pre><code>/WINDOW SERVER tag - set server "tag" active
Ctrl-X - set the next server in list active
</code></pre></div></div>
<p>When the server is active, you can use it normally. When theres multiple connected servers, irssi adds [servertag] prefix to all messages in non-channel/query messages so youll know where it came from.</p>
<p>Several commands also accept <code>-servertag</code> option to specify which server it should use:</p>
<pre><code> /MSG -tag nick message
/JOIN -tag #channel
/QUERY -tag nick
</code></pre>
<div><div><pre><code>/MSG -tag nick message
/JOIN -tag #channel
/QUERY -tag nick
</code></pre></div></div>
<p><code>/MSG</code> tab completion also automatically adds the <code>-tag</code> option when nick isnt in active server.</p>
<p>Windows server can be made sticky. When sticky, it will never automatically change to anything else, and if server gets disconnected, the window wont have any active server. When the server gets connected again, it is automatically set active in the window. To set the windows server sticky use</p>
<pre><code> /WINDOW SERVER -sticky tag
</code></pre>
<div><div><pre><code>/WINDOW SERVER -sticky tag
</code></pre></div></div>
<p>This is useful if you wish to have multiple status or msgs windows, one for each server. Heres how to do them (repeat for each server)</p>
<pre><code> /WINDOW NEW HIDE
/WINDOW NAME (status)
/WINDOW LEVEL ALL -MSGS
/WINDOW SERVER -sticky network
<div><div><pre><code>/WINDOW NEW HIDE
/WINDOW NAME (status)
/WINDOW LEVEL ALL -MSGS
/WINDOW SERVER -sticky network
/WINDOW NEW HIDE
/WINDOW NAME (msgs)
/WINDOW LEVEL MSGS
/WINDOW SERVER -sticky network
</code></pre>
/WINDOW NEW HIDE
/WINDOW NAME (msgs)
/WINDOW LEVEL MSGS
/WINDOW SERVER -sticky network
</code></pre></div></div>
<h2 id="lastlog-and-jumping-around-in-scrollback">7. /LASTLOG and jumping around in scrollback</h2>
<p><code>/LASTLOG</code> command can be used for searching texts in scrollback buffer. Simplest usages are</p>
<pre><code> /LASTLOG word - print all lines with "word" in them
/LASTLOG word 10 - print last 10 occurances of "word"
/LASTLOG -topics - print all topic changes
</code></pre>
<div><div><pre><code>/LASTLOG word - print all lines with "word" in them
/LASTLOG word 10 - print last 10 occurances of "word"
/LASTLOG -topics - print all topic changes
</code></pre></div></div>
<p>If theres more than 1000 lines to be printed, irssi thinks that you probably made some mistake and wont print them without <code>-force</code> option. If you want to save the full lastlog to file, use</p>
<pre><code> /LASTLOG -file ~/irc.log
</code></pre>
<div><div><pre><code>/LASTLOG -file ~/irc.log
</code></pre></div></div>
<p>With <code>-file</code> option you dont need <code>-force</code> even if theres more than 1000 lines. <code>/LASTLOG</code> has a lot of other options too, see <code>/HELP lastlog</code> for details.</p>
@ -355,29 +363,29 @@
<p>Irssi can automatically log important messages when youre set away (<code>/AWAY reason</code>). When you set yourself unaway (<code>/AWAY</code>), the new messages in away log are printed to screen. You can configure it with:</p>
<pre><code> /SET awaylog_level MSGS HILIGHT - Specifies what messages to log
/SET awaylog_file ~/.irssi/away.log - Specifies the file to use
</code></pre>
<div><div><pre><code>/SET awaylog_level MSGS HILIGHT - Specifies what messages to log
/SET awaylog_file ~/.irssi/away.log - Specifies the file to use
</code></pre></div></div>
<p>Easiest way to start logging with Irssi is to use autologging. With it Irssi logs all channels and private messages to specified directory. You can turn it on with</p>
<pre><code> /SET autolog ON
</code></pre>
<div><div><pre><code>/SET autolog ON
</code></pre></div></div>
<p>By default it logs pretty much everything execept CTCPS or CRAP (<code>/WHOIS</code> requests, etc). You can specify the logging level yourself with</p>
<pre><code> /SET autolog_level ALL -CRAP -CLIENTCRAP -CTCPS (this is the default)
</code></pre>
<div><div><pre><code>/SET autolog_level ALL -CRAP -CLIENTCRAP -CTCPS (this is the default)
</code></pre></div></div>
<p>By default irssi logs to ~/irclogs/<servertag>/<target>.log. You can change this with</target></servertag></p>
<p>By default irssi logs to ~/irclogs/&lt;servertag&gt;/&lt;target&gt;.log. You can change this with</p>
<pre><code> /SET autolog_path ~/irclogs/$tag/$0.log (this is the default)
</code></pre>
<div><div><pre><code>/SET autolog_path ~/irclogs/$tag/$0.log (this is the default)
</code></pre></div></div>
<p>The path is automatically created if it doesnt exist. $0 specifies the target (channel/nick). You can make irssi automatically rotate the logs by adding date/time formats to the file name. The formats are in “man strftime” format. For example</p>
<pre><code> /SET autolog_path ~/irclogs/%Y/$tag/$0.%m-%d.log
</code></pre>
<div><div><pre><code>/SET autolog_path ~/irclogs/%Y/$tag/$0.%m-%d.log
</code></pre></div></div>
<p>For logging only some specific channels or nicks, see <code>/HELP log</code></p>
@ -387,37 +395,37 @@
<p><code>/HELP bind</code> tells pretty much everything there is to know about keyboard bindings. However, theres the problem of how to bind some non-standard keys. They might differ a bit with each terminal, so youll need to find out what exactly the keypress produces. Easiest way to check that would be to see what it prints in <code>cat</code>. Heres an example for pressing F1 key:</p>
<pre><code> [cras@hurina] ~% cat
<div><div><pre><code> [cras@hurina] ~% cat
^[OP
</code></pre>
</code></pre></div></div>
<p>So in irssi you would use <code>/BIND ^[OP /ECHO F1 pressed</code>. If you use multiple terminals which have different bindings for the key, it would be better to use eg.:</p>
<pre><code> /BIND ^[OP key F1
/BIND ^[11~ key F1
/BIND F1 /ECHO F1 pressed.
</code></pre>
<div><div><pre><code>/BIND ^[OP key F1
/BIND ^[11~ key F1
/BIND F1 /ECHO F1 pressed.
</code></pre></div></div>
<h2 id="proxies-and-irc-bouncers">10. Proxies and IRC bouncers</h2>
<p>Irssi supports connecting to IRC servers via a proxy. All server connections are then made through it, and if youve set up everything properly, you dont need to do any <code>/QUOTE SERVER</code> commands manually.</p>
<p>Heres an example: You have your bouncer (lets say, BNC or BNC-like) listening in irc.bouncer.org port 5000. You want to use it to connect to servers irc.dalnet and irc.efnet.org. First youd need to setup the bouncer:</p>
<p>Heres an example: You have your bouncer (lets say, BNC or BNC-like) listening in irc.bouncer.org port 5000. You want to use it to connect to servers irc.dal.net and irc.efnet.org. First youd need to setup the bouncer:</p>
<pre><code> /SET use_proxy ON
/SET proxy_address irc.bouncer.org
/SET proxy_port 5000
<div><div><pre><code>/SET use_proxy ON
/SET proxy_address irc.bouncer.org
/SET proxy_port 5000
/SET proxy_password YOUR_BNC_PASSWORD_HERE
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
</code></pre>
/SET proxy_password YOUR_BNC_PASSWORD_HERE
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
</code></pre></div></div>
<p>Then youll need to add the server connections. These are done exactly as if youd want to connect directly to them. Nothing special about them:</p>
<pre><code> /SERVER ADD -auto -network dalnet irc.dal.net
/SERVER ADD -auto -network efnet irc.efnet.org
</code></pre>
<div><div><pre><code>/SERVER ADD -auto -network dalnet irc.dal.net
/SERVER ADD -auto -network efnet irc.efnet.org
</code></pre></div></div>
<p>With the proxy <code>/SET</code>s however, irssi now connects to those servers through your BNC. All server connections are made through them so you can just forget that your bouncer even exists.</p>
@ -425,38 +433,38 @@
<p><strong>Proxy specific settings:</strong></p>
<p>All proxies have these settings in common:</p>
<p>All proxies except irssi proxy and socks proxy have these settings in common:</p>
<pre><code> /SET use_proxy ON
/SET proxy_address &lt;Proxy host address&gt;
/SET proxy_port &lt;Proxy port&gt;
</code></pre>
<div><div><pre><code>/SET use_proxy ON
/SET proxy_address &lt;Proxy host address&gt;
/SET proxy_port &lt;Proxy port&gt;
</code></pre></div></div>
<p><strong>HTTP proxy</strong></p>
<p>Use these settings with HTTP proxies:</p>
<pre><code> /SET -clear proxy_password
/EVAL SET proxy_string CONNECT %s:%d HTTP/1.0\n\n
</code></pre>
<div><div><pre><code>/SET -clear proxy_password
/EVAL SET proxy_string CONNECT %s:%d HTTP/1.0\n\n
</code></pre></div></div>
<p><strong>BNC</strong></p>
<pre><code> /SET proxy_password your_pass
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
</code></pre>
<div><div><pre><code>/SET proxy_password your_pass
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
</code></pre></div></div>
<p><strong>dircproxy</strong></p>
<p>dircproxy separates the server connections by passwords. So, if you for example have network connection with password ircpass and OFTC connection with oftcpass, you would do something like this:</p>
<pre><code> /SET -clear proxy_password
/SET -clear proxy_string
<div><div><pre><code>/SET -clear proxy_password
/SET -clear proxy_string
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
</code></pre>
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
</code></pre></div></div>
<p>The server name and port you give isnt used anywhere, so you can put anything you want in there.</p>
@ -464,88 +472,73 @@
<p>psyBNC has internal support for multiple servers. However, it could be a bit annoying to use, and some people just use different users for connecting to different servers. You can manage this in a bit same way as with dircproxy, by creating fake connections:</p>
<pre><code> /SET -clear proxy_password
/SET -clear proxy_string
<div><div><pre><code>/SET -clear proxy_password
/SET -clear proxy_string
/NETWORK ADD -user networkuser IRCnet
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
/NETWORK ADD -user oftcuser OFTC
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
</code></pre>
/NETWORK ADD -user networkuser IRCnet
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
/NETWORK ADD -user oftcuser OFTC
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
</code></pre></div></div>
<p>So, youll specify the usernames with <code>/NETWORK ADD</code> command, and the users password with <code>/SERVER ADD</code>.</p>
<p>(NOTE: use /IRCNET with 0.8.9 and older.)</p>
<p><strong>Irssi proxy</strong></p>
<p>Irssi contains its own proxy which you can build giving <code>\--with-proxy</code> option to configure. Youll still need to run irssi in a screen to use it though.</p>
<p>Irssi proxy is a bit different than most proxies, normally proxies create a new connection to IRC server when you connect to it, but <strong>irssi proxy shares your existing IRC connection(s) to multiple clients</strong>. And even more clearly: <strong>You can use only one IRC server connection to IRC with as many clients as you want</strong>. Can anyone figure out even more easier ways to say this, so I wouldnt need to try to explain this thing for minutes every time? :)</p>
<p>Irssi proxy is a bit different than most proxies, normally proxies create a new connection to IRC server when a new client connects to it, but <strong>irssi proxy shares your existing IRC connection(s) to multiple clients</strong>. And even more clearly: <strong>You can use only one IRC server connection of the irssi proxy to IRC with as many clients as you want</strong>. Can anyone figure out even more easier ways to say this, so I wouldnt need to try to explain this thing for minutes every time? :)</p>
<p>Irssi proxy supports sharing multiple server connections in different ports, like you can share network in port 2777 and efnet in port 2778.</p>
<p>Usage in proxy side:</p>
<pre><code> /LOAD proxy
/SET irssiproxy_password &lt;password&gt;
/SET irssiproxy_ports &lt;network&gt;=&lt;port&gt; ... (eg. IRCnet=2777 efnet=2778)
</code></pre>
<div><div><pre><code>/LOAD proxy
/SET irssiproxy_password &lt;password&gt;
/SET irssiproxy_ports &lt;network&gt;=&lt;port&gt; ... (eg. IRCnet=2777 efnet=2778)
</code></pre></div></div>
<p><strong>NOTE</strong>: you <strong>MUST</strong> add all the servers you are using to server and network lists with <code>/SERVER ADD</code> and <code>/NETWORK ADD</code>. ..Except if you really dont want to for some reason, and you only use one server connection, you may simply set:</p>
<pre><code> /SET irssiproxy_ports *=2777
</code></pre>
<p>The special network name <code>?</code> allows the client to select the
network dynamically on connect (see below):</p>
<pre>
/SET irssiproxy_ports ?=2777
</pre>
<div><div><pre><code>/SET irssiproxy_ports *=2777
</code></pre></div></div>
<p>Usage in client side:</p>
<p>Just connect to the irssi proxy like it is a normal server with password specified in <code>/SET irssiproxy_password</code>. For example:</p>
<pre><code> /SERVER ADD -network IRCnet my.irssi-proxy.org 2777 secret
/SERVER ADD -network efnet my.irssi-proxy.org 2778 secret
</code></pre>
<p>Or, if you used <code>?</code> in <code>irssiproxy_ports</code>:</p>
<pre>
/SERVER ADD -network IRCnet my.irssi-proxy.org 2777 IRCnet:secret
/SERVER ADD -network efnet my.irssi-proxy.org 2777 efnet:secret
</pre>
<p>I.e. the network to connect to is specified as part of the password,
separated by <code>:</code> from the actual proxy password.</p>
<div><div><pre><code>/SERVER ADD -network IRCnet my.irssi-proxy.org 2777 secret
/SERVER ADD -network efnet my.irssi-proxy.org 2778 secret
</code></pre></div></div>
<p>Irssi proxy works fine with other IRC clients as well.</p>
<p><strong>SOCKS</strong></p>
<p>Irssi can be compiled with socks support (<code>\--with-socks</code> option to configure), but I dont really know how it works, if at all. <code>/SET proxy</code> settings dont have anything to do with socks however.</p>
<p>Using <a href="https://github.com/rofl0r/proxychains-ng">proxychains-ng</a> is recommended for using irssi with a socks proxy.</p>
<p>Irssi does not support socks proxy natively.</p>
<p>Note that <code>/SET proxy</code> settings dont have anything to do with socks.</p>
<p><strong>Others</strong></p>
<p>IRC bouncers usually work like IRC servers, and want a password. You can give it with:</p>
<pre><code> /SET proxy_password &lt;password&gt;
</code></pre>
<div><div><pre><code>/SET proxy_password &lt;password&gt;
</code></pre></div></div>
<p>Irssis defaults for connect strings are</p>
<pre><code> /SET proxy_string CONNECT %s %d
/SET proxy_string_after
</code></pre>
<div><div><pre><code>/SET proxy_string CONNECT %s %d
/SET proxy_string_after
</code></pre></div></div>
<p>The proxy_string is sent before NICK/USER commands, the proxy_string_after is sent after them. %s and %d can be used with both of them.</p>
<h2 id="irssis-settings">11. Irssis settings</h2>
<p>You probably dont like Irssis default settings. I dont like them. But Im still convinced that theyre pretty good defaults. Heres some of them you might want to change (the default value is shown): Also check the <a href="/documentation/settings/">Settings Documentation</a></p>
<p>Heres some settings you might want to change (the default value is shown): Also check the <a href="/documentation/settings/">Settings Documentation</a></p>
<p><strong>Queries</strong></p>
@ -633,31 +626,61 @@ separated by <code>:</code> from the actual proxy password.</p>
<dd>Completion character to use.</dd>
</dl>
<h3 id="for-all-the-ircii-people">For all the ircII people</h3>
<p>I dont like automatic query windows, I dont like status window, I do like msgs window where all messages go:</p>
<div><div><pre><code>/SET autocreate_own_query OFF
/SET autocreate_query_level DCCMSGS
/SET use_status_window OFF
/SET use_msgs_window ON
</code></pre></div></div>
<p>Disable automatic window closing when <code>/PART</code>ing channel or <code>/UNQUERY</code>ing query:</p>
<div><div><pre><code>/SET autoclose_windows OFF
/SET reuse_unused_windows ON
</code></pre></div></div>
<p>Heres the settings that make irssi work exactly like ircII in window management (send me a note if you can think of more):</p>
<div><div><pre><code>/SET autocreate_own_query OFF
/SET autocreate_query_level NONE
/SET use_status_window OFF
/SET use_msgs_window OFF
/SET reuse_unused_windows ON
/SET windows_auto_renumber OFF
/SET autostick_split_windows OFF
/SET autoclose_windows OFF
/SET print_active_channel ON
</code></pre></div></div>
<h2 id="statusbar">12. Statusbar</h2>
<p><code>/STATUSBAR</code> displays a list of statusbars:</p>
<p><code>/STATUSBAR</code> displays a list of the current statusbars, along with their position and visibility:</p>
<pre><code> Name Type Placement Position Visible
<div><div><pre><code> Name Type Placement Position Visible
window window bottom 0 always
window_inact window bottom 1 inactive
prompt root bottom 100 always
topic root top 1 always
</code></pre>
</code></pre></div></div>
<p><code>/STATUSBAR &lt;name&gt;</code> prints the statusbar settings and its items. <code>/STATUSBAR &lt;name&gt; ENABLE|DISABLE</code> enables/disables the statusbar. <code>/STATUSBAR &lt;name&gt; RESET</code> resets the statusbar to its default settings, or if the statusbar was created by you, it will be removed.</p>
<p><code>/STATUSBAR &lt;name&gt;</code> prints the statusbar settings (type, placement, position, visibility) as well as its items. <code>/STATUSBAR &lt;name&gt; ENABLE|DISABLE</code> enables/disables the statusbar. <code>/STATUSBAR &lt;name&gt; RESET</code> resets the statusbar to its default settings, or if the statusbar was created by you, it will be removed.</p>
<p>Type can be window or root, meaning if the statusbar should be created for each split window, or just once. Placement can be top or bottom. Position is a number, the higher the value the lower in screen it is. Visible can be always, active or inactive. Active/inactive is useful only with split windows, one split window is active and the rest are inactive. These settings can be changed with:</p>
<p>The statusbar type can be either window or root. If the type is window, then a statusbar will be created for each split window, otherwise it will be created only once. Placement can be top or bottom, which refers to the top or bottom of the screen. Position is a number, the higher the value the lower it will appear in-screen. Visible can be always, active or inactive. Active/inactive is useful only with split windows; one split window is active and the rest are inactive. To adjust these settings, the following commands are available:</p>
<pre><code> /STATUSBAR &lt;name&gt; TYPE window|root
/STATUSBAR &lt;name&gt; PLACEMENT top|bottom
/STATUSBAR &lt;name&gt; POSITION &lt;num&gt;
/STATUSBAR &lt;name&gt; VISIBLE always|active|inactive
</code></pre>
<div><div><pre><code>/STATUSBAR &lt;name&gt; TYPE window|root
/STATUSBAR &lt;name&gt; PLACEMENT top|bottom
/STATUSBAR &lt;name&gt; POSITION &lt;num&gt;
/STATUSBAR &lt;name&gt; VISIBLE always|active|inactive
</code></pre></div></div>
<p>When loading a new statusbar scripts, youll need to also specify where you want to show it. Statusbar items can be modified with:</p>
<p>Statusbar items can also be added or removed via command. Note that when loading new statusbar scripts that add items, you will need to specify where you want to show the item and how it is aligned. This can be accomplished using the below commands:</p>
<pre><code> /STATUSBAR &lt;name&gt; ADD [-before | -after &lt;item&gt;] [-priority #] [-alignment left|right] &lt;item&gt;
/STATUSBAR &lt;name&gt; REMOVE &lt;item&gt;
</code></pre>
<div><div><pre><code>/STATUSBAR &lt;name&gt; ADD [-before | -after &lt;item&gt;] [-priority #] [-alignment left|right] &lt;item&gt;
/STATUSBAR &lt;name&gt; REMOVE &lt;item&gt;
</code></pre></div></div>
<p>The item name with statusbar scripts is usually same as the scripts name. Scripts documentation should tell if this isnt the case. So, to add mail.pl before the window activity item (see the list with <code>/STATUSBAR</code> window), use: <code>/STATUSBAR window ADD -before act mail</code>.</p>
<p>For statusbar scripts, the item name is usually equivalent to the script name. The documentation of the script ought to tell you if this is not the case. For example, to add mail.pl before the window activity item, use: <code>/STATUSBAR window ADD -before act mail</code>.</p>

796
docs/startup-HOWTO.txt Normal file
View file

@ -0,0 +1,796 @@
Startup How-To
To new Irssi users (not to new IRC users ..)
Copyright (c) 2000-2002 by Timo Sirainen, release under [1]GNU FDL 1.1 license.
Index with some FAQ questions that are answered in the chapter:
1. First steps
2. Basic user interface usage
□ Split windows work in weird way
□ How can I easily switch between windows?
□ But alt-1 etc. dont work!
3. Server and channel automation
□ How do I automatically connect to servers at startup?
□ How do I automatically join to channels at startup?
□ How do I automatically send commands to server at connect?
4. Setting up windows and automatically restoring them at startup
5. Status and msgs windows & message levels
□ I want /WHOIS to print reply to current window
□ I want all messages to go to one window, not create new windows
6. How support for multiple servers works in irssi
□ I connected to some server that doesnt respond and now irssi keeps
trying to reconnect to it again and again, how can I stop it??
□ I want to have own status and/or msgs window for each servers
7. /LASTLOG and jumping around in scrollback
□ How can I save all texts in a window to file?
8. Logging
9. Changing keyboard bindings
□ How do I make F1 key do something?
10. Proxies and IRC bouncers
11. Irssis settings
□ For all the ircII people
12. Statusbar
□ I loaded a statusbar script but its not visible anywhere!
1. First steps
IRC Networks are made of servers, and servers have channels. The default config
has a few predefined networks, to list them:
/NETWORK LIST
And to connect to one of those networks and join a channel:
/CONNECT liberachat
/JOIN #irssi
To add more networks:
/NETWORK ADD ExampleNet
Then add some servers (with -auto to automatically connect):
/SERVER ADD -auto -network ExampleNet irc.example.net
Automatically join to channels after connected to server:
/CHANNEL ADD -auto #lounge ExampleNet
To modify existing networks (or servers, or channels) just ADD again using the
same name as before. This configures a network to identify with nickserv and
wait for 2 seconds before joining channels:
/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" ExampleNet
If you have irssi 0.8.18 or higher and the irc network supports it, you can use
SASL instead of nickserv, which is more reliable:
/NETWORK ADD -sasl_username yourname -sasl_password yourpassword -sasl_mechanism PLAIN liberachat
These commands have many more options, see their help for details:
/HELP NETWORK
/HELP SERVER
/HELP CHANNEL
/HELP
If you want lines containing your nick to hilight:
/HILIGHT nick
Or, for irssi 0.8.18 or higher:
/SET hilight_nick_matches_everywhere ON
To get beeps on private messages or highlights:
/SET beep_msg_level MSGS HILIGHT DCCMSGS
No other irssi settings are needed (dont enable bell_beeps), but there may be
settings to change in your terminal multiplexer (screen/tmux), your terminal,
or your desktop environment.
2. Basic user interface usage
Windows can be scrolled up/down with PgUp and PgDown keys. If they dont work
for you, use Meta-p and Meta-n keys. For jumping to beginning or end of the
buffer, use /SB HOME and /SB END commands.
By default, irssi uses “hidden windows” for everything. Hidden windows are
created every time you /JOIN a channel or /QUERY someone. Theres several ways
you can change between these windows:
Meta-1, Meta-2, .. Meta-0 - Jump directly between windows 1-10
Meta-q .. Meta-o - Jump directly between windows 11-19
/WINDOW <number> - Jump to any window with specified number
Ctrl-P, Ctrl-N - Jump to previous / next window
Clearly the easiest way is to use Meta-number keys. Meta usually means the ALT
key, but if that doesnt work, you can use ESC.
Mac OS X users with ALT key issues might prefer using [2]iTerm2 instead of the
default terminal emulator.
Alt key as meta, for xterm/rxvt users
If you use xterm or rxvt, you may need to set a few X resources:
XTerm*eightBitInput: false
XTerm*metaSendsEscape: true
With rxvt, you can also specify which key acts as Meta key. So if you want to
use ALT instead of Windows key for it, use:
rxvt*modifier: alt
You could do this by changing the X key mappings:
xmodmap -e "keysym Alt_L = Meta_L Alt_L"
And how exactly do you set these X resources? For Debian, theres /etc/X11/
Xresources/xterm file where you can put them and its read automatically when X
starts. ~/.Xresources and ~/.Xdefaults files might also work. If you cant get
anything else to work, just copy and paste those lines to ~/.Xresources and
directly call xrdb -merge ~/.Xresources in some xterm. The resources affect
only the new xterms you start, not existing ones.
Split windows and window items
Note: [3]this guide might be a better introduction to window splits
Irssi also supports split windows, theyve had some problems in past but I
think they should work pretty well now :) Heres some commands related to them:
/WINDOW NEW - Create new split window
/WINDOW NEW HIDE - Create new hidden window
/WINDOW CLOSE - Close split or hidden window
/WINDOW HIDE [<number>|<name>] - Make the split window hidden window
/WINDOW SHOW <number>|<name> - Make the hidden window a split window
/WINDOW SHRINK [<lines>] - Shrink the split window
/WINDOW GROW [<lines>] - Grow the split window
/WINDOW BALANCE - Balance the sizes of all split windows
By default, irssi uses “sticky windowing” for split windows. This means that
windows created inside one split window cannot be moved to another split window
without some effort. For example you could have following window layout:
Split window 1: win#1 - Status window, win#2 - Messages window
Split window 2: win#3 - IRCnet/#channel1, win#4 - IRCnet/#channel2
Split window 3: win#5 - efnet/#channel1, win#6 - efnet/#channel2
When you are in win#1 and press ALT-6, irssi jumps to split window #3 and moves
the efnet/#channel2 the active window.
With non-sticky windowing the windows dont have any relationship with split
windows, pressing ALT-6 in win#1 moves win#6 to split window 1 and sets it
active, except if win#6 was already visible in some other split window irssi
just changes to that split window. This it the way windows work with ircii, if
you prefer it you can set it with
/SET autostick_split_windows OFF
Each window can have multiple channels, queries and other “window items” inside
them. If you dont like windows at all, you disable automatic creating of them
with
/SET autocreate_windows OFF
And if you keep all channels in one window, you most probably want the channel
name printed in each line:
/SET print_active_channel ON
If you want to group only some channels or queries in one window, use
/JOIN -window #channel
/QUERY -window nick
3. Server and channel automation
Irssis multiple IRC network support is IMHO very good - at least compared to
other clients :) Even if youre only in one IRC network you should group all
your servers to be in the same IRC network as this helps with reconnecting if
your primary server breaks and is probably useful in some other ways too :) For
information how to actually use irssi correctly with multiple servers see the
chapter 6.
First you need to have your IRC network set, use /NETWORK command to see if
its already there. If it isnt, use /NETWORK ADD yournetwork. If you want to
execute some commands automatically when youre connected to some network, use
-autosendcmd option. Heres some examples:
/NETWORK ADD -autosendcmd '^msg bot invite' IRCnet
/NETWORK ADD -autosendcmd "/^msg nickserv ident pass;wait 2000" OFTC
After that you need to add your servers. For example:
/SERVER ADD -auto -network IRCnet irc.kpnqwest.fi 6667
/SERVER ADD -auto -network worknet irc.mycompany.com 6667 password
The -auto option specifies that this server is automatically connected at
startup. You dont need to make more than one server with -auto option to one
IRC network, other servers are automatically connected in same network if the
-auto server fails.
And finally channels:
/CHANNEL ADD -auto -bots *!*bot@host.org -botcmd "/^msg $0 op pass" #irssi efnet
/CHANNEL ADD -auto #secret IRCnet password
-bots and -botcmd should be the only ones needing a bit of explaining. Theyre
used to send commands automatically to bot when channel is joined, usually to
get ops automatically. You can specify multiple bot masks with -bots option
separated with spaces (and remember to quote the string then). The $0 in
-botcmd specifies the first found bot in the list. If you dont need the bot
masks (ie. the bot is always with the same nick, like chanserv) you can give
only the -botcmd option and the command is always sent.
4. Setting up windows and automatically restoring them at startup
First connect to all the servers, join the channels and create the queries you
want. If you want to move the windows or channels around use commands:
/WINDOW MOVE LEFT/RIGHT/number - move window elsewhere
/WINDOW ITEM MOVE <number>|<name> - move channel/query to another window
When everything looks the way you like, use /LAYOUT SAVE command (and /SAVE, if
you dont have autosaving enabled) and when you start irssi next time, irssi
remembers the positions of the channels, queries and everything. This
“remembering” doesnt mean that simply using /LAYOUT SAVE would automatically
make irssi reconnect to all servers and join all channels, youll need the /
SERVER ADD -auto and /CHANNEL ADD -auto commands to do that.
If you want to change the layout, you just rearrange the layout like you want
it and use /LAYOUT SAVE again. If you want to remove the layout for some
reason, use /LAYOUT RESET.
5. Status and msgs windows & message levels
By default, all the “extra messages” go to status window. This means pretty
much all messages that dont clearly belong to some channel or query. Some
people like it, some dont. If you want to remove it, use
/SET use_status_window OFF
This doesnt have any effect until you restart irssi. If you want to remove it
immediately, just /WINDOW CLOSE it.
Another common window is “messages window”, where all private messages go. By
default its disabled and query windows are created instead. To make all
private messages go to msgs window, say:
/SET use_msgs_window ON
/SET autocreate_query_level DCCMSGS (or if you don't want queries to
dcc chats either, say NONE)
use_msgs_window either doesnt have any effect until restarting irssi. To
create it immediately say:
/WINDOW NEW HIDE - create the window
/WINDOW NAME (msgs) - name it to "(msgs)"
/WINDOW LEVEL MSGS - make all private messages go to this window
/WINDOW MOVE 1 - move it to first window
Note that neither use_msgs_window nor use_status_window have any effect at all
if /LAYOUT SAVE has been used.
This brings us to message levels.. What are they? All messages that irssi
prints have one or more “message levels”. Most common are PUBLIC for public
messages in channels, MSGS for private messages and CRAP for all sorts of
messages with no real classification. You can get a whole list of levels with
/HELP levels
Status window has message level ALL -MSGS, meaning that all messages, except
private messages, without more specific place go to status window. The -MSGS is
there so it doesnt conflict with messages window.
6. How support for multiple servers works in irssi
ircii and several other clients support multiple servers by placing the
connection into some window. IRSSI DOES NOT. There is no required relationship
between window and server. You can connect to 10 servers and manage them all in
just one window, or join channel in each one of them to one single window if
you really want to. That being said, heres how you do connect to new server
without closing the old connection:
/CONNECT irc.server.org
Instead of the /SERVER which disconnects the existing connection. To see list
of all active connections, use /SERVER without any parameters. You should see a
list of something like:
-!- IRCNet: irc.song.fi:6667 (IRCNet)
-!- OFTC: irc.oftc.net:6667 (OFTC)
-!- RECON-1: 192.168.0.1:6667 () (02:59 left before reconnecting)
Here you see that were connected to IRCNet and OFTC networks. The IRCNet at
the beginning is called the “server tag” while the (IRCnet) at the end shows
the IRC network. Server tag specifies unique tag to refer to the server,
usually its the same as the IRC network. When the IRC network isnt known its
some part of the server name. When theres multiple connections to same IRC
network or server, irssi adds a number after the tag so there could be network,
network2, network3 etc.
Server tags beginning with RECON- mean server reconnections. Above we see that
connection to server at 192.168.0.1 wasnt successful and irssi will try to
connect it again in 3 minutes.
To disconnect one of the servers, or to stop irssi from reconnecting, use
/DISCONNECT network - disconnect server with tag "network"
/DISCONNECT recon-1 - stop trying to reconnect to RECON-1 server
/RMRECONNS - stop all server reconnections
/RECONNECT recon-1 - immediately try reconnecting back to RECON-1
/RECONNECT ALL - immediately try reconnecting back to all
servers in reconnection queue
Now that youre connected to all your servers, youll have to know how to
specify which one of them you want to use. One way is to have an empty window,
like status or msgs window. In it, you can specify which server to set active
with
/WINDOW SERVER tag - set server "tag" active
Ctrl-X - set the next server in list active
When the server is active, you can use it normally. When theres multiple
connected servers, irssi adds [servertag] prefix to all messages in non-channel
/query messages so youll know where it came from.
Several commands also accept -servertag option to specify which server it
should use:
/MSG -tag nick message
/JOIN -tag #channel
/QUERY -tag nick
/MSG tab completion also automatically adds the -tag option when nick isnt in
active server.
Windows server can be made sticky. When sticky, it will never automatically
change to anything else, and if server gets disconnected, the window wont have
any active server. When the server gets connected again, it is automatically
set active in the window. To set the windows server sticky use
/WINDOW SERVER -sticky tag
This is useful if you wish to have multiple status or msgs windows, one for
each server. Heres how to do them (repeat for each server)
/WINDOW NEW HIDE
/WINDOW NAME (status)
/WINDOW LEVEL ALL -MSGS
/WINDOW SERVER -sticky network
/WINDOW NEW HIDE
/WINDOW NAME (msgs)
/WINDOW LEVEL MSGS
/WINDOW SERVER -sticky network
7. /LASTLOG and jumping around in scrollback
/LASTLOG command can be used for searching texts in scrollback buffer. Simplest
usages are
/LASTLOG word - print all lines with "word" in them
/LASTLOG word 10 - print last 10 occurances of "word"
/LASTLOG -topics - print all topic changes
If theres more than 1000 lines to be printed, irssi thinks that you probably
made some mistake and wont print them without -force option. If you want to
save the full lastlog to file, use
/LASTLOG -file ~/irc.log
With -file option you dont need -force even if theres more than 1000 lines. /
LASTLOG has a lot of other options too, see /HELP lastlog for details.
Once youve found the lines you were interested in, you might want to check the
discussion around them. Irssi has /SCROLLBACK (or alias /SB) command for
jumping around in scrollback buffer. Since /LASTLOG prints the timestamp when
the message was originally printed, you can use /SB GOTO hh:mm to jump directly
there. To get back to the bottom of scrollback, use /SB END command.
8. Logging
Irssi can automatically log important messages when youre set away (/AWAY
reason). When you set yourself unaway (/AWAY), the new messages in away log are
printed to screen. You can configure it with:
/SET awaylog_level MSGS HILIGHT - Specifies what messages to log
/SET awaylog_file ~/.irssi/away.log - Specifies the file to use
Easiest way to start logging with Irssi is to use autologging. With it Irssi
logs all channels and private messages to specified directory. You can turn it
on with
/SET autolog ON
By default it logs pretty much everything execept CTCPS or CRAP (/WHOIS
requests, etc). You can specify the logging level yourself with
/SET autolog_level ALL -CRAP -CLIENTCRAP -CTCPS (this is the default)
By default irssi logs to ~/irclogs/<servertag>/<target>.log. You can change
this with
/SET autolog_path ~/irclogs/$tag/$0.log (this is the default)
The path is automatically created if it doesnt exist. $0 specifies the target
(channel/nick). You can make irssi automatically rotate the logs by adding date
/time formats to the file name. The formats are in “man strftime” format. For
example
/SET autolog_path ~/irclogs/%Y/$tag/$0.%m-%d.log
For logging only some specific channels or nicks, see /HELP log
9. Changing keyboard bindings
You can change any keyboard binding that terminal lets irssi know about. It
doesnt let irssi know everything, so for example shift-backspace cant be
bound unless you modify xterm resources somehow.
/HELP bind tells pretty much everything there is to know about keyboard
bindings. However, theres the problem of how to bind some non-standard keys.
They might differ a bit with each terminal, so youll need to find out what
exactly the keypress produces. Easiest way to check that would be to see what
it prints in cat. Heres an example for pressing F1 key:
[cras@hurina] ~% cat
^[OP
So in irssi you would use /BIND ^[OP /ECHO F1 pressed. If you use multiple
terminals which have different bindings for the key, it would be better to use
eg.:
/BIND ^[OP key F1
/BIND ^[11~ key F1
/BIND F1 /ECHO F1 pressed.
10. Proxies and IRC bouncers
Irssi supports connecting to IRC servers via a proxy. All server connections
are then made through it, and if youve set up everything properly, you dont
need to do any /QUOTE SERVER commands manually.
Heres an example: You have your bouncer (lets say, BNC or BNC-like) listening
in irc.bouncer.org port 5000. You want to use it to connect to servers
irc.dal.net and irc.efnet.org. First youd need to setup the bouncer:
/SET use_proxy ON
/SET proxy_address irc.bouncer.org
/SET proxy_port 5000
/SET proxy_password YOUR_BNC_PASSWORD_HERE
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
Then youll need to add the server connections. These are done exactly as if
youd want to connect directly to them. Nothing special about them:
/SERVER ADD -auto -network dalnet irc.dal.net
/SERVER ADD -auto -network efnet irc.efnet.org
With the proxy /SETs however, irssi now connects to those servers through your
BNC. All server connections are made through them so you can just forget that
your bouncer even exists.
If you dont want to use the proxy for some reason, theres -noproxy option
which you can give to /SERVER and /SERVER ADD commands.
Proxy specific settings:
All proxies except irssi proxy and socks proxy have these settings in common:
/SET use_proxy ON
/SET proxy_address <Proxy host address>
/SET proxy_port <Proxy port>
HTTP proxy
Use these settings with HTTP proxies:
/SET -clear proxy_password
/EVAL SET proxy_string CONNECT %s:%d HTTP/1.0\n\n
BNC
/SET proxy_password your_pass
/SET -clear proxy_string
/SET proxy_string_after conn %s %d
dircproxy
dircproxy separates the server connections by passwords. So, if you for example
have network connection with password ircpass and OFTC connection with
oftcpass, you would do something like this:
/SET -clear proxy_password
/SET -clear proxy_string
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
The server name and port you give isnt used anywhere, so you can put anything
you want in there.
psyBNC
psyBNC has internal support for multiple servers. However, it could be a bit
annoying to use, and some people just use different users for connecting to
different servers. You can manage this in a bit same way as with dircproxy, by
creating fake connections:
/SET -clear proxy_password
/SET -clear proxy_string
/NETWORK ADD -user networkuser IRCnet
/SERVER ADD -auto -network IRCnet fake.network 6667 ircpass
/NETWORK ADD -user oftcuser OFTC
/SERVER ADD -auto -network OFTC fake.oftc 6667 oftcpass
So, youll specify the usernames with /NETWORK ADD command, and the users
password with /SERVER ADD.
Irssi proxy
Irssi contains its own proxy which you can build giving \--with-proxy option
to configure. Youll still need to run irssi in a screen to use it though.
Irssi proxy is a bit different than most proxies, normally proxies create a new
connection to IRC server when a new client connects to it, but irssi proxy
shares your existing IRC connection(s) to multiple clients. And even more
clearly: You can use only one IRC server connection of the irssi proxy to IRC
with as many clients as you want. Can anyone figure out even more easier ways
to say this, so I wouldnt need to try to explain this thing for minutes every
time? :)
Irssi proxy supports sharing multiple server connections in different ports,
like you can share network in port 2777 and efnet in port 2778.
Usage in proxy side:
/LOAD proxy
/SET irssiproxy_password <password>
/SET irssiproxy_ports <network>=<port> ... (eg. IRCnet=2777 efnet=2778)
NOTE: you MUST add all the servers you are using to server and network lists
with /SERVER ADD and /NETWORK ADD. ..Except if you really dont want to for
some reason, and you only use one server connection, you may simply set:
/SET irssiproxy_ports *=2777
Usage in client side:
Just connect to the irssi proxy like it is a normal server with password
specified in /SET irssiproxy_password. For example:
/SERVER ADD -network IRCnet my.irssi-proxy.org 2777 secret
/SERVER ADD -network efnet my.irssi-proxy.org 2778 secret
Irssi proxy works fine with other IRC clients as well.
SOCKS
Using [4]proxychains-ng is recommended for using irssi with a socks proxy.
Irssi does not support socks proxy natively.
Note that /SET proxy settings dont have anything to do with socks.
Others
IRC bouncers usually work like IRC servers, and want a password. You can give
it with:
/SET proxy_password <password>
Irssis defaults for connect strings are
/SET proxy_string CONNECT %s %d
/SET proxy_string_after
The proxy_string is sent before NICK/USER commands, the proxy_string_after is
sent after them. %s and %d can be used with both of them.
11. Irssis settings
Heres some settings you might want to change (the default value is shown):
Also check the [5]Settings Documentation
Queries
/SET autocreate_own_query ON
Should new query window be created when you send message to someone (with /
MSG).
/SET autocreate_query_level MSGS
New query window should be created when receiving messages with this level.
MSGS, DCCMSGS and NOTICES levels work currently. You can disable this with
/SET -clear autocreate_query_level.
/SET autoclose_query 0
Query windows can be automatically closed after certain time of inactivity.
Queries with unread messages arent closed and active window is neither
never closed. The value is given in seconds.
Windows
/SET use_msgs_window OFF
Create messages window at startup. All private messages go to this window.
This only makes sense if youve disabled automatic query windows. Message
window can also be created manually with /WINDOW LEVEL MSGS, /WINDOW NAME
(msgs).
/SET use_status_window ON
Create status window at startup. All messages that dont really have better
place go here, like all /WHOIS replies etc. Status window can also be
created manually with /WINDOW LEVEL ALL -MSGS, /WINDOW NAME (status).
/SET autocreate_windows ON
Should we create new windows for new window items or just place everything
in one window
/SET autoclose_windows ON
Should window be automatically closed when the last item in them is removed
(ie. /PART, /UNQUERY).
/SET reuse_unused_windows OFF
When finding where to place new window item (channel, query) Irssi first
tries to use already existing empty windows. If this is set ON, new window
will always be created for all window items. This setting is ignored if
autoclose_windows is set ON.
/SET window_auto_change OFF
Should Irssi automatically change to automatically created windows -
usually queries when someone sends you a message. To prevent accidentally
sending text meant to some other channel/nick, Irssi clears the input
buffer when changing the window. The text is still in scrollback buffer,
you can get it back with pressing arrow up key.
/SET print_active_channel OFF
When you keep more than one channel in same window, Irssi prints the
messages coming to active channel as <nick> text and other channels as
<nick:channel> text. If this setting is set ON, the messages to active
channels are also printed in the latter way.
/SET window_history OFF
Should command history be kept separate for each window.
User information
/SET nick
Your nick name
/SET alternate_nick
Your alternate nick.
/SET user_name
Your username, if you have ident enabled this doesnt affect anything
/SET real_name
Your real name.
Server information
/SET skip_motd OFF
Should we hide servers MOTD (Message Of The Day).
/SET server_reconnect_time 300
Seconds to wait before connecting to same server again. Dont set this too
low since it usually doesnt help at all - if the host is down, the few
extra minutes of waiting wont hurt much.
/SET lag_max_before_disconnect 300
Maximum server lag in seconds before disconnecting and trying to reconnect.
This happens mostly only when network breaks between you and IRC server.
Appearance
/SET timestamps ON
Show timestamps before each message.
/SET hide_text_style OFF
Hide all bolds, underlines, MIRC colors, etc.
/SET show_nickmode ON
Show the nicks mode before nick in channels, ie. ops have <@nick>, voices
<+nick> and others < nick>
/SET show_nickmode_empty ON
If the nick doesnt have a mode, use one space. ie. ON: < nick>, OFF:
<nick>
/SET show_quit_once OFF
Show quit message only once in some of the channel windows the nick was in
instead of in all windows.
/SET lag_min_show 100
Show the server lag in status bar if its bigger than this, the unit is 1/
100 of seconds (ie. the default value of 100 = 1 second).
/SET indent 10
When lines are longer than screen width they have to be split to multiple
lines. This specifies how much space to put at the beginning of the line
before the text begins. This can be overridden in text formats with %|
format.
/SET activity_hide_targets
If you dont want to see window activity in some certain channels or
queries, list them here. For example #boringchannel =bot1 =bot2. If any
highlighted text or message for you appears in that window, this setting is
ignored and the activity is shown.
Nick completion
/SET completion_auto OFF
Automatically complete the nick if line begins with start of nick and the
completion character. Learn to use the tab-completion instead, its a lot
better ;)
/SET completion_char :
Completion character to use.
For all the ircII people
I dont like automatic query windows, I dont like status window, I do like
msgs window where all messages go:
/SET autocreate_own_query OFF
/SET autocreate_query_level DCCMSGS
/SET use_status_window OFF
/SET use_msgs_window ON
Disable automatic window closing when /PARTing channel or /UNQUERYing query:
/SET autoclose_windows OFF
/SET reuse_unused_windows ON
Heres the settings that make irssi work exactly like ircII in window
management (send me a note if you can think of more):
/SET autocreate_own_query OFF
/SET autocreate_query_level NONE
/SET use_status_window OFF
/SET use_msgs_window OFF
/SET reuse_unused_windows ON
/SET windows_auto_renumber OFF
/SET autostick_split_windows OFF
/SET autoclose_windows OFF
/SET print_active_channel ON
12. Statusbar
/STATUSBAR displays a list of the current statusbars, along with their position
and visibility:
Name Type Placement Position Visible
window window bottom 0 always
window_inact window bottom 1 inactive
prompt root bottom 100 always
topic root top 1 always
/STATUSBAR <name> prints the statusbar settings (type, placement, position,
visibility) as well as its items. /STATUSBAR <name> ENABLE|DISABLE enables/
disables the statusbar. /STATUSBAR <name> RESET resets the statusbar to its
default settings, or if the statusbar was created by you, it will be removed.
The statusbar type can be either window or root. If the type is window, then a
statusbar will be created for each split window, otherwise it will be created
only once. Placement can be top or bottom, which refers to the top or bottom of
the screen. Position is a number, the higher the value the lower it will appear
in-screen. Visible can be always, active or inactive. Active/inactive is useful
only with split windows; one split window is active and the rest are inactive.
To adjust these settings, the following commands are available:
/STATUSBAR <name> TYPE window|root
/STATUSBAR <name> PLACEMENT top|bottom
/STATUSBAR <name> POSITION <num>
/STATUSBAR <name> VISIBLE always|active|inactive
Statusbar items can also be added or removed via command. Note that when
loading new statusbar scripts that add items, you will need to specify where
you want to show the item and how it is aligned. This can be accomplished using
the below commands:
/STATUSBAR <name> ADD [-before | -after <item>] [-priority #] [-alignment left|right] <item>
/STATUSBAR <name> REMOVE <item>
For statusbar scripts, the item name is usually equivalent to the script name.
The documentation of the script ought to tell you if this is not the case. For
example, to add mail.pl before the window activity item, use: /STATUSBAR window
ADD -before act mail.
References:
[1] https://www.gnu.org/licenses/fdl.html
[2] https://www.iterm2.com/
[3] https://quadpoint.org/articles/irssisplit/
[4] https://github.com/rofl0r/proxychains-ng
[5] https://irssi.org/documentation/settings/

View file

@ -1,5 +0,0 @@
#!/bin/sh
echo "const char *$2 ="
cat $1|sed 's/\\/\\\\/g'|sed 's/"/\\"/g'|sed 's/^/\"/'|sed 's/$/\\n\"/'
echo ";"

269
fuzz-support/fuzz.diff Normal file
View file

@ -0,0 +1,269 @@
diff --git a/src/core/network.c b/src/core/network.c
index 3e1b7c7..1e5324a 100644
--- a/src/core/network.c
+++ b/src/core/network.c
@@ -199,6 +199,10 @@ GIOChannel *net_connect_ip(IPADDR *ip, int port, IPADDR *my_ip)
/* Connect to named UNIX socket */
GIOChannel *net_connect_unix(const char *path)
{
+ if (strcmp(path, "/dev/stdin") == 0) {
+ return g_io_channel_new(0);
+ }
+
struct sockaddr_un sa;
int handle, ret;
@@ -336,6 +340,8 @@ int net_receive(GIOChannel *handle, char *buf, int len)
/* Transmit data, return number of bytes sent, -1 = error */
int net_transmit(GIOChannel *handle, const char *data, int len)
{
+ return write(1, data, len);
+
gsize ret;
GIOStatus status;
GError *err = NULL;
@@ -495,6 +501,7 @@ int net_host2ip(const char *host, IPADDR *ip)
/* Get socket error */
int net_geterror(GIOChannel *handle)
{
+ return 0;
int data;
socklen_t len = sizeof(data);
diff --git a/src/core/servers-reconnect.c b/src/core/servers-reconnect.c
index 58c9dd0..0c6ec1b 100644
--- a/src/core/servers-reconnect.c
+++ b/src/core/servers-reconnect.c
@@ -484,7 +484,8 @@ void servers_reconnect_init(void)
reconnects = NULL;
last_reconnect_tag = 0;
- reconnect_timeout_tag = g_timeout_add(1000, (GSourceFunc) server_reconnect_timeout, NULL);
+ (void) server_reconnect_timeout;
+
read_settings();
signal_add("server connect failed", (SIGNAL_FUNC) sig_reconnect);
diff --git a/src/core/settings.c b/src/core/settings.c
index e65ceb2..f9dc678 100644
--- a/src/core/settings.c
+++ b/src/core/settings.c
@@ -704,7 +704,10 @@ int irssi_config_is_changed(const char *fname)
static CONFIG_REC *parse_configfile(const char *fname)
{
- CONFIG_REC *config;
+ CONFIG_REC *config = config_open(NULL, -1);
+ config_parse_data(config, default_config, "internal");
+ return config;
+
struct stat statbuf;
const char *path;
char *str;
@@ -871,8 +874,6 @@ void settings_init(void)
init_configfile();
settings_add_bool("misc", "settings_autosave", TRUE);
- timeout_tag = g_timeout_add(SETTINGS_AUTOSAVE_TIMEOUT,
- (GSourceFunc) sig_autosave, NULL);
signal_add("irssi init finished", (SIGNAL_FUNC) sig_init_finished);
signal_add("gui exit", (SIGNAL_FUNC) sig_autosave);
}
diff --git a/src/fe-common/core/fe-common-core.c b/src/fe-common/core/fe-common-core.c
index 1b2ab1e..4344cd9 100644
--- a/src/fe-common/core/fe-common-core.c
+++ b/src/fe-common/core/fe-common-core.c
@@ -320,6 +320,8 @@ static void autoconnect_servers(void)
GSList *tmp, *chatnets;
char *str;
+ return;
+
if (autocon_server != NULL) {
/* connect to specified server */
if (autocon_password == NULL)
@@ -390,6 +392,7 @@ static void sig_setup_changed(void)
static void autorun_startup(void)
{
+ return;
char *path;
GIOChannel *handle;
GString *buf;
diff --git a/src/fe-common/core/themes.c b/src/fe-common/core/themes.c
index 2b1459b..2e518a1 100644
--- a/src/fe-common/core/themes.c
+++ b/src/fe-common/core/themes.c
@@ -790,9 +790,8 @@ static void theme_read_module(THEME_REC *theme, const char *module)
{
CONFIG_REC *config;
- config = config_open(theme->path, -1);
- if (config != NULL)
- config_parse(config);
+ config = config_open(NULL, -1);
+ config_parse_data(config, default_theme, "internal");
theme_init_module(theme, module, config);
@@ -987,7 +986,7 @@ static int theme_read(THEME_REC *theme, const char *path)
THEME_READ_REC rec;
char *str;
- config = config_open(path, -1) ;
+ config = config_open(NULL, -1) ;
if (config == NULL) {
/* didn't exist or no access? */
str = g_strdup_printf("Error reading theme file %s: %s",
@@ -997,7 +996,7 @@ static int theme_read(THEME_REC *theme, const char *path)
return FALSE;
}
- if (path == NULL)
+ if (1)
config_parse_data(config, default_theme, "internal");
else
config_parse(config);
@@ -1200,6 +1199,7 @@ static void module_save(const char *module, MODULE_THEME_REC *rec,
static void theme_save(THEME_REC *theme, int save_all)
{
+ return;
CONFIG_REC *config;
THEME_SAVE_REC data;
char *path;
diff --git a/src/fe-text/gui-readline.c b/src/fe-text/gui-readline.c
index 7c71edd..6bf2177 100644
--- a/src/fe-text/gui-readline.c
+++ b/src/fe-text/gui-readline.c
@@ -1126,7 +1126,6 @@ void gui_readline_init(void)
paste_timeout_id = -1;
paste_bracketed_mode = FALSE;
g_get_current_time(&last_keypress);
- input_listen_init(STDIN_FILENO);
settings_add_bool("lookandfeel", "term_appkey_mode", TRUE);
settings_add_str("history", "scroll_page_count", "/2");
diff --git a/src/fe-text/irssi.c b/src/fe-text/irssi.c
index ad79e0c..84d0c5c 100644
--- a/src/fe-text/irssi.c
+++ b/src/fe-text/irssi.c
@@ -314,20 +314,16 @@ int main(int argc, char **argv)
textui_finish_init();
main_loop = g_main_loop_new(NULL, TRUE);
+#ifdef __AFL_HAVE_MANUAL_CONTROL
+ __AFL_INIT();
+#endif
+
+ signal_emit("command connect", 1, "/dev/stdin 6667");
+
/* Does the same as g_main_run(main_loop), except we
can call our dirty-checker after each iteration */
while (!quitting) {
- term_refresh_freeze();
g_main_context_iteration(NULL, TRUE);
- term_refresh_thaw();
-
- if (reload_config) {
- /* SIGHUP received, do /RELOAD */
- reload_config = FALSE;
- signal_emit("command reload", 1, "");
- }
-
- dirty_check();
}
g_main_loop_unref(main_loop);
diff --git a/src/fe-text/term-terminfo.c b/src/fe-text/term-terminfo.c
index b2478c6..cebe260 100644
--- a/src/fe-text/term-terminfo.c
+++ b/src/fe-text/term-terminfo.c
@@ -29,6 +29,10 @@
#include <termios.h>
#include <stdio.h>
+#undef putc
+#define putc(x, y) (void) (x)
+#define fputc(x, y) (void) (x), 0
+
/* returns number of characters in the beginning of the buffer being a
a single character, or -1 if more input is needed. The character will be
saved in result */
@@ -113,7 +117,8 @@ int term_init(void)
vcmove = FALSE; cforcemove = TRUE;
curs_visible = TRUE;
- current_term = terminfo_core_init(stdin, stdout);
+ FILE *devnull = fopen("/dev/null", "r+");
+ current_term = terminfo_core_init(devnull, devnull);
if (current_term == NULL)
return FALSE;
@@ -670,6 +675,7 @@ void term_set_input_type(int type)
void term_gets(GArray *buffer, int *line_count)
{
+ return;
int ret, i, char_len;
/* fread() doesn't work */
diff --git a/src/fe-text/terminfo-core.c b/src/fe-text/terminfo-core.c
index 9c9179a..6349935 100644
--- a/src/fe-text/terminfo-core.c
+++ b/src/fe-text/terminfo-core.c
@@ -6,6 +6,10 @@
# define _POSIX_VDISABLE 0
#endif
+#undef putc
+#define putc(x, y) (void) (x)
+#define fputc(x, y) (void) (x), 0
+
#define tput(s) tputs(s, 0, term_putchar)
inline static int term_putchar(int c)
{
diff --git a/src/irc/core/irc.c b/src/irc/core/irc.c
index 4dce3fc..25fbb34 100644
--- a/src/irc/core/irc.c
+++ b/src/irc/core/irc.c
@@ -383,12 +383,13 @@ static void irc_parse_incoming(SERVER_REC *server)
signal_emit_id(signal_server_incoming, 2, server, str);
if (server->connection_lost)
- server_disconnect(server);
+ exit(0);
count++;
}
if (ret == -1) {
/* connection lost */
+ exit(0);
server->connection_lost = TRUE;
server_disconnect(server);
}
diff --git a/src/lib-config/write.c b/src/lib-config/write.c
index 37e51f0..ee82726 100644
--- a/src/lib-config/write.c
+++ b/src/lib-config/write.c
@@ -299,6 +299,8 @@ static int config_write_block(CONFIG_REC *rec, CONFIG_NODE *node, int list, int
int config_write(CONFIG_REC *rec, const char *fname, int create_mode)
{
+ return 0;
+
int ret;
int fd;
diff --git a/src/perl/perl-core.c b/src/perl/perl-core.c
index 2c61df7..485fe25 100644
--- a/src/perl/perl-core.c
+++ b/src/perl/perl-core.c
@@ -395,6 +395,7 @@ int perl_get_api_version(void)
void perl_scripts_autorun(void)
{
+ return;
DIR *dirp;
struct dirent *dp;
struct stat statbuf;

View file

@ -1,9 +0,0 @@
PROG_LIBS="@PROG_LIBS@"
COMMON_LIBS="@COMMON_LIBS@"
PERL_LINK_LIBS="@PERL_LINK_LIBS@"
PERL_FE_LINK_LIBS="@PERL_FE_LINK_LIBS@"
PERL_LINK_FLAGS="@PERL_LINK_FLAGS@"
CHAT_MODULES="@CHAT_MODULES@"
irc_MODULES="@irc_MODULES@"

View file

@ -1,28 +0,0 @@
#!/bin/sh
DATE=`GIT_DIR=$1/.git git log -1 --pretty=format:%ai HEAD`
VERSION_DATE=`echo $DATE | cut -f 1 -d ' ' | tr -d -`
VERSION_TIME=`echo $DATE | cut -f 2 -d ' ' | awk -F: '{printf "%d", $1$2}'`
if test -z "$VERSION_DATE"; then
exec>&2
echo "**Error**: `basename "$0"` must be run in a git clone, cannot proceed."
exit 1
fi
echo "#define IRSSI_VERSION_DATE $VERSION_DATE"
echo "#define IRSSI_VERSION_TIME $VERSION_TIME"
if echo "${VERSION}" | grep -q -- -head; then
# -head version, get extra details from git if we can
git_version=$(GIT_DIR=$1/.git git describe --dirty --long --always --tags)
if [ $? = 0 ]; then
new_version="$(echo "${VERSION}" | sed 's/-head//')"
# Because the git tag won't yet include the next release we modify the git
# describe output using the version defined from configure.ac.
version="${new_version}-$(echo "${git_version}" | sed 's/^.*-[0-9]\+-//')"
echo "#undef PACKAGE_VERSION"
echo "#define PACKAGE_VERSION \"${version}\""
fi
fi

View file

@ -1,10 +1,10 @@
servers = (
{ address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
{ address = "ssl.efnet.org"; chatnet = "EFNet"; port = "9999"; use_tls = "yes"; },
{ address = "ssl.efnet.org"; chatnet = "EFNet"; port = "9999"; use_tls = "yes"; tls_verify = "no"; },
{ address = "irc.esper.net"; chatnet = "EsperNet"; port = "6697"; use_tls = "yes"; tls_verify = "yes"; },
{ address = "chat.freenode.net"; chatnet = "Freenode"; port = "6697"; use_tls = "yes"; tls_verify = "yes"; },
{ address = "irc.libera.chat"; chatnet = "liberachat";port = "6697"; use_tls = "yes"; tls_verify = "yes"; },
{ address = "irc.gamesurge.net"; chatnet = "GameSurge"; port = "6667"; },
{ address = "eu.irc6.net"; chatnet = "IRCnet"; port = "6667"; use_tls = "yes"; },
{ address = "ssl.ircnet.ovh"; chatnet = "IRCnet"; port = "6697"; use_tls = "yes"; tls_verify = "yes"; },
{ address = "open.ircnet.net"; chatnet = "IRCnet"; port = "6667"; },
{ address = "irc.ircsource.net"; chatnet = "IRCSource"; port = "6667"; },
{ address = "irc.netfuze.net"; chatnet = "NetFuze"; port = "6667"; },
@ -34,7 +34,7 @@ chatnets = {
max_msgs = "4";
max_whois = "1";
};
Freenode = {
liberachat = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
@ -95,8 +95,8 @@ chatnets = {
channels = (
{ name = "#lobby"; chatnet = "EsperNet"; autojoin = "No"; },
{ name = "#freenode"; chatnet = "Freenode"; autojoin = "No"; },
{ name = "#irssi"; chatnet = "Freenode"; autojoin = "No"; },
{ name = "#libera"; chatnet = "liberachat";autojoin = "No"; },
{ name = "#irssi"; chatnet = "liberachat";autojoin = "No"; },
{ name = "#gamesurge"; chatnet = "GameSurge"; autojoin = "No"; },
{ name = "#irssi"; chatnet = "IRCNet"; autojoin = "No"; },
{ name = "#ircsource"; chatnet = "IRCSource"; autojoin = "No"; },
@ -107,7 +107,7 @@ channels = (
aliases = {
ATAG = "WINDOW SERVER";
ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{visible_name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
B = "BAN";
BACK = "AWAY";
BANS = "BAN";
@ -115,7 +115,7 @@ aliases = {
C = "CLEAR";
CALC = "EXEC - if command -v bc >/dev/null 2>&1\\; then printf '%s=' '$*'\\; echo '$*' | bc -l\\; else echo bc was not found\\; fi";
CHAT = "DCC CHAT";
CUBES = "SCRIPT EXEC Irssi::active_win->print(\"%_bases\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x0\\${_}0\\$_\" } '0'..'9','A'..'F' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_cubes\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { my \\$y = \\$_*6 \\; join '', map { my \\$x = \\$_ \\; map { \"%x\\$x\\$_\\$x\\$_\" } @{['0'..'9','A'..'Z']}[\\$y .. \\$y+5] } 1..6 }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) for 0..5 \\; Irssi::active_win->print(\"%_grays\", MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print( do { join '', map { \"%x7\\${_}7\\$_\" } 'A'..'X' }, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; Irssi::active_win->print(\"%_mIRC extended colours\", MSGLEVEL_CLIENTCRAP) \\; my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 0..15 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) \\; for my \\$z (0..6) { my \\$x \\; \\$x .= sprintf \"\00399,%02d%02d\",\\$_,\\$_ for 16+(\\$z*12)..16+(\\$z*12)+11 \\; Irssi::active_win->print(\\$x, MSGLEVEL_NEVER | MSGLEVEL_CLIENTCRAP) }";
CS = "QUOTE CS";
DATE = "TIME";
DEHIGHLIGHT = "DEHILIGHT";
DESCRIBE = "ACTION";
@ -134,9 +134,12 @@ aliases = {
LAST = "LASTLOG";
LEAVE = "PART";
M = "MSG";
MS = "QUOTE MS";
MUB = "UNBAN *";
N = "NAMES";
NMSG = "^MSG";
NS = "QUOTE NS";
OS = "QUOTE OS";
P = "PART";
Q = "QUERY";
RESET = "SET -default";
@ -144,8 +147,9 @@ aliases = {
SAY = "MSG *";
SB = "SCROLLBACK";
SBAR = "STATUSBAR";
SHELP = "QUOTE HELP";
SIGNOFF = "QUIT";
SV = "MSG * Irssi $J ($V) - http://www.irssi.org";
SV = "MSG * Irssi $J ($V) - https://irssi.org";
T = "TOPIC";
UB = "UNBAN";
UMODE = "MODE $N";
@ -160,105 +164,6 @@ aliases = {
WN = "WINDOW NEW HIDDEN";
WQUERY = "QUERY -window";
WW = "WHOWAS";
1 = "WINDOW GOTO 1";
2 = "WINDOW GOTO 2";
3 = "WINDOW GOTO 3";
4 = "WINDOW GOTO 4";
5 = "WINDOW GOTO 5";
6 = "WINDOW GOTO 6";
7 = "WINDOW GOTO 7";
8 = "WINDOW GOTO 8";
9 = "WINDOW GOTO 9";
10 = "WINDOW GOTO 10";
11 = "WINDOW GOTO 11";
12 = "WINDOW GOTO 12";
13 = "WINDOW GOTO 13";
14 = "WINDOW GOTO 14";
15 = "WINDOW GOTO 15";
16 = "WINDOW GOTO 16";
17 = "WINDOW GOTO 17";
18 = "WINDOW GOTO 18";
19 = "WINDOW GOTO 19";
20 = "WINDOW GOTO 20";
21 = "WINDOW GOTO 21";
22 = "WINDOW GOTO 22";
23 = "WINDOW GOTO 23";
24 = "WINDOW GOTO 24";
25 = "WINDOW GOTO 25";
26 = "WINDOW GOTO 26";
27 = "WINDOW GOTO 27";
28 = "WINDOW GOTO 28";
29 = "WINDOW GOTO 29";
30 = "WINDOW GOTO 30";
31 = "WINDOW GOTO 31";
32 = "WINDOW GOTO 32";
33 = "WINDOW GOTO 33";
34 = "WINDOW GOTO 34";
35 = "WINDOW GOTO 35";
36 = "WINDOW GOTO 36";
37 = "WINDOW GOTO 37";
38 = "WINDOW GOTO 38";
39 = "WINDOW GOTO 39";
40 = "WINDOW GOTO 40";
41 = "WINDOW GOTO 41";
42 = "WINDOW GOTO 42";
43 = "WINDOW GOTO 43";
44 = "WINDOW GOTO 44";
45 = "WINDOW GOTO 45";
46 = "WINDOW GOTO 46";
47 = "WINDOW GOTO 47";
48 = "WINDOW GOTO 48";
49 = "WINDOW GOTO 49";
50 = "WINDOW GOTO 50";
51 = "WINDOW GOTO 51";
52 = "WINDOW GOTO 52";
53 = "WINDOW GOTO 53";
54 = "WINDOW GOTO 54";
55 = "WINDOW GOTO 55";
56 = "WINDOW GOTO 56";
57 = "WINDOW GOTO 57";
58 = "WINDOW GOTO 58";
59 = "WINDOW GOTO 59";
60 = "WINDOW GOTO 60";
61 = "WINDOW GOTO 61";
62 = "WINDOW GOTO 62";
63 = "WINDOW GOTO 63";
64 = "WINDOW GOTO 64";
65 = "WINDOW GOTO 65";
66 = "WINDOW GOTO 66";
67 = "WINDOW GOTO 67";
68 = "WINDOW GOTO 68";
69 = "WINDOW GOTO 69";
70 = "WINDOW GOTO 70";
71 = "WINDOW GOTO 71";
72 = "WINDOW GOTO 72";
73 = "WINDOW GOTO 73";
74 = "WINDOW GOTO 74";
75 = "WINDOW GOTO 75";
76 = "WINDOW GOTO 76";
77 = "WINDOW GOTO 77";
78 = "WINDOW GOTO 78";
79 = "WINDOW GOTO 79";
80 = "WINDOW GOTO 80";
81 = "WINDOW GOTO 81";
82 = "WINDOW GOTO 82";
83 = "WINDOW GOTO 83";
84 = "WINDOW GOTO 84";
85 = "WINDOW GOTO 85";
86 = "WINDOW GOTO 86";
87 = "WINDOW GOTO 87";
88 = "WINDOW GOTO 88";
89 = "WINDOW GOTO 89";
90 = "WINDOW GOTO 90";
91 = "WINDOW GOTO 91";
92 = "WINDOW GOTO 92";
93 = "WINDOW GOTO 93";
94 = "WINDOW GOTO 94";
95 = "WINDOW GOTO 95";
96 = "WINDOW GOTO 96";
97 = "WINDOW GOTO 97";
98 = "WINDOW GOTO 98";
99 = "WINDOW GOTO 99";
};
statusbar = {
@ -281,7 +186,7 @@ statusbar = {
prompt_empty = "{prompt $winname}";
topic = " $topic";
topic_empty = " Irssi v$J - http://www.irssi.org";
topic_empty = " Irssi v$J - https://irssi.org";
lag = "{sb Lag: $0-}";
act = "{sb Act: $0-}";

View file

@ -1,208 +0,0 @@
# Configure paths for GLIB
# Owen Taylor 1997-2001
dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or
dnl gthread is specified in MODULES, pass to pkg-config
dnl
AC_DEFUN([AM_PATH_GLIB_2_0],
[dnl
dnl Get the cflags and libraries from pkg-config
dnl
AC_ARG_ENABLE(glibtest, [ --disable-glibtest do not try to compile and run a test GLIB program],
, enable_glibtest=yes)
pkg_config_args=glib-2.0
for module in . $4
do
case "$module" in
gmodule)
pkg_config_args="$pkg_config_args gmodule-2.0"
;;
gmodule-no-export)
pkg_config_args="$pkg_config_args gmodule-no-export-2.0"
;;
gobject)
pkg_config_args="$pkg_config_args gobject-2.0"
;;
gthread)
pkg_config_args="$pkg_config_args gthread-2.0"
;;
esac
done
PKG_PROG_PKG_CONFIG([0.7])
no_glib=""
if test "x$PKG_CONFIG" = x ; then
no_glib=yes
PKG_CONFIG=no
fi
min_glib_version=ifelse([$1], ,2.0.0,$1)
AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
if test x$PKG_CONFIG != xno ; then
## don't try to run the test against uninstalled libtool libs
if $PKG_CONFIG --uninstalled $pkg_config_args; then
echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
enable_glibtest=no
fi
if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then
:
else
no_glib=yes
fi
fi
if test x"$no_glib" = x ; then
GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0`
GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args`
GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args`
glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_glibtest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GLIB_CFLAGS"
LIBS="$GLIB_LIBS $LIBS"
dnl
dnl Now check if the installed GLIB is sufficiently new. (Also sanity
dnl checks the results of pkg-config to some extent)
dnl
rm -f conf.glibtest
AC_TRY_RUN([
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
int major, minor, micro;
char *tmp_version;
system ("touch conf.glibtest");
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = g_strdup("$min_glib_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_glib_version");
exit(1);
}
if ((glib_major_version != $glib_config_major_version) ||
(glib_minor_version != $glib_config_minor_version) ||
(glib_micro_version != $glib_config_micro_version))
{
printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n",
$glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
glib_major_version, glib_minor_version, glib_micro_version);
printf ("*** was found! If pkg-config was correct, then it is best\n");
printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
printf("*** to point to the correct configuration files\n");
}
else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
(glib_minor_version != GLIB_MINOR_VERSION) ||
(glib_micro_version != GLIB_MICRO_VERSION))
{
printf("*** GLIB header files (version %d.%d.%d) do not match\n",
GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
printf("*** library (version %d.%d.%d)\n",
glib_major_version, glib_minor_version, glib_micro_version);
}
else
{
if ((glib_major_version > major) ||
((glib_major_version == major) && (glib_minor_version > minor)) ||
((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
glib_major_version, glib_minor_version, glib_micro_version);
printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
major, minor, micro);
printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
printf("*** correct copy of pkg-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_glib" = x ; then
AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version))
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$PKG_CONFIG" = "no" ; then
echo "*** A new enough version of pkg-config was not found."
echo "*** See http://www.freedesktop.org/software/pkgconfig/"
else
if test -f conf.glibtest ; then
:
else
echo "*** Could not run GLIB test program, checking why..."
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GLIB_CFLAGS"
LIBS="$LIBS $GLIB_LIBS"
AC_TRY_LINK([
#include <glib.h>
#include <stdio.h>
], [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GLIB or finding the wrong"
echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
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 occurred. This usually means GLIB is incorrectly installed."])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GLIB_CFLAGS=""
GLIB_LIBS=""
GLIB_GENMARSHAL=""
GOBJECT_QUERY=""
GLIB_MKENUMS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GLIB_CFLAGS)
AC_SUBST(GLIB_LIBS)
AC_SUBST(GLIB_GENMARSHAL)
AC_SUBST(GOBJECT_QUERY)
AC_SUBST(GLIB_MKENUMS)
rm -f conf.glibtest
])

991
meson.build Normal file
View file

@ -0,0 +1,991 @@
project(
'irssi',
'c',
version : '1.5-head',
meson_version : '>=0.53',
default_options : [ 'warning_level=1' ],
)
############################
############################
glib_internal_version = 'glib-2.74.7' # keep this in sync with subprojects/glib.wrap
glib_pcre2_internal_version = 'pcre2-10.40'
glib_libffi_internal_version = 'libffi'
cc = meson.get_compiler('c')
rootinc = include_directories('.')
dep = [ ]
textui_dep = [ ]
need_dl_cross_link = false
need_dl_cross_link_main = false
dl_cross_irssi_main = [ ]
# The Android environment requires that all modules are linked to each other.
# See https://github.com/android/ndk/issues/201
if host_machine.system() == 'android'
need_dl_cross_link = true
elif host_machine.system() == 'cygwin'
need_dl_cross_link = true
need_dl_cross_link_main = true
endif
includedir = get_option('includedir')
incdir = 'irssi'
moduledir = get_option('libdir') / incdir / 'modules'
helpdir = get_option('datadir') / incdir / 'help'
themedir = get_option('datadir') / incdir / 'themes'
scriptdir = get_option('datadir') / incdir / 'scripts'
docdir = get_option('docdir') != '' ? get_option('docdir') : (get_option('datadir') / 'doc' / incdir)
want_textui = get_option('without-textui') != 'yes'
want_bot = get_option('with-bot') == 'yes'
want_fuzzer = get_option('with-fuzzer') == 'yes'
fuzzer_lib = get_option('with-fuzzer-lib')
fuzzer_link_language = get_option('fuzzer-link-language')
want_proxy = get_option('with-proxy') == 'yes'
require_capsicum = get_option('with-capsicum') == 'yes'
want_capsicum = get_option('with-capsicum') != 'no'
require_libutf8proc = get_option('disable-utf8proc') == 'no'
want_libutf8proc = get_option('disable-utf8proc') != 'yes'
require_perl = get_option('with-perl') == 'yes'
want_perl = get_option('with-perl') != 'no'
with_perl_lib = get_option('with-perl-lib')
require_otr = get_option('with-otr') == 'yes'
want_otr = get_option('with-otr') != 'no'
want_glib_internal = get_option('install-glib') != 'no'
require_glib_internal = get_option('install-glib') == 'force'
want_static_dependency = get_option('static-dependency') == 'yes'
package_version = get_option('PACKAGE_VERSION') != '' ? get_option('PACKAGE_VERSION') : meson.project_version()
fs = import('fs')
if fs.exists('config.status') or fs.exists('irssi-version.h') or fs.exists('default-config.h') or fs.exists('default-theme.h') or fs.exists('src/perl/irssi-core.pl.h') or fs.exists('src/perl/perl-signals-list.h') or fs.exists('irssi-config.h')
error('this tree has been configured with autotools, cannot proceed')
endif
UNSET = '=INVALID='
UNSET_ARR = [ UNSET ]
chat_modules = [ 'irc' ]
run_command(
'mkdir',
meson.current_build_dir() / incdir,
check : false,
)
run_command(
'ln',
'-s', meson.current_source_dir() / 'src',
meson.current_build_dir() / incdir,
check : false,
)
run_command(
'ln',
'-s', meson.current_build_dir() / 'irssi-config.h',
meson.current_build_dir() / incdir,
check : false,
)
run_command(
'ln',
'-s', meson.current_build_dir() / 'irssi-version.h',
meson.current_build_dir() / incdir,
check : false,
)
def_moduledir = '-D' + 'MODULEDIR' + '="' + (get_option('prefix') / moduledir) + '"'
def_sysconfdir = '-D' + 'SYSCONFDIR' + '="' + (get_option('prefix') / get_option('sysconfdir')) + '"'
def_helpdir = '-D' + 'HELPDIR' + '="' + (get_option('prefix') / helpdir) + '"'
def_themesdir = '-D' + 'THEMESDIR' + '="' + (get_option('prefix') / themedir) + '"'
def_scriptdir = '-D' + 'SCRIPTDIR' + '="' + (get_option('prefix') / scriptdir) + '"'
def_suppress_printf_fallback = '-D' + 'SUPPRESS_PRINTF_FALLBACK'
module_suffix = [ ]
perl_module_suffix = [ ]
# Meson uses the wrong module extensions on Mac.
# https://gitlab.gnome.org/GNOME/glib/issues/520
if [ 'darwin', 'ios' ].contains(host_machine.system())
module_suffix = 'so'
perl_module_suffix = 'bundle'
endif
##############
# Help files #
##############
build_perl = find_program(
'perl',
native : true,
)
if meson.is_cross_build()
cross_perl = find_program('perl')
else
cross_perl = build_perl
endif
run_command(
build_perl,
files('utils/syntax.pl'),
check : true,
)
###################
# irssi-version.h #
###################
env = find_program('env')
irssi_version_sh = find_program('utils/irssi-version.sh')
irssi_version_h = custom_target(
'irssi-version.h',
build_by_default : true,
build_always_stale : true,
capture : true,
command : [ env, 'VERSION=' + meson.project_version(), irssi_version_sh, meson.current_source_dir() ],
output : 'irssi-version.h',
install : true,
install_dir : includedir / incdir,
)
####################
# default-config.h #
####################
file2header = find_program('utils/file2header.sh')
default_config_h = custom_target(
'default-config.h',
input : files('irssi.conf'),
output : 'default-config.h',
capture : true,
command : [ file2header, '@INPUT@', 'default_config' ],
)
###################
# default-theme.h #
###################
default_theme_h = custom_target(
'default-theme.h',
input : files('themes/default.theme'),
output : 'default-theme.h',
capture : true,
command : [ file2header, '@INPUT@', 'default_theme' ],
)
################
# Dependencies #
################
#### inet_addr ####
inet_addr_found = false
foreach inet_addr_provider : [ '', 'nsl' ]
prov_lib = [ ]
if inet_addr_provider != ''
prov_lib += cc.find_library(
inet_addr_provider,
required : false,
)
endif
if (prov_lib.length() == 0 or prov_lib[0].found()) and cc.has_function(
'inet_addr',
dependencies : prov_lib,
)
dep += prov_lib
inet_addr_found = true
break
endif
endforeach
if not inet_addr_found
error('inet_addr not found')
endif
#### socket ####
socket_found = false
foreach socket_provider : [ '', 'socket', 'network' ]
prov_lib = [ ]
if socket_provider != ''
prov_lib += cc.find_library(
socket_provider,
required : false,
)
endif
if (prov_lib.length() == 0 or prov_lib[0].found()) and cc.has_function(
'socket',
dependencies : prov_lib,
)
dep += prov_lib
socket_found = true
break
endif
endforeach
if not socket_found
error('socket not found')
endif
built_src = [ ]
glib_internal = false
message('*** If you don\'t have GLib, you can run meson ... -Dinstall-glib=yes')
message('*** to download and build it automatically')
message('*** Or alternatively install your distribution\'s package')
message('*** On Debian: sudo apt-get install libglib2.0-dev')
message('*** On Redhat: dnf install glib2-devel')
if not require_glib_internal
glib_dep = dependency(
'glib-2.0',
version : '>=2.32',
required : not want_glib_internal,
static : want_static_dependency,
include_type : 'system',
)
else
glib_dep = dependency(
'',
required : false,
)
endif
if not glib_dep.found()
glib_internal = true
meson_cmd = find_program('meson')
ninja = find_program('ninja')
glib_internal_download_t = custom_target(
'glib-internal-download',
command : [ meson_cmd, 'subprojects', 'download', 'glib', '--sourcedir', meson.current_source_dir() ],
console : true,
output : [ 'glib-internal-download' ],
)
glib_internal_dependencies = [
dependency('threads'),
]
glib_internal_configure_args = [ ]
glib_internal_usr_local = false
if not cc.has_function('iconv_open')
prov_lib = cc.find_library(
'iconv',
required : false,
)
if not prov_lib.found()
prov_lib = cc.find_library(
'iconv',
dirs : '/usr/local/lib',
)
glib_internal_usr_local = true
endif
glib_internal_dependencies += prov_lib
endif
if not cc.has_function('ngettext')
prov_lib = cc.find_library(
'intl',
required : false,
)
if not prov_lib.found()
prov_lib = cc.find_library(
'intl',
dirs : '/usr/local/lib',
)
glib_internal_usr_local = true
endif
glib_internal_dependencies += prov_lib
endif
if glib_internal_usr_local
glib_internal_configure_args += [ '-Dc_args=-I/usr/local/include', '-Dc_link_args=-L/usr/local/lib' ]
endif
if not cc.has_function('getxattr') or not cc.has_header('sys/xattr.h')
if cc.has_header_symbol('attr/xattr.h', 'getxattr')
prov_lib = cc.find_library(
'xattr',
required : false,
)
else
prov_lib = dependency(
'',
required : false,
)
endif
if prov_lib.found()
glib_internal_dependencies += prov_lib
else
glib_internal_configure_args += '-Dxattr=false'
endif
endif
glib_internal_configure_t = custom_target(
'glib-internal-configure',
command : [
meson_cmd,
'setup',
'--prefix=/irssi-glib-internal',
'--buildtype=' + get_option('buildtype'),
'-Dlibmount=disabled',
'-Dselinux=disabled',
'-Ddefault_library=static',
'-Dforce_fallback_for=pcre2,libffi',
glib_internal_configure_args,
(meson.current_build_dir() / 'build-subprojects' / 'glib'),
(meson.current_source_dir() / 'subprojects' / glib_internal_version),
],
console : true,
output : [ 'glib-internal-configure' ],
depends : glib_internal_download_t,
)
glib_internal_build_t = custom_target(
'glib-internal-build',
command : [
ninja,
'-C', meson.current_build_dir() / 'build-subprojects' / 'glib',
'subprojects' / glib_libffi_internal_version / 'src' / 'libffi.a',
'subprojects' / glib_pcre2_internal_version / 'libpcre2-8.a',
'glib' / 'libglib-2.0.a',
'gmodule' / 'libgmodule-2.0.a',
'gobject' / 'libgobject-2.0.a',
'gio' / 'libgio-2.0.a',
],
console : true,
output : [ 'glib-internal-build' ],
depends : glib_internal_configure_t,
)
glib_dep = declare_dependency(
dependencies : glib_internal_dependencies,
sources : glib_internal_build_t,
compile_args : [
'-isystem' + (meson.current_source_dir() / 'subprojects' / glib_internal_version / 'glib'),
'-isystem' + (meson.current_source_dir() / 'subprojects' / glib_internal_version),
'-isystem' + (meson.current_build_dir() / 'build-subprojects' / 'glib' / 'glib'),
],
link_args : [
meson.current_build_dir() / 'build-subprojects' / 'glib' / 'subprojects' / glib_pcre2_internal_version / 'libpcre2-8.a',
meson.current_build_dir() / 'build-subprojects' / 'glib' / 'glib' / 'libglib-2.0.a',
],
)
built_src += glib_internal_build_t
libdl_dep = [ ]
prov_lib = cc.find_library(
'dl',
required : false,
)
if prov_lib.found() and cc.has_function(
'dlopen',
dependencies : prov_lib,
)
libdl_dep += prov_lib
endif
gmodule_dep = declare_dependency(
sources : glib_internal_build_t,
dependencies : libdl_dep,
compile_args : [
'-isystem' + (meson.current_source_dir() / 'subprojects' / glib_internal_version / 'gmodule'),
],
link_args : [ meson.current_build_dir() / 'build-subprojects' / 'glib' / 'gmodule' / 'libgmodule-2.0.a' ],
)
gobject_dep = declare_dependency(
sources : glib_internal_build_t,
compile_args : [
'-isystem' + (meson.current_build_dir() / 'build-subprojects' / 'glib'),
],
link_args : [
meson.current_build_dir() / 'build-subprojects' / 'glib' / 'subprojects' / glib_libffi_internal_version / 'src' / 'libffi.a',
meson.current_build_dir() / 'build-subprojects' / 'glib' / 'gobject' / 'libgobject-2.0.a',
],
)
gio_dep = declare_dependency(
sources : glib_internal_build_t,
dependencies : cc.find_library('z'),
compile_args : [
'-isystem' + (meson.current_source_dir() / 'subprojects' / glib_internal_version / 'gio'),
'-isystem' + (meson.current_build_dir() / 'build-subprojects' / 'glib'),
],
link_args : [ meson.current_build_dir() / 'build-subprojects' / 'glib' / 'gio' / 'libgio-2.0.a' ],
)
else
gmodule_dep = dependency(
'gmodule-2.0',
static : want_static_dependency,
include_type : 'system',
)
gobject_dep = dependency(
'gobject-2.0',
static : want_static_dependency,
include_type : 'system',
)
gio_dep = dependency(
'gio-2.0',
static : want_static_dependency,
include_type : 'system',
)
endif
dep += glib_dep
dep += gmodule_dep
dep += gobject_dep
dep += gio_dep
if glib_internal and want_static_dependency and want_fuzzer
openssl_proj = subproject(
'openssl',
default_options : [ 'default_library=static', 'asm=disabled' ],
)
openssl_dep = openssl_proj.get_variable('openssl_dep')
else
openssl_dep = dependency(
'openssl',
static : want_static_dependency,
include_type : 'system',
)
endif
dep += openssl_dep
############
# utf8proc #
############
have_libutf8proc = false
libutf8proc = [ ]
if want_libutf8proc
libutf8proc = cc.find_library(
'utf8proc',
required : require_libutf8proc,
)
have_libutf8proc = cc.has_function(
'utf8proc_version',
dependencies : libutf8proc,
)
if have_libutf8proc
dep += libutf8proc
endif
endif
############################
############################
############
# terminfo #
############
if want_textui
setupterm_found = false
foreach setupterm_provider : [ 'tinfo', 'ncursesw', 'ncurses', 'terminfo' ]
prov_lib = cc.find_library(
setupterm_provider,
required : false,
)
if prov_lib.found() and cc.has_function(
'setupterm',
dependencies : prov_lib,
)
textui_dep += prov_lib
setupterm_found = true
break
endif
endforeach
if not setupterm_found
error('Terminfo not found')
endif
endif
########
# perl #
########
have_perl = false
if want_perl
perl_cflags = [ ]
perl_ldflags = [ ]
perl_rpath_flags = [ ]
perl_rpath = ''
#### ccopts ####
perl_ccopts = meson.get_cross_property('perl_ccopts', UNSET_ARR)
if perl_ccopts == UNSET_ARR
res = run_command(
cross_perl,
'-MExtUtils::Embed',
'-e', 'ccopts',
check : true,
)
perl_ccopts = res.stdout().strip().split()
endif
foreach fl : perl_ccopts
if fl.startswith('-D') or fl.startswith('-U') or fl.startswith('-I') or fl.startswith('-i') or fl.startswith('-f') or fl.startswith('-m')
if fl.startswith('-I')
fl = '-isystem' + fl.split('-I')[1]
endif
perl_cflags += fl
endif
endforeach
perl_cflags += cc.get_supported_arguments('-fPIC')
#### ldopts ####
perl_ldopts = meson.get_cross_property('perl_ldopts', UNSET_ARR)
if perl_ldopts == UNSET_ARR
res = run_command(
cross_perl,
'-MExtUtils::Embed',
'-e', 'ldopts',
check : true,
)
perl_ldopts = res.stdout().strip().split()
endif
skip_libs = [ '-ldb', '-ldbm', '-lndbm', '-lgdbm', '-lc', '-lposix', '-rdynamic' ]
foreach fl : perl_ldopts
if not fl.startswith('-A') and not skip_libs.contains(fl)
if fl.startswith('-Wl,-rpath,')
perl_rpath = fl.split(',')[2]
perl_rpath_flags += fl
else
perl_ldflags += fl
endif
endif
endforeach
perl_version = meson.get_cross_property('perl_version', UNSET)
if perl_version == UNSET
perl_version = run_command(
cross_perl,
'-V::version:',
check : true,
).stdout().split('\'')[1]
endif
# disable clang warning
if perl_version.version_compare('<5.35.2')
perl_cflags += cc.get_supported_arguments('-Wno-compound-token-split-by-macro')
endif
perl_dep = declare_dependency(
compile_args : perl_cflags,
link_args : perl_ldflags,
version : perl_version,
)
####
if not cc.links(
'''
#include <EXTERN.h>
#include <perl.h>
int main()
{
perl_alloc();
return 0;
}
''',
args : perl_cflags + perl_ldflags + perl_rpath_flags,
name : 'working Perl support',
)
if require_perl
error('error linking with perl libraries')
else
warning('error linking with perl libraries')
endif
else
xsubpp_file_c = meson.get_cross_property('perl_xsubpp', UNSET)
if xsubpp_file_c == UNSET
xsubpp_file_c = run_command(
build_perl,
'-MExtUtils::ParseXS',
'-e($r = $INC{"ExtUtils/ParseXS.pm"}) =~ s{ParseXS\\.pm$}{xsubpp}; print $r',
check : true,
).stdout()
endif
xsubpp = generator(
build_perl,
output : '@BASENAME@.c',
capture : true,
arguments : [ xsubpp_file_c, '@EXTRA_ARGS@', '@INPUT@' ],
)
xsubpp_file = files(xsubpp_file_c)
if with_perl_lib == 'module'
perl_install_base = run_command(
build_perl,
'-MText::ParseWords=shellwords',
'-e', 'grep { s/^INSTALL_BASE=// && print && exit } shellwords $ENV{PERL_MM_OPT}',
check : true,
).stdout()
if perl_install_base == ''
with_perl_lib = ''
endif
endif
if with_perl_lib == ''
if get_option('prefix') in [ '/usr/local', 'C:/' ]
with_perl_lib = 'site'
elif get_option('prefix') in [ '/usr' ]
with_perl_lib = 'vendor'
endif
endif
perlmoddir = ''
if with_perl_lib in [ 'site', 'vendor', 'module' ]
set_perl_use_lib = false
perl_library_dir = with_perl_lib + ' default'
if with_perl_lib in [ 'site', 'vendor' ]
perlmoddir = meson.get_cross_property('perl_install' + with_perl_lib + 'arch', UNSET)
if perlmoddir == UNSET
perlmoddir = run_command(
cross_perl,
'-V::install' + with_perl_lib + 'arch:',
check : true,
).stdout().split('\'')[1]
endif
elif with_perl_lib == 'module'
perl_archname = meson.get_cross_property('perl_archname', UNSET)
if perl_archname == UNSET
perl_archname = run_command(
cross_perl,
'-V::archname:',
check : true,
).stdout().split('\'')[1]
endif
perlmoddir = perl_install_base / 'lib' / 'perl5' / perl_archname
endif
elif with_perl_lib == ''
set_perl_use_lib = true
perl_library_dir = 'in prefix'
perlmoddir = get_option('libdir') / incdir / 'perl'
elif with_perl_lib.startswith('/')
set_perl_use_lib = true
perl_library_dir = 'custom'
perlmoddir = with_perl_lib
endif
if perlmoddir == ''
error('Unrecognised with-perl-lib value: ' + with_perl_lib)
endif
perl_use_lib = get_option('prefix') / perlmoddir
if set_perl_use_lib
perl_inc = meson.get_cross_property('perl_inc', UNSET_ARR)
if perl_inc == UNSET_ARR
set_perl_use_lib = run_command(
cross_perl,
'-e', 'exit ! grep $_ eq $ARGV[0], grep /^\\//, @INC',
perl_use_lib,
check : false,
).returncode() != 0
else
set_perl_use_lib = not perl_inc.contains(perl_use_lib)
endif
if not set_perl_use_lib
perl_library_dir += ' - other path in @INC'
else
perl_library_dir += ' - prepends to @INC with /set perl_use_lib'
endif
endif
def_perl_use_lib = '-D' + 'PERL_USE_LIB' + '="'
if set_perl_use_lib
def_perl_use_lib += perl_use_lib
endif
def_perl_use_lib += '"'
have_perl = true
endif
endif
#######
# OTR #
#######
have_otr = false
if want_otr
libgcrypt = dependency(
'libgcrypt',
version : '>=1.2.0',
required : require_otr,
static : want_static_dependency,
include_type : 'system',
)
libotr = dependency(
'libotr',
version : '>=4.1.0',
required : require_otr,
static : want_static_dependency,
include_type : 'system',
)
if libgcrypt.found() and libotr.found()
dep += libgcrypt
dep += libotr
have_otr = true
endif
endif
############
# capsicum #
############
have_capsicum = false
if want_capsicum
if cc.has_function(
'cap_enter',
dependencies : cc.find_library('c'),
)
libnv = cc.find_library(
'nv',
required : require_capsicum,
)
nvlist_create_found = libnv.found() and cc.has_function(
'nvlist_create',
dependencies : libnv,
prefix : '#include <sys/nv.h>',
)
if nvlist_create_found
dep += libnv
have_capsicum = true
else
if require_capsicum
error('nvlist_create not found')
endif
endif
else
if require_capsicum
error('cap_enter not found')
endif
endif
endif
# dependency helper sets
dep_cflagsonly = [ ]
foreach d : dep
dep_cflagsonly += d.partial_dependency(
includes : true,
compile_args : true,
)
endforeach
dl_cross_dep = [ ]
if need_dl_cross_link
dl_cross_dep = dep
endif
##################
# irssi-config.h #
##################
conf = configuration_data()
conf.set(
'HAVE_CAPSICUM',
have_capsicum,
description : 'Build with Capsicum support',
)
conf.set('HAVE_GMODULE', true)
conf.set('TERM_TRUECOLOR', true)
conf.set('USE_GREGEX', true)
conf.set10(
'_DARWIN_USE_64_BIT_INODE',
true,
description : 'Enable large inode numbers on Mac OS X 10.5.',
)
conf.set_quoted('FHS_PREFIX', get_option('fhs-prefix'))
headers = [
'sys/ioctl.h',
'sys/resource.h',
'sys/time.h',
'sys/utsname.h',
'dirent.h',
'term.h',
'unistd.h',
]
foreach h : headers
if cc.has_header(h)
conf.set(
'HAVE_' + h.underscorify().to_upper(),
1,
description : 'Define to 1 if you have the <' + h + '> header file.',
)
endif
endforeach
if want_textui and conf.get('HAVE_TERM_H', 0) == 1
if cc.links(
'''
#include <stdio.h>
#include <term.h>
int main (void) {
return tputs("x", 1, putchar);
}
''',
args : '-pedantic-errors',
dependencies : textui_dep,
name : 'Curses working',
)
# ok
else
has_curses_h = cc.has_header('curses.h')
if has_curses_h and cc.links(
'''
#include <curses.h>
#include <term.h>
int main (void) {
return tputs("x", 1, putchar);
}
''',
args : '-pedantic-errors',
dependencies : textui_dep,
name : 'Curses working with curses.h',
)
conf.set(
'NEED_CURSES_H',
1,
description : 'tputs needs curses.h',
)
else
if has_curses_h and cc.links(
'''
#include <curses.h>
#include <term.h>
int char_putchar (char c) {
return putchar(c);
}
int main (void) {
return tputs("x", 1, char_putchar);
}
''',
args : '-pedantic-errors',
dependencies : textui_dep,
name : 'Curses with tputs third argument arg char',
)
conf.set(
'NEED_CURSES_H',
1,
description : 'tputs needs curses.h',
)
conf.set(
'TPUTS_SVR4',
1,
description : 'third argument of tputs has the type int (*)(char)',
)
else
error('could not link terminfo')
endif
endif
endif
endif
conf.set('HAVE_LIBUTF8PROC', have_libutf8proc)
conf.set_quoted('PACKAGE_VERSION', package_version)
conf.set_quoted('PACKAGE_TARNAME', meson.project_name())
configure_file(
output : 'irssi-config.h',
configuration : conf,
install_dir : includedir / incdir,
)
##########
# CFLAGS #
##########
#### warnings ####
add_project_arguments(
cc.get_supported_arguments('-Werror=declaration-after-statement'),
language : 'c',
)
#### personality ####
add_project_arguments(
cc.get_supported_arguments('-fno-strict-aliasing'),
language : 'c',
)
if get_option('buildtype').contains('debug')
add_project_arguments(
cc.get_supported_arguments('-fno-omit-frame-pointer'),
language : 'c',
)
endif
if want_fuzzer
if fuzzer_lib.startswith('-fsanitize=fuzzer')
if not cc.has_argument('-fsanitize=fuzzer-no-link')
error('compiler does not support -fsanitize=fuzzer-no-link, try clang?')
endif
add_project_arguments(
'-fsanitize=fuzzer-no-link',
language : 'c',
)
endif
if fuzzer_link_language != 'c'
add_languages(fuzzer_link_language)
endif
endif
##############
# irssi-1.pc #
##############
pc = import('pkgconfig')
pc_requires = [ ]
if not glib_internal
pc_requires += glib_dep
endif
signalsfile = docdir / 'signals.txt'
if signalsfile.startswith('/')
signalsfile = signalsfile.split(get_option('prefix'))
if signalsfile[0] == ''
signalsfile = '${prefix}' + signalsfile[1]
else
signalsfile = signalsfile[0]
endif
else
signalsfile = '${prefix}' / signalsfile
endif
pc.generate(
filebase : 'irssi-1',
name : 'Irssi',
description : 'Irssi chat client',
version : package_version,
requires : pc_requires,
variables : [ 'irssimoduledir=${libdir}' / incdir / 'modules', 'signalsfile=' + signalsfile ],
)
###########
# irssi.1 #
###########
install_man('docs/irssi.1')
###########
# subdirs #
###########
subdir('src')
subdir('tests')
subdir('docs')
subdir('scripts')
subdir('themes')
# subdir('utils')
############################
############################
message('*** Irssi configured ***')
message('')
message('Building text frontend ........... : ' + want_textui.to_string('yes', 'no'))
message('Building irssi bot ............... : ' + want_bot.to_string('yes', 'no'))
message('Building irssi proxy ............. : ' + want_proxy.to_string('yes', 'no'))
if want_perl and not have_perl
message('Building with Perl support ....... : NO!')
message(' - Try: sudo apt-get install libperl-dev')
message(' - Or: dnf install perl-devel')
else
message('Building with Perl support ....... : ' + have_perl.to_string('yes', 'no'))
endif
if have_perl
message('Perl library directory ........... : ' + perl_use_lib)
message(' ' + perl_library_dir)
endif
message('Install prefix ................... : ' + get_option('prefix'))
message('')
message('Building with Capsicum ........... : ' + have_capsicum.to_string('yes', 'no'))
message('Building with utf8proc ........... : ' + have_libutf8proc.to_string('yes', 'no'))
message('Building with OTR support ........ : ' + have_otr.to_string('yes', 'no'))
message('')
message('If there are any problems, read the INSTALL file.')
message('Now type ninja -C ' + meson.current_build_dir() + ' to build Irssi')
message('')
############################
############################

16
meson_options.txt Normal file
View file

@ -0,0 +1,16 @@
option('without-textui', type : 'combo', description : 'Build without text frontend', choices : ['no', 'yes'])
option('with-bot', type : 'combo', description : 'Build irssi-bot', choices : ['no', 'yes'])
option('with-fuzzer', type : 'combo', description : 'Build irssi-fuzzer', choices : ['no', 'yes'])
option('with-fuzzer-lib', type : 'string', description : 'Specify path to fuzzer library', value : '-fsanitize=fuzzer')
option('fuzzer-link-language', type : 'string', description : 'The linker to use for the fuzz targets [c, cpp]', value : 'c')
option('with-proxy', type : 'combo', description : 'Build irssi-proxy', choices : ['no', 'yes'])
option('with-perl-lib', type : 'string', description : 'Specify where to install the Perl libraries for Irssi')
option('with-perl', type : 'combo', description : 'Build with Perl support', choices : ['auto', 'yes', 'no'])
option('with-otr', type : 'combo', description : 'Build with OTR support', choices : ['auto', 'yes', 'no'])
option('disable-utf8proc', type : 'combo', description : 'Build without Julia\'s utf8proc', choices : ['auto', 'yes', 'no'])
option('with-capsicum', type : 'combo', description : 'Build with Capsicum support', choices : ['auto', 'yes', 'no'])
option('static-dependency', type : 'combo', description : 'Request static dependencies', choices : ['no', 'yes'])
option('install-glib', type : 'combo', description : 'Download and install GLib for you', choices : ['no', 'yes', 'force'])
option('docdir', type : 'string', description : 'Documentation directory')
option('fhs-prefix', type : 'string', description : 'System prefix for Termux')
option('PACKAGE_VERSION', type : 'string', description : 'Override PACKAGE_VERSION in tarballs')

View file

@ -1,17 +0,0 @@
SUBDIRS = examples
scriptdir = $(datadir)/irssi/scripts
script_DATA = \
autoop.pl \
autorejoin.pl \
buf.pl \
dns.pl \
kills.pl \
mail.pl \
mlock.pl \
quitmsg.pl \
scriptassist.pl \
usercount.pl
EXTRA_DIST = $(script_DATA)

View file

@ -5,7 +5,7 @@ use Irssi;
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "1.10";
$VERSION = "1.11";
%IRSSI = (
authors => 'Timo Sirainen & Jostein Kjønigsen',
name => 'autoop',
@ -98,10 +98,11 @@ sub load_autoops {
%opnicks = ();
open(CONF, "<", "$file") or return;
while (my $line = <CONF>) {
if ($line !=~ /^\s*$/) {
cmd_autoop($line);
$count++;
}
chomp($line);
if ($line !~ /^\s*$/) {
cmd_autoop($line);
$count++;
}
}
close(CONF);

View file

@ -1,6 +1,9 @@
# automatically rejoin to channel after kick
# automatically rejoin to channel after kicked
# delayed rejoin: Lam 28.10.2001 (lam@lac.pl)
# /SET autorejoin_channels #channel1 #channel2 ...
# /SET autorejoin_delay 5
# NOTE: I personally don't like this feature, in most channels I'm in it
# will just result as ban. You've probably misunderstood the idea of /KICK
# if you kick/get kicked all the time "just for fun" ...
@ -9,31 +12,22 @@ use Irssi;
use Irssi::Irc;
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "1.0.0";
$VERSION = "1.1.0";
%IRSSI = (
authors => "Timo 'cras' Sirainen, Leszek Matok",
contact => "lam\@lac.pl",
name => "autorejoin",
description => "Automatically rejoin to channel after being kick, after a (short) user-defined delay",
description => "Automatically rejoin to channel after being kicked, after a (short) user-defined delay",
license => "GPLv2",
changed => "10.3.2002 14:00"
);
# How many seconds to wait before the rejoin?
# TODO: make this a /setting
my $delay = 5;
my @tags;
my $acttag = 0;
sub rejoin {
my ( $data ) = @_;
my ( $tag, $servtag, $channel, $pass ) = split( / +/, $data );
my ( $servtag, $channel, $pass ) = @{$data};
my $server = Irssi::server_find_tag( $servtag );
$server->send_raw( "JOIN $channel $pass" ) if ( $server );
Irssi::timeout_remove( $tags[$tag] );
}
sub event_rejoin_kick {
@ -48,10 +42,31 @@ sub event_rejoin_kick {
my $rejoinchan = $chanrec->{ name } if ( $chanrec );
my $servtag = $server->{ tag };
Irssi::print "Rejoining $rejoinchan in $delay seconds.";
$tags[$acttag] = Irssi::timeout_add( $delay * 1000, "rejoin", "$acttag $servtag $rejoinchan $password" );
$acttag++;
$acttag = 0 if ( $acttag > 60 );
# check if we want to autorejoin this channel
my $chans = Irssi::settings_get_str( 'autorejoin_channels' );
if ( $chans ) {
my $found = 0;
foreach my $chan ( split( /[ ,]/, $chans ) ) {
if ( lc( $chan ) eq lc( $channel ) ) {
$found = 1;
last;
}
}
return unless $found;
}
my @args = ($servtag, $rejoinchan, $password);
my $delay = Irssi::settings_get_int( "autorejoin_delay" );
if ($delay) {
Irssi::print "Rejoining $rejoinchan in $delay seconds.";
Irssi::timeout_add_once( $delay * 1000, "rejoin", \@args );
} else {
rejoin( \@args );
}
}
Irssi::settings_add_int('misc', 'autorejoin_delay', 5);
Irssi::settings_add_str('misc', 'autorejoin_channels', '');
Irssi::signal_add( 'event kick', 'event_rejoin_kick' );

View file

@ -1,22 +1,24 @@
use strict;
use vars qw($VERSION %IRSSI);
use Storable;
use 5.014000;
use Irssi qw(command signal_add signal_add_first active_win
settings_get_str settings_get_bool channels windows
settings_add_str settings_add_bool get_irssi_dir
window_find_refnum signal_stop);
$VERSION = '2.20';
settings_add_str settings_add_bool get_irssi_dir
window_find_refnum signal_stop);
$VERSION = '3.00';
%IRSSI = (
authors => 'Juerd',
contact => 'juerd@juerd.nl',
name => 'Scroll buffer restorer',
description => 'Saves the buffer for /upgrade, so that no information is lost',
license => 'Public Domain',
url => 'http://juerd.nl/irssi/',
changed => 'Thu Sep 22 01:37 CEST 2016',
changes => 'Fixed file permissions (leaked everything via filesystem)',
note1 => 'This script HAS TO BE in your scripts/autorun!',
note2 => 'Perl support must be static or in startup',
authors => 'Juerd',
contact => 'juerd@juerd.nl',
name => 'Scroll buffer restorer',
description => 'Saves the buffer for /upgrade, so that no information is lost',
license => 'Public Domain',
url => 'http://juerd.nl/irssi/',
changed => 'Thu Mar 29 10:00 CEST 2018',
changes => 'Fixed file permissions (leaked everything via filesystem), rewritten to use Storable and print to correct levels',
note1 => 'This script HAS TO BE in your scripts/autorun!',
note2 => 'Perl support must be static or in startup',
);
# Q: How can I get a very smooth and clean upgrade?
@ -40,30 +42,28 @@ my %suppress;
sub _filename { sprintf '%s/scrollbuffer', get_irssi_dir }
sub upgrade {
my $fn = _filename;
my $old_umask = umask 0077;
open my $fh, q{>}, $fn or die "open $fn: $!";
umask $old_umask;
print $fh join("\0", map $_->{server}->{address} . $_->{name}, channels), "\n";
my $out = { suppress => [ map $_->{server}->{address} . $_->{name}, channels ] };
for my $window (windows) {
next unless defined $window;
next if $window->{name} eq 'status';
my $view = $window->view;
my $line = $view->get_lines;
my $lines = 0;
my $buf = '';
if (defined $line){
{
$buf .= $line->get_text(1) . "\n";
$line = $line->next;
$lines++;
redo if defined $line;
}
}
printf $fh "%s:%s\n%s", $window->{refnum}, $lines, $buf;
next unless defined $window;
next if $window->{name} eq 'status';
my $view = $window->view;
my $line = $view->get_lines;
my $lines = 0;
my $buf = '';
my $output;
if (defined $line) {
{
push @$output, { level => $line->{info}{level}, data => $line->get_text(1) };
$line = $line->next;
redo if defined $line;
}
}
push @{$out->{windows}}, { refnum => $window->{refnum}, lines => $output };
}
close $fh;
my $old_umask = umask 0077;
my $fn = _filename;
store($out, $fn) or die "Could not store data to $fn";
umask $old_umask;
unlink sprintf("%s/sessionconfig", get_irssi_dir);
command 'layout save';
command 'save';
@ -71,33 +71,30 @@ sub upgrade {
sub restore {
my $fn = _filename;
open my $fh, q{<}, $fn or die "open $fn: $!";
my $in = retrieve($fn) or die "Could not retrieve data from $fn";
unlink $fn or warn "unlink $fn: $!";
my @suppress = split /\0/, readline $fh;
if (settings_get_bool 'upgrade_suppress_join') {
chomp $suppress[-1];
@suppress{@suppress} = (2) x @suppress;
}
my @suppress = @{$in->{suppress}};
@suppress{@suppress} = (2) x @suppress if (settings_get_bool 'upgrade_suppress_join');
active_win->command('^window scroll off');
while (my $bla = readline $fh){
chomp $bla;
my ($refnum, $lines) = split /:/, $bla;
next unless $lines;
my $window = window_find_refnum $refnum;
unless (defined $window){
readline $fh for 1..$lines;
next;
}
my $view = $window->view;
$view->remove_all_lines();
$view->redraw();
my $buf = '';
$buf .= readline $fh for 1..$lines;
my $sep = settings_get_str 'upgrade_separator';
$sep .= "\n" if $sep ne '';
$window->gui_printtext_after(undef, MSGLEVEL_CLIENTNOTICE, "$buf\cO$sep");
$view->redraw();
for my $win (@{$in->{windows}}) {
my $window = window_find_refnum $win->{refnum};
next unless $window;
my @lines = @{ $win->{lines} || [] };
next unless @lines;
my $view = $window->view;
$view->remove_all_lines();
$view->redraw();
for my $line (@lines) {
my $level = $line->{level};
my $data = $line->{data};
$window->gui_printtext_after($window->last_line_insert, $level, "$data\n");
}
my $sep = settings_get_str 'upgrade_separator';
$window->gui_printtext_after($window->last_line_insert, MSGLEVEL_CLIENTNOTICE, "\cO$sep\n") if $sep ne '';
$view->redraw();
}
active_win->command('^window scroll on');
active_win->command('^scrollback end');
@ -110,7 +107,7 @@ sub suppress {
$key_part =~ s/^://;
my $key = $first->{address} . $key_part;
if (exists $suppress{$key} and $suppress{$key}--) {
signal_stop();
signal_stop();
delete $suppress{$key} unless $suppress{$key};
}
}

View file

@ -1,16 +1,18 @@
# /DNS <nick>|<host>|<ip> ...
# version 2.1.1
#
# updated the script to fix a bug where the script would let
# a trailing whitespace go through (ex: tab completion)
# - inch <inch@stmpd.net>
#
# v2.2
# add ipv6 support
# v2.1.1
# updated the script to fix a bug where the script would let
# a trailing whitespace go through (ex: tab completion)
# - inch <inch@stmpd.net>
use strict;
use Socket;
use POSIX;
use vars qw($VERSION %IRSSI);
$VERSION = "2.1.1";
$VERSION = "2.2";
%IRSSI = (
authors => "Timo \'cras\' Sirainen",
contact => "tss\@iki.fi",
@ -18,7 +20,7 @@ $VERSION = "2.1.1";
description => "/DNS <nick>|<host>|<ip> ...",
license => "Public Domain",
url => "http://irssi.org/",
changed => "2002-03-04T22:47+0100"
changed => "2019-01-24"
);
my (%resolve_hosts, %resolve_nicks, %resolve_print); # resolve queues
@ -102,6 +104,42 @@ sub sig_userhost {
host_lookup() if (!$lookup_waiting);
}
sub dns {
my ($host) =@_;
my %hints = (socktype => SOCK_STREAM);
my ($err, @res) = Socket::getaddrinfo($host, "http", \%hints);
my @res1;
if ($err ==0 ) {
foreach(@res) {
if ($_->{family}==AF_INET) {
my ($proto,$ip)=unpack_sockaddr_in($_->{addr});
push @res1, Socket::inet_ntop(AF_INET,$ip);
}
if ($_->{family}==AF_INET6) {
my ($proto,$ip)=unpack_sockaddr_in6($_->{addr});
push @res1, Socket::inet_ntop(AF_INET6,$ip);
}
}
return join(' ',@res1);
}
}
sub rdns {
my ($host) =@_;
my %hints = (socktype => SOCK_STREAM);
my ($err, @res) = Socket::getaddrinfo($host, "http", \%hints);
my @res1;
if ($err ==0 ) {
foreach(@res) {
my ($err, $hostname, $servicename) = Socket::getnameinfo $_->{addr};
if ($err ==0) {
push @res1, $hostname;
}
}
return join(' ',@res1);
}
}
sub host_lookup {
return if (!%resolve_hosts);
@ -145,16 +183,13 @@ sub host_lookup {
eval {
# child, do the lookup
my $name = "";
if ($host =~ /^[0-9\.]*$/) {
if ($host =~ /^[0-9\.]*$/ || $host =~ m/^[0-9a-f:]*$/) {
# ip -> host
$name = gethostbyaddr(inet_aton($host), AF_INET);
#$name = gethostbyaddr(inet_aton($host), AF_INET);
$name = rdns($host);
} else {
# host -> ip
my @addrs = gethostbyname($host);
if (@addrs) {
@addrs = map { inet_ntoa($_) } @addrs[4 .. $#addrs];
$name = join (" ", @addrs);
}
$name = dns($host);
}
$print_name = $input_query if !$print_name;
@ -197,3 +232,5 @@ Irssi::command_bind('dns', 'cmd_dns');
Irssi::signal_add( {
'redir dns failure' => \&sig_failure,
'redir dns host' => \&sig_userhost } );
# vim:set sw=2 ts=8:

View file

@ -1,8 +0,0 @@
scriptdir = $(datadir)/irssi/scripts
script_DATA = \
command.pl \
msg-event.pl \
redirect.pl
EXTRA_DIST = $(script_DATA)

View file

@ -1,11 +1,12 @@
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "2.92";
$VERSION = "2.93";
%IRSSI = (
authors => "Timo Sirainen, Matti Hiljanen, Joost Vunderink, Bart Matthaei",
contact => "tss\@iki.fi, matti\@hiljanen.com, joost\@carnique.nl, bart\@dreamflow.nl",
name => "mail",
description => "Fully customizable mail counter statusbar item with multiple mailbox and multiple Maildir support",
sbitems => "mail",
license => "Public Domain",
url => "http://irssi.org, http://scripts.irssi.de",
);
@ -30,6 +31,7 @@ $VERSION = "2.92";
# Check /mailbox help for help.
use Irssi::TextUI;
use Irssi;
my $maildirmode = 0; # maildir=1, file(spools)=0
my $old_is_not_new = 0;
@ -37,7 +39,7 @@ my $extprog;
my ($last_refresh_time, $refresh_tag);
# for mbox caching
my $last_size, $last_mtime, $last_mailcount, $last_mode;
my ($last_size, $last_mtime, $last_mailcount, $last_mode);
# list of mailboxes
my %mailboxes = ();
@ -61,8 +63,8 @@ sub cmd_print_help {
"/MAILBOX SHOW\n".
" - Shows a list of the defined mailboxes.\n\n".
"Use the following commands to change the behaviour:\n\n".
"/SET MAILDIRMODE on|off\n".
" - If maildirmode is on, the mailboxes in the list are assumed to be ".
"/SET MAILDIR_MODE on|off\n".
" - If maildir_mode is on, the mailboxes in the list are assumed to be ".
"directories. Otherwise they are assumed to be spool files.\n".
" Default: off.\n".
"/SET MAIL_OLDNOTNEW on|off\n".
@ -101,8 +103,9 @@ sub mbox_count {
my $old_is_not_new=Irssi::settings_get_bool('mail_oldnotnew');
if ($extprog ne "") {
$total = `$extprog`;
chomp $unread;
my $total = `$extprog`;
chomp $total;
($read, $unread) = split ' ', $total, 2;
} else {
if (!$maildirmode) {
if (-f $mailfile) {
@ -115,8 +118,7 @@ sub mbox_count {
$last_size = $size;
$last_mtime = $mtime;
my $f = gensym;
return 0 if (!open($f, "<", $mailfile));
return 0 if (!open(my $f, "<", $mailfile));
# count new mails only
my $internal_removed = 0;
@ -205,7 +207,7 @@ sub mail {
my $total = 0;
# check all mailboxes for new email
foreach $name (keys(%mailboxes)) {
foreach my $name (keys(%mailboxes)) {
my $box = $mailboxes{$name};
# replace "~/" at the beginning by the user's home dir
$box =~ s/^~\//$ENV{'HOME'}\//;
@ -233,7 +235,7 @@ sub mail {
# Show this only if there are any new, unread messages.
if (Irssi::settings_get_bool('mail_show_message') &&
$unread > $new_mails_in_box{$name}) {
$new_mails = $unread - $new_mails_in_box{$name};
my $new_mails = $unread - $new_mails_in_box{$name};
if ($nummailboxes == 1) {
Irssi::print("You have $new_mails new message" . ($new_mails != 1 ? "s." : "."), MSGLEVEL_CRAP);
} else {
@ -263,11 +265,9 @@ sub add_mailboxes {
my $boxstring = $_[0];
my @boxes = split(/,/, $boxstring);
foreach $dbox(@boxes) {
my $name = $dbox;
$name = substr($dbox, 0, index($dbox, '='));
my $box = $dbox;
$box = substr($dbox, index($dbox, '=') + 1, length($dbox));
foreach my $dbox(@boxes) {
my $name = substr($dbox, 0, index($dbox, '='));
my $box = substr($dbox, index($dbox, '=') + 1, length($dbox));
addmailbox($name, $box);
}
}
@ -306,7 +306,7 @@ sub delmailbox {
sub update_settings_string {
my $setting;
foreach $name (keys(%mailboxes)) {
foreach my $name (keys(%mailboxes)) {
$setting .= $name . "=" . $mailboxes{$name} . ",";
}
@ -345,7 +345,7 @@ sub cmd_showmailboxes {
return;
}
Irssi::print("Mailboxes:", MSGLEVEL_CRAP);
foreach $box (keys(%mailboxes)) {
foreach my $box (keys(%mailboxes)) {
Irssi::print("$box: " . $mailboxes{$box}, MSGLEVEL_CRAP);
}
}

Some files were not shown because too many files have changed in this diff Show more