Compare commits

..

820 Commits

Author SHA1 Message Date
Psychotic Ninja Build System
cf4ea85ae4 Add initial support for RPM 2022-11-10 02:31:34 -06: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 afba1480562bba77b127322eb55a3a768a1e98b4)
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 a661e2fb35d4683871a374805daf8a20935f313f)
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 0c97433c7c41e50744da1c2ceaf19131e96fdf18)
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 55913ade1350a4c1087b0238ac863e0bab081fd7)
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 238d7cfd08d14115762d78b11c567c850133f72a)
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 f76d41953f94bab519dec99c38d0b7fdb8bca1f4)
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 38b18bd84da03f127e0ed51154923576bf22ae6f)
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 f32d0ab51a5569ad908cefa3b033a7fb367240e7)
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 68823eb6af68d941e94327170d6f5261568b6899)
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 0bf18beed75e0423c7848908ebc4ba6f39cc96c7)
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 a57cc1c55e7a3e9d76964ccf0697431b9f521dc5)
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 a5f5ea7d79274fcf547ef81f019b0c38c6863051)
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 07aa061b6d51a7c246047053e734a2fba8e31a83)
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 545d97f8d601e9c1692abba6075bb44a0b4db07c)
2022-07-03 00:14:14 +02:00
ailin-nemui
f17fb68257 Merge pull request #1387 from ailin-nemui/textbufferview
Textbufferview

(cherry picked from commit 783dd375339c1c98be36e277d47afdd6918d6160)
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 593afc2e40fee9714a44f87f58718f327b68247f)
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 47b0661e9689d870f6ad499259368a7860880f2f)
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 e692f85f4a388d8bcaec9d3c5e475fc7cb5a6271)
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 af5feb16be3390340434f5c1838684c3bd9eb91a)
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 84a98d0e0843b33c030798778e6b537a9d6141b2)
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 4cec2d98c5cd5d70f8694759de577da4e230830f)
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 b446d06b9dd5e2c4d7d279da52c5e499d463d8e6)
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 c62505386f19fd1a2310883f32535f36966f2803)
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 06a7dcad991c83e9df92f6765164bcfef6c34108)
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 854c88da03a277162c4f8ac98f001cea53640529)
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 cf6bc311723d130a507a8a6c927c479dbf124299)
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 7ec61c4ec0be3fbbdca30c2587c8464e093d7b9a)
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 738931762b1c1c2cc442df00b8e9cd5adc027f05)
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 d523ceacf0335c5da151fc51600f3623b0297338)
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 27008bf447f29eec39fae081113f9d4574ce5e0b)
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 53187de6a20f772c81cfe568c6696043405a3fd0)
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 0e3f6aa4a25cc8f3d526c86cd985315683028c41)
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 cc411a1be009b9c6eac9811abeff10d8bab0efc8)
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 f5d74bd81bbe6cb39588e6d0ad9276ad8f7ac02a)
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 95e3fea62236b606b9c9e4d0c4231c75589ef71f)
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 f7fd4d72e488081f180fc1f4cc8bb269e50a9067)
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 a2feef5e735d3bb3d5a4eecb05e813ba6bd2fe95)
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 8281b103108820aa104c8e0fe5c33960838d2f99)
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 d33fd0c5da2287f5496a4a78940490f0c4466428)
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 '2cdcf86174b420091372edd295dc81cda8b46d8f' 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 a54a00c803067bfc669658f64aaac54dfe95c69b)
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 b9f773ba6a8913eff2812da122a62528550b0534)
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 6db881d8ef70b261b1f237188b53a1de76c6fadb)
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 ea961623f575529ab2a94d7d394b399d29729b57)
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 235c5b03281a3ae5c7849921cebbf7d46d39a4fc)
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 85a9dc146d803be344bf3806395ac294d6929c13)
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 db705278d2f766433d3c28f776241c4997efde70)
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 b0fdbb144d5c5723269b2571761b0a073a392454)
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 ad8221835c90969a6ba87807b072ba9f4d63bd48)
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 d3e105a3963cbc693ac316ae884b000902999828)
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 7e1401140412361b813accd99aa367658435c12f)
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 a4486c236a3bf15192d0500b3a1892f7465826c7.
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 1773fa8d191c9f1dcc7c1e59dbcdf31c1263c918.
2021-09-01 13:37:17 +02:00
Ailin Nemui
939b773b8b Revert "Changed the support channel to LiberaChat."
This reverts commit a5d4fd5aa7ad1d57c0b8e11e382944a3654cfa00.
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 3324c5da89c694ce5bbd20ecb313da870d1bb914, reversing
changes made to d3115f38550f26b935d4e22201d09287ce44e5ac.
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 79be775f2bf653a886b351e3552d4c8cbdb35f26.
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 00a7efc69f8cfc14fcfdf123421015e99ac07926
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
533 changed files with 11932 additions and 8673 deletions

View File

@ -27,7 +27,7 @@ Language: Cpp
Cpp11BracedListStyle: false
MaxEmptyLinesToKeep: 1
PointerAlignment: Right
SortIncludes: true
SortIncludes: false
SpaceAfterCStyleCast: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeParens: ControlStatements

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
get_pip_build_deps: pip3 install setuptools; 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 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 "::set-output name=base_abi::$base_abi"
- uses: actions/upload-artifact@v2
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 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 "::set-output name=merge_abi::$merge_abi"
- uses: actions/upload-artifact@v2
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 install abigail-tools
- name: fetch base build
uses: actions/download-artifact@v2
with:
name: base.inst
path: base
- name: fetch merge build
uses: actions/download-artifact@v2
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@v2
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

101
.github/workflows/check.yml vendored Normal file
View File

@ -0,0 +1,101 @@
on:
push:
branches:
- master
pull_request:
name: Check Irssi
env:
apt_build_deps: libutf8proc-dev libperl-dev libotr5-dev
apt_build_deps_meson: ninja-build
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
steps:
- name: prepare required software
run: |
sudo apt update && sudo apt install $apt_build_deps
- uses: actions/checkout@main
- name: make dist
run: |
./utils/make-dist.sh
- uses: actions/upload-artifact@v2
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-18.04, ubuntu-latest]
builder: [meson]
compiler: [clang, gcc]
flags: [regular]
include:
- os: ubuntu-18.04
builder: meson
meson_ver: ==0.53.2
setuptools_ver: <51
- os: ubuntu-latest
builder: meson
meson_ver: <0.63.0
- os: ubuntu-latest
builder: meson
flags: meson-latest FAILURE-OK
steps:
- name: fetch dist
uses: actions/download-artifact@v2
- 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 $apt_build_deps_${{ matrix.builder }}
eval "$get_pip_build_deps_${{ matrix.builder }}"
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
if: ${{ matrix.builder == 'meson' }}
- 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 {} +
if: ${{ matrix.builder == 'meson' }}
- 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' > 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 | 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@v1
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@v1
if: failure()
with:
name: git-clang-format.diff
path: git-clang-format.diff

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=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@v2
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'
})

13
.gitignore vendored
View File

@ -27,6 +27,7 @@ MYMETA.*
docs/help/Makefile.am
docs/help/[a-z]*
!docs/help/meson.build
!docs/help/in
docs/help/in/Makefile.am
@ -35,9 +36,6 @@ src/fe-fuzz/irssi-fuzz
src/fe-fuzz/irc/core/event-get-params-fuzz
src/fe-fuzz/fe-common/core/theme-load-fuzz
src/fe-common/irc/irc-modules.c
src/irc/irc.c
src/perl/perl-signals-list.h
src/perl/irssi-core.pl.h
@ -52,6 +50,8 @@ 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
@ -82,3 +82,10 @@ src/fe-fuzz/oom-*
.deps
.libs
Build
subprojects/*
!subprojects/*.wrap
Irssi-Dist
setup.cfg
*.egg-info

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,69 +0,0 @@
sudo: false
dist: trusty
language: perl
perl:
# ~stretch
- "5.24-shrplib"
# ~xenial
# - "5.22-shrplib"
# ~jessie
# - "5.20-shrplib"
# ~trusty
# - "5.18-shrplib"
- "system-perl"
env:
- CC=clang UNITTESTS=false
- CC=gcc UNITTESTS=false
- CC=clang UNITTESTS=true
matrix:
exclude:
- env: CC=clang UNITTESTS=true
perl: "system-perl"
allow_failures:
- env: CC=clang UNITTESTS=true
addons:
apt:
packages:
- libperl-dev
- elinks
- libgcrypt11-dev
before_install:
- perl -V
- wget https://github.com/irssi-import/libotr/releases/download/4.1.1/travis-trusty-libotr-4.1.1.tar.gz
- tar zxf travis-trusty-libotr*.tar.gz -C $HOME
- ./autogen.sh --with-proxy --with-bot --with-perl=module --with-otr=yes --with-libotr-prefix=$HOME/otr-build/lib --with-libotr-inc-prefix=$HOME/otr-build/include
- make dist
- cd ..
- tar xaf */irssi-*.tar.*
- cd irssi-*
install:
- ./configure --with-proxy --with-bot --with-perl=module --with-otr=yes --with-libotr-prefix=$HOME/otr-build/lib --with-libotr-inc-prefix=$HOME/otr-build/include --prefix=$HOME/irssi-build
$( $UNITTESTS && echo --enable-always-build-tests )
- make CFLAGS="-Wall -Werror -Werror=declaration-after-statement"
- make install
before_script:
- pushd ~
- 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
script:
- irssi-build/bin/irssi --home irssi-test
- popd
- if $UNITTESTS; then make -C tests -sk check; fi
after_script:
- cat ~/irc.log.*
- find -name test-suite.log -exec cat {} +

93
INSTALL
View File

@ -2,64 +2,63 @@
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
- glib-2.32 or greater
- openssl (for ssl support)
- perl-5.6 or greater (for perl support)
- perl-5.6 or greater (for Perl support)
- terminfo or ncurses (for text frontend)
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
configure options
meson 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).
--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'
@ -69,47 +68,43 @@ 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
- 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:
CFLAGS='-DUSEIMPORTLIB' ./configure --with-perl-staticlib
- TODO

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,32 +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)/utils/file2header.sh $(srcdir)/irssi.conf default_config > default-config.h
default-theme.h: $(srcdir)/themes/default.theme
$(srcdir)/utils/file2header.sh $(srcdir)/themes/default.theme default_theme > default-theme.h
irssi-version.h:
VERSION="$(VERSION)" $(srcdir)/utils/irssi-version.sh $(srcdir) | \
cmp -s - $@ || VERSION="$(VERSION)" $(srcdir)/utils/irssi-version.sh $(srcdir) >$@
SUBDIRS = src tests docs scripts themes utils
confdir = $(sysconfdir)
conf_DATA = irssi.conf
pkginclude_HEADERS = irssi-config.h irssi-version.h
EXTRA_DIST = \
ChangeLog \
autogen.sh \
README.md \
$(conf_DATA) \
irssi-config.in \
irssi-icon.png

341
NEWS
View File

@ -1,3 +1,336 @@
v1.5-head 202x-xx-xx The Irssi team <staff@irssi.org>
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 (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)
@ -38,7 +371,7 @@ v1.2.3 2021-04-11 The Irssi team <staff@irssi.org>
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)
information from the server (GL#34, GL!35)
- Fix a crash during startup when windows weren't fully
initialised yet (#1114, bdo#935813)
@ -75,16 +408,18 @@ v1.2.0 2019-02-11 The Irssi team <staff@irssi.org>
* 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)
#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)
@ -98,6 +433,7 @@ v1.2.0 2019-02-11 The Irssi team <staff@irssi.org>
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)
@ -105,6 +441,7 @@ v1.2.0 2019-02-11 The Irssi team <staff@irssi.org>
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)

View File

@ -1,11 +1,10 @@
# [Irssi](https://irssi.org/)
# [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. 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](http://about.psyc.eu/Irssyc) and
@ -18,27 +17,29 @@ available.
#### Development source installation
[Ninja](https://ninja-build.org/) 1.8 and [Meson](https://mesonbuild.com/) 0.53
```
git clone https://github.com/irssi/irssi
cd irssi
./autogen.sh
make && sudo make install
meson Build
ninja -C Build && sudo ninja -C Build install
```
#### Release source installation
* Download [release](https://github.com/irssi/irssi/releases)
* [Verify](https://irssi.org/download/#release-sources) signature
* Verify signature
```
tar xJf irssi-*.tar.xz
cd irssi-*
./configure
make && sudo make install
meson Build
ninja -C Build && sudo ninja -C Build install
```
### Requirements
- [glib-2.28](https://wiki.gnome.org/Projects/GLib) or greater
- [glib-2.32](https://wiki.gnome.org/Projects/GLib) or greater
- [openssl](https://www.openssl.org/)
- [perl-5.6](https://www.perl.org/) or greater (for perl support)
- terminfo or ncurses (for text frontend)
@ -47,8 +48,8 @@ make && sudo make install
## [Documentation](https://irssi.org/documentation/)
* [Frequently Asked Questions](https://irssi.org/documentation/faq)
* [Startup How-To](https://irssi.org/documentation/startup)
* [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
## [Themes](https://irssi-import.github.io/themes/)
@ -61,7 +62,7 @@ make && sudo make install
Please report security issues to staff@irssi.org. Thanks!
## [Bugs](https://github.com/irssi/irssi/issues) / Suggestions / [Contributing](https://irssi.org/development/)
## [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).
@ -70,4 +71,4 @@ 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 freenode.
[#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=.
mydir=`pwd`
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
cd "$srcdir"
# create help files
echo "Creating help files..."
perl utils/syntax.pl
echo "Creating ChangeLog..."
git log > 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
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 $?
# make sure perl hashes have correct length
find src/perl -name '*.c' -o -name '*.xs' -exec grep -n hv_store {} + | perl -l -ne 'if (/"(\w+)",\s*(\d+)/ && $2 != length $1) { $X=1; print "Incorrect key length in $_" } END { exit $X }'
cd "$mydir"
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
if grep -q '==\|\[\[' "$srcdir"/build-aux/test-driver; then
echo
echo "************************************************************************"
echo "**Warning**: your build is not portable, please do not make dist"
echo " see https://bugzilla.opensuse.org/show_bug.cgi?id=1076146"
echo "************************************************************************"
fi

View File

@ -1,860 +0,0 @@
AC_INIT(irssi, 1.2.3)
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 subdir-objects nostdinc])
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)
AC_SYS_LARGEFILE
AC_ARG_WITH(socks,
[ --with-socks Build with socks support],
if test x$withval = xno; then
want_socks=no
else
want_socks=yes
fi,
want_socks=no)
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(fuzzer,
[ --with-fuzzer Build irssi-fuzzer],
if test x$withval = xno; then
want_irssifuzzer=no
else
want_irssifuzzer=yes
fi,
want_irssifuzzer=no)
AC_ARG_WITH(fuzzer-lib,
[ --with-fuzzer-lib Specify path to fuzzer library],
fuzzerlibpath="$withval")
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_WITH(otr,
[ --with-otr[=yes|no|static] Build with OTR support - also specifies
if it should be built into the main irssi
binary (static) or as a module (default)],
if test x$withval = xyes; then
want_otr=module
elif test x$withval = xstatic; then
want_otr=static
elif test x$withval = xmodule; then
want_otr=module
else
want_otr=no
fi,
want_otr=no)
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)
AC_ARG_ENABLE(gregex,
[ --disable-gregex Build without GRegex (fall back to regex.h)],
if test x$enableval = xno ; then
want_gregex=no
else
want_gregex=yes
fi,
want_gregex=yes)
AC_ARG_ENABLE(utf8proc,
[ --disable-utf8proc Build without Julia's utf8proc],
if test x$enableval = xno ; then
want_utf8proc=no
else
want_utf8proc=yes
fi,
want_utf8proc=yes)
AC_ARG_WITH(capsicum,
[ --with-capsicum Build with Capsicum support],
if test x$withval = xno; then
want_capsicum=no
else
want_capsicum=yes
fi,
want_capsicum=yes)
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 ** check for socks
dnl **
if test "x$want_socks" = "xyes"; then
AC_CHECK_LIB(socks, connect, [
AC_DEFINE(HAVE_SOCKS,, Build with socks support)
LIBS="$LIBS -lsocks"
AC_CHECK_HEADER(socks.h, [
AC_DEFINE(HAVE_SOCKS_H)
CFLAGS="$CFLAGS -DSOCKS"
AC_MSG_RESULT(["socks5 library found, building with it"])
], [
AC_MSG_RESULT(["socks4 library found, building with it"])
CFLAGS="$CFLAGS -Dconnect=Rconnect -Dgetsockname=Rgetsockname -Dgetpeername=Rgetpeername -Dbind=Rbind -Daccept=Raccept -Dlisten=Rlisten -Dselect=Rselect"
])
])
fi
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.28.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"
GLIB_TESTS
dnl **
dnl ** OpenSSL checks
dnl **
PKG_CHECK_MODULES([OPENSSL], [openssl], [
CFLAGS="$CFLAGS $OPENSSL_CFLAGS"
LIBS="$LIBS $OPENSSL_LIBS"
], [
AC_CHECK_LIB([ssl], [SSL_library_init], [
LIBS="$LIBS -lssl -lcrypto"
], [
AC_MSG_ERROR([The OpenSSL library was not found])
])
])
dnl **
dnl ** utf8proc
dnl **
if test "x$want_utf8proc" != "xno"; then
AC_CHECK_HEADER([utf8proc.h], [
AC_CHECK_LIB([utf8proc], [utf8proc_version], [
want_utf8proc=yes
AC_DEFINE(HAVE_LIBUTF8PROC,, [Define to 1 if you have the `utf8proc' library (-lutf8proc).])
LIBS="$LIBS -lutf8proc"
], [
want_utf8proc="no, library not found"
])
], [
want_utf8proc="no, library header not found"
])
fi
dnl **
dnl ** curses checks
dnl **
if test "x$want_textui" != "xno"; then
TEXTUI_NO_LIBS="$LIBS"
LIBS=
AC_SEARCH_LIBS([setupterm], [tinfo ncursesw ncurses terminfo], [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"
AC_CHECK_HEADER([term.h], [
AC_DEFINE(HAVE_TERM_H, [], [Define to 1 if you have the `term.h' header.])
])
fi
dnl **
dnl ** irssifuzzer checks
dnl **
if test "$want_irssifuzzer" != "no"; then
dnl * we need to build with -fsanitize-coverage=trace-pc-guard
dnl * otherwise fuzzer won't be very successful at finding bugs :)
if test -z "$SANFLAGS"; then
SANFLAGS="-g -fsanitize=address -fsanitize-coverage=trace-pc-guard"
fi
CFLAGS="$CFLAGS $SANFLAGS"
CXXFLAGS="$CXXFLAGS $SANFLAGS"
AC_MSG_CHECKING(for fuzzer library)
if test -z "$fuzzerlibpath"; then
AC_MSG_RESULT([not found, building without fuzzer front end])
want_irssifuzzer=no
else
FUZZER_LIBS="$fuzzerlibpath"
AC_SUBST(FUZZER_LIBS)
fi
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 -iwithsysroot
PERL_CFLAGS=`echo $PERL_CFLAGS | $perlpath -pe 's/^(.* )?-@<:@^DUIifm@:>@@<:@^ @:>@+/\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 **
dnl ** check for capsicum
dnl **
if test "x$want_capsicum" = "xyes"; then
AC_CHECK_LIB(c, cap_enter, [
AC_CHECK_LIB(nv, nvlist_create, [
AC_DEFINE(HAVE_CAPSICUM,, Build with Capsicum support)
LIBS="$LIBS -lnv"
], [
want_capsicum="no, nvlist_create not found"
])
], [
want_capsicum="no, cap_enter not found"
])
fi
dnl **
dnl ** OTR checks
dnl **
have_otr=no
if test "x$want_otr" != "xno"; then
AM_PATH_LIBGCRYPT(1:1.2.0, [], [AC_ERROR(libgcrypt 1.2.0 or newer is required.)])
AM_PATH_LIBOTR(4.1.0, [], [AC_ERROR([libotr 4.1.0 or newer is required.])])
OTR_CFLAGS="$LIBOTR_CFLAGS $LIBGCRYPT_CFLAGS"
OTR_LDFLAGS="$LIBOTR_LIBS $LIBGCRYPT_LIBS"
AC_SUBST(otr_module_lib)
AC_SUBST(otr_static_lib)
if test "x$want_otr" != "xno"; then
if test "x$want_otr" = "xstatic"; then
otr_module_lib=
otr_static_lib=libotr_core_static.la
OTR_LINK_LIBS="../otr/libotr_core_static.la"
OTR_LINK_FLAGS="$OTR_LDFLAGS"
AC_DEFINE(HAVE_STATIC_OTR)
else
otr_module_lib=libotr_core.la
otr_static_lib=
fi
fi
AC_SUBST(otr_module_lib)
AC_SUBST(otr_static_lib)
AC_SUBST(OTR_CFLAGS)
AC_SUBST(OTR_LDFLAGS)
AC_SUBST(OTR_LINK_LIBS)
AC_SUBST(OTR_LINK_FLAGS)
have_otr=yes
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_IRSSIFUZZER, test "$want_irssifuzzer" = "yes")
AM_CONDITIONAL(BUILD_IRSSIPROXY, test "$want_irssiproxy" = "yes")
AM_CONDITIONAL(HAVE_PERL, test "$want_perl" != "no")
AM_CONDITIONAL(HAVE_CAPSICUM, test "x$want_capsicum" = "xyes")
AM_CONDITIONAL(USE_GREGEX, test "x$want_gregex" = "xyes")
AM_CONDITIONAL(HAVE_OTR, test "x$have_otr" != "xno")
# 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
if test "x$want_gregex" = "xyes"; then
AC_DEFINE([USE_GREGEX], [], [use GRegex for regular expressions])
else
want_gregex=no
fi
AH_TEMPLATE(HAVE_GMODULE)
AH_TEMPLATE(HAVE_SOCKS_H, [misc..])
AH_TEMPLATE(HAVE_STATIC_PERL)
AH_TEMPLATE(HAVE_STATIC_OTR)
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-fuzz/Makefile
src/fe-fuzz/irc/Makefile
src/fe-fuzz/irc/core/Makefile
src/fe-fuzz/fe-common/Makefile
src/fe-fuzz/fe-common/core/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
src/otr/Makefile
scripts/Makefile
scripts/examples/Makefile
tests/Makefile
tests/fe-common/Makefile
tests/fe-common/core/Makefile
tests/fe-text/Makefile
tests/irc/Makefile
tests/irc/core/Makefile
tests/irc/flood/Makefile
docs/Makefile
docs/help/Makefile
docs/help/in/Makefile
utils/Makefile
themes/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 "Building with GRegex ............. : $want_gregex"
echo "Building with Capsicum ........... : $want_capsicum"
echo "Building with utf8proc ........... : $want_utf8proc"
if test "x$want_otr" = "xstatic"; then
echo "Building with OTR support ........ : static (in irssi binary)"
elif test "x$want_otr" = "xmodule"; then
echo "Building with OTR support ........ : module"
else
echo "Building with OTR support ........ : no"
fi
echo
echo "If there are any problems, read the INSTALL file."

View File

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

View File

@ -1,6 +1,5 @@
<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">

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,9 +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>
<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>
@ -55,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>
@ -71,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>

View File

@ -4,8 +4,8 @@ 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-color or color_xterm (eg. TERM=xterm-color irssi). If this doesnt help,
then use the evil way of /SET term_force_colors ON.
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
@ -117,8 +117,8 @@ A: Check [6]here
References:
[1] https://github.com/irssi-import/xirssi
[2] http://tmux.github.io/
[3] http://www.gnu.org/software/screen/screen.html
[4] http://dtach.sf.net/
[5] http://dgl.cx/irssi/hack-whois-in-current-window.pl
[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

@ -5,19 +5,22 @@
%9Parameters:%9
-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

@ -17,6 +17,7 @@
-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.
@ -34,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

@ -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

@ -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.
@ -44,6 +46,8 @@
/IGNORE #irssi NO_ACT JOINS PARTS QUITS
/IGNORE mike NO_ACT -MSGS
/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

@ -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.

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

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

@ -19,6 +19,7 @@
-autosendcmd: Specifies the commands, separated by the ';' character,
and enclosed within two "'" characters, to perform after
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
@ -59,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

View File

@ -51,7 +51,7 @@ GENKEY <name>
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
catched.
caught.
HELP
Print this help.

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

@ -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.
@ -28,6 +28,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
@ -51,25 +53,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 CONNECT chat.freenode.net
/SERVER CONNECT +chat.freenode.net
/SERVER ADD -network Freenode -noautosendcmd orwell.freenode.net
/SERVER ADD -! -auto -host staff.irssi.org -4 -network Freenode -noproxy orwell.freenode.net 6667
/SERVER MODIFY -network Freenode -noauto orwell.freenode.net
/SERVER MODIFY -network Freenode orwell.freenode.net 6697 -
/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

@ -30,7 +30,9 @@
-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 first
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

View File

@ -33,12 +33,12 @@
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 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 teft.
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.

121
docs/help/meson.build Normal file
View File

@ -0,0 +1,121 @@
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

@ -349,7 +349,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>
@ -394,10 +394,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

18
docs/meson.build Normal file
View File

@ -0,0 +1,18 @@
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

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

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
@ -144,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
@ -244,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"
@ -264,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
@ -279,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
@ -342,14 +351,18 @@ 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
----

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,9 +1,8 @@
<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>
@ -69,7 +68,7 @@
<p>And to connect to one of those networks and join a channel:</p>
<div><div><pre><code>/CONNECT Freenode
<div><div><pre><code>/CONNECT liberachat
/JOIN #irssi
</code></pre></div></div>
@ -95,7 +94,7 @@
<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>
<div><div><pre><code>/NETWORK ADD -sasl_username yourname -sasl_password yourpassword -sasl_mechanism PLAIN Freenode
<div><div><pre><code>/NETWORK ADD -sasl_username yourname -sasl_password yourpassword -sasl_mechanism PLAIN liberachat
</code></pre></div></div>
<p>These commands have many more options, see their help for details:</p>
@ -161,7 +160,7 @@ Ctrl-P, Ctrl-N - Jump to previous / next window
<h3 id="split-windows-and-window-items">Split windows and window items</h3>
<p><em>Note: <a href="http://quadpoint.org/articles/irssisplit/">this guide</a> might be a better introduction to window splits</em></p>
<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>
@ -227,7 +226,7 @@ Ctrl-P, Ctrl-N - Jump to previous / next window
<p>And finally channels:</p>
<div><div><pre><code>/CHANNEL ADD -auto -bots *!*user@host -botcmd "/^msg $0 op pass" #irssi efnet
<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>
@ -396,7 +395,7 @@ Ctrl-X - set the next server in list active
<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>
<div><div><pre><code> [user@host] ~% cat
<div><div><pre><code> [cras@hurina] ~% cat
^[OP
</code></pre></div></div>
@ -516,12 +515,12 @@ Ctrl-X - set the next server in list active
<p><strong>SOCKS</strong></p>
<p>Irssi can be compiled with socks support (<code>\--with-socks</code> option to configure), which requires “dante” and routes all connections through the proxy specified in the system-wide /etc/socks.conf. This method is known to have issues in Mac OS X.</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>Using <a href="https://github.com/rofl0r/proxychains-ng">proxychains-ng</a> is recommended over recompiling irssi.</p>
<p><strong>Others</strong></p>
<p>IRC bouncers usually work like IRC servers, and want a password. You can give it with:</p>

View File

@ -43,7 +43,7 @@ has a few predefined networks, to list them:
And to connect to one of those networks and join a channel:
/CONNECT Freenode
/CONNECT liberachat
/JOIN #irssi
To add more networks:
@ -67,7 +67,7 @@ wait for 2 seconds before joining channels:
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 Freenode
/NETWORK ADD -sasl_username yourname -sasl_password yourpassword -sasl_mechanism PLAIN liberachat
These commands have many more options, see their help for details:
@ -218,7 +218,7 @@ IRC network, other servers are automatically connected in same network if the
And finally channels:
/CHANNEL ADD -auto -bots *!*user@host -botcmd "/^msg $0 op pass" #irssi efnet
/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
@ -442,7 +442,7 @@ 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:
[user@host] ~% cat
[cras@hurina] ~% cat
^[OP
So in irssi you would use /BIND ^[OP /ECHO F1 pressed. If you use multiple
@ -578,15 +578,12 @@ Irssi proxy works fine with other IRC clients as well.
SOCKS
Irssi can be compiled with socks support (\--with-socks option to configure),
which requires “dante” and routes all connections through the proxy specified
in the system-wide /etc/socks.conf. This method is known to have issues in Mac
OS X.
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.
Using [4]proxychains-ng is recommended over recompiling irssi.
Others
IRC bouncers usually work like IRC servers, and want a password. You can give
@ -792,8 +789,8 @@ ADD -before act mail.
References:
[1] http://www.gnu.org/licenses/fdl.html
[1] https://www.gnu.org/licenses/fdl.html
[2] https://www.iterm2.com/
[3] http://quadpoint.org/articles/irssisplit/
[3] https://quadpoint.org/articles/irssisplit/
[4] https://github.com/rofl0r/proxychains-ng
[5] https://irssi.org/documentation/settings/

View File

@ -150,7 +150,7 @@ index ad79e0c..84d0c5c 100644
+++ b/src/fe-text/irssi.c
@@ -314,20 +314,16 @@ int main(int argc, char **argv)
textui_finish_init();
main_loop = g_main_new(TRUE);
main_loop = g_main_loop_new(NULL, TRUE);
+#ifdef __AFL_HAVE_MANUAL_CONTROL
+ __AFL_INIT();
@ -162,7 +162,7 @@ index ad79e0c..84d0c5c 100644
can call our dirty-checker after each iteration */
while (!quitting) {
- term_refresh_freeze();
g_main_iteration(TRUE);
g_main_context_iteration(NULL, TRUE);
- term_refresh_thaw();
-
- if (reload_config) {
@ -174,7 +174,7 @@ index ad79e0c..84d0c5c 100644
- dirty_check();
}
g_main_destroy(main_loop);
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

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,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"; },
@ -115,6 +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";
CS = "QUOTE CS";
DATE = "TIME";
DEHIGHLIGHT = "DEHILIGHT";
DESCRIBE = "ACTION";
@ -133,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";
@ -143,6 +147,7 @@ aliases = {
SAY = "MSG *";
SB = "SCROLLBACK";
SBAR = "STATUSBAR";
SHELP = "QUOTE HELP";
SIGNOFF = "QUIT";
SV = "MSG * Irssi $J ($V) - https://irssi.org";
T = "TOPIC";

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
])

View File

@ -1,28 +0,0 @@
dnl GLIB_TESTS
dnl
AC_DEFUN([GLIB_TESTS],
[
AC_ARG_ENABLE(installed-tests,
AS_HELP_STRING([--enable-installed-tests],
[Enable installation of some test cases]),
[case ${enableval} in
yes) ENABLE_INSTALLED_TESTS="1" ;;
no) ENABLE_INSTALLED_TESTS="" ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-installed-tests]) ;;
esac])
AM_CONDITIONAL([ENABLE_INSTALLED_TESTS], test "$ENABLE_INSTALLED_TESTS" = "1")
AC_ARG_ENABLE(always-build-tests,
AS_HELP_STRING([--enable-always-build-tests],
[Enable always building tests during 'make all']),
[case ${enableval} in
yes) ENABLE_ALWAYS_BUILD_TESTS="1" ;;
no) ENABLE_ALWAYS_BUILD_TESTS="" ;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-always-build-tests]) ;;
esac])
AM_CONDITIONAL([ENABLE_ALWAYS_BUILD_TESTS], test "$ENABLE_ALWAYS_BUILD_TESTS" = "1")
if test "$ENABLE_INSTALLED_TESTS" = "1"; then
AC_SUBST(installed_test_metadir, [${datadir}/installed-tests/]AC_PACKAGE_NAME)
AC_SUBST(installed_testdir, [${libexecdir}/installed-tests/]AC_PACKAGE_NAME)
fi
])

View File

@ -1,143 +0,0 @@
# libgcrypt.m4 - Autoconf macros to detect libgcrypt
# Copyright (C) 2002, 2003, 2004, 2011, 2014 g10 Code GmbH
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This file is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Last-changed: 2014-10-02
dnl AM_PATH_LIBGCRYPT([MINIMUM-VERSION,
dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
dnl Test for libgcrypt and define LIBGCRYPT_CFLAGS and LIBGCRYPT_LIBS.
dnl MINIMUN-VERSION is a string with the version number optionalliy prefixed
dnl with the API version to also check the API compatibility. Example:
dnl a MINIMUN-VERSION of 1:1.2.5 won't pass the test unless the installed
dnl version of libgcrypt is at least 1.2.5 *and* the API number is 1. Using
dnl this features allows to prevent build against newer versions of libgcrypt
dnl with a changed API.
dnl
dnl If a prefix option is not used, the config script is first
dnl searched in $SYSROOT/bin and then along $PATH. If the used
dnl config script does not match the host specification the script
dnl is added to the gpg_config_script_warn variable.
dnl
AC_DEFUN([AM_PATH_LIBGCRYPT],
[ AC_REQUIRE([AC_CANONICAL_HOST])
AC_ARG_WITH(libgcrypt-prefix,
AC_HELP_STRING([--with-libgcrypt-prefix=PFX],
[prefix where LIBGCRYPT is installed (optional)]),
libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
if test x"${LIBGCRYPT_CONFIG}" = x ; then
if test x"${libgcrypt_config_prefix}" != x ; then
LIBGCRYPT_CONFIG="${libgcrypt_config_prefix}/bin/libgcrypt-config"
else
case "${SYSROOT}" in
/*)
if test -x "${SYSROOT}/bin/libgcrypt-config" ; then
LIBGCRYPT_CONFIG="${SYSROOT}/bin/libgcrypt-config"
fi
;;
'')
;;
*)
AC_MSG_WARN([Ignoring \$SYSROOT as it is not an absolute path.])
;;
esac
fi
fi
AC_PATH_PROG(LIBGCRYPT_CONFIG, libgcrypt-config, no)
tmp=ifelse([$1], ,1:1.2.0,$1)
if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
min_libgcrypt_version=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\2/'`
else
req_libgcrypt_api=0
min_libgcrypt_version="$tmp"
fi
AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version)
ok=no
if test "$LIBGCRYPT_CONFIG" != "no" ; then
req_major=`echo $min_libgcrypt_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
req_minor=`echo $min_libgcrypt_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
req_micro=`echo $min_libgcrypt_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
major=`echo $libgcrypt_config_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
minor=`echo $libgcrypt_config_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
micro=`echo $libgcrypt_config_version | \
sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
if test "$major" -gt "$req_major"; then
ok=yes
else
if test "$major" -eq "$req_major"; then
if test "$minor" -gt "$req_minor"; then
ok=yes
else
if test "$minor" -eq "$req_minor"; then
if test "$micro" -ge "$req_micro"; then
ok=yes
fi
fi
fi
fi
fi
fi
if test $ok = yes; then
AC_MSG_RESULT([yes ($libgcrypt_config_version)])
else
AC_MSG_RESULT(no)
fi
if test $ok = yes; then
# If we have a recent libgcrypt, we should also check that the
# API is compatible
if test "$req_libgcrypt_api" -gt 0 ; then
tmp=`$LIBGCRYPT_CONFIG --api-version 2>/dev/null || echo 0`
if test "$tmp" -gt 0 ; then
AC_MSG_CHECKING([LIBGCRYPT API version])
if test "$req_libgcrypt_api" -eq "$tmp" ; then
AC_MSG_RESULT([okay])
else
ok=no
AC_MSG_RESULT([does not match. want=$req_libgcrypt_api got=$tmp])
fi
fi
fi
fi
if test $ok = yes; then
LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
ifelse([$2], , :, [$2])
libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
if test x"$libgcrypt_config_host" != xnone ; then
if test x"$libgcrypt_config_host" != x"$host" ; then
AC_MSG_WARN([[
***
*** The config script $LIBGCRYPT_CONFIG was
*** built for $libgcrypt_config_host and thus may not match the
*** used host $host.
*** You may want to use the configure option --with-libgcrypt-prefix
*** to specify a matching config script or use \$SYSROOT.
***]])
gpg_config_script_warn="$gpg_config_script_warn libgcrypt"
fi
fi
else
LIBGCRYPT_CFLAGS=""
LIBGCRYPT_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(LIBGCRYPT_CFLAGS)
AC_SUBST(LIBGCRYPT_LIBS)
])

View File

@ -1,134 +0,0 @@
dnl
dnl Off-the-Record Messaging library
dnl Copyright (C) 2004-2007 Ian Goldberg, Chris Alexander, Nikita Borisov
dnl <otr@cypherpunks.ca>
dnl
dnl This library is free software; you can redistribute it and/or
dnl modify it under the terms of version 2.1 of the GNU Lesser General
dnl Public License as published by the Free Software Foundation.
dnl
dnl This library is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl Lesser General Public License for more details.
dnl
dnl You should have received a copy of the GNU Lesser General Public
dnl License along with this library; if not, write to the Free Software
dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
dnl
dnl AM_PATH_LIBOTR([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Test for libotr, and define LIBOTR_CFLAGS and LIBOTR_LIBS as appropriate.
dnl enables arguments --with-libotr-prefix=
dnl --with-libotr-inc-prefix=
dnl
dnl You must already have found libgcrypt with AM_PATH_LIBGCRYPT
dnl
dnl Adapted from alsa.m4, originally by
dnl Richard Boulton <richard-alsa@tartarus.org>
dnl Christopher Lansdown <lansdoct@cs.alfred.edu>
dnl Jaroslav Kysela <perex@suse.cz>
AC_DEFUN([AM_PATH_LIBOTR],
[dnl Save the original CFLAGS, LDFLAGS, and LIBS
libotr_save_CFLAGS="$CFLAGS"
libotr_save_LDFLAGS="$LDFLAGS"
libotr_save_LIBS="$LIBS"
libotr_found=yes
dnl
dnl Get the cflags and libraries for libotr
dnl
AC_ARG_WITH(libotr-prefix,
[ --with-libotr-prefix=PFX Prefix where libotr is installed(optional)],
[libotr_prefix="$withval"], [libotr_prefix=""])
AC_ARG_WITH(libotr-inc-prefix,
[ --with-libotr-inc-prefix=PFX Prefix where libotr includes are (optional)],
[libotr_inc_prefix="$withval"], [libotr_inc_prefix=""])
dnl Add any special include directories
AC_MSG_CHECKING(for libotr CFLAGS)
if test "$libotr_inc_prefix" != "" ; then
LIBOTR_CFLAGS="$LIBOTR_CFLAGS -I$libotr_inc_prefix"
CFLAGS="$CFLAGS $LIBOTR_CFLAGS"
fi
AC_MSG_RESULT($LIBOTR_CFLAGS)
dnl add any special lib dirs
AC_MSG_CHECKING(for libotr LIBS)
if test "$libotr_prefix" != "" ; then
LIBOTR_LIBS="$LIBOTR_LIBS -L$libotr_prefix"
LDFLAGS="$LDFLAGS $LIBOTR_LIBS"
fi
dnl add the libotr library
LIBOTR_LIBS="$LIBOTR_LIBS -lotr"
LIBS="$LIBOTR_LIBS $LIBS"
AC_MSG_RESULT($LIBOTR_LIBS)
dnl Check for a working version of libotr that is of the right version.
min_libotr_version=ifelse([$1], ,3.0.0,$1)
no_libotr=""
libotr_min_major_version=`echo $min_libotr_version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
libotr_min_minor_version=`echo $min_libotr_version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
libotr_min_sub_version=`echo $min_libotr_version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
AC_MSG_CHECKING(for libotr headers version $libotr_min_major_version.x >= $min_libotr_version)
AC_LANG_SAVE
AC_LANG_C
AC_TRY_COMPILE([
#include <stdlib.h>
#include <libotr/version.h>
], [
# if(OTRL_VERSION_MAJOR != $libotr_min_major_version)
# error not present
# else
# if(OTRL_VERSION_MINOR > $libotr_min_minor_version)
exit(0);
# else
# if(OTRL_VERSION_MINOR < $libotr_min_minor_version)
# error not present
# endif
# if(OTRL_VERSION_SUB < $libotr_min_sub_version)
# error not present
# endif
# endif
# endif
exit(0);
],
[AC_MSG_RESULT(found.)],
[AC_MSG_RESULT(not present.)
ifelse([$3], , [AC_MSG_ERROR(Sufficiently new version of libotr not found.)])
libotr_found=no]
)
AC_LANG_RESTORE
dnl Now that we know that we have the right version, let's see if we have the library and not just the headers.
AC_CHECK_LIB([otr], [otrl_message_receiving],,
[ifelse([$3], , [AC_MSG_ERROR(No linkable libotr was found.)])
libotr_found=no],
$LIBGCRYPT_LIBS
)
LDFLAGS="$libotr_save_LDFLAGS"
LIBS="$libotr_save_LIBS"
if test "x$libotr_found" = "xyes" ; then
ifelse([$2], , :, [$2])
else
LIBOTR_CFLAGS=""
LIBOTR_LIBS=""
ifelse([$3], , :, [$3])
fi
dnl That should be it. Now just export our symbols:
AC_SUBST(LIBOTR_CFLAGS)
AC_SUBST(LIBOTR_LIBS)
])

648
meson.build Normal file
View File

@ -0,0 +1,648 @@
project('irssi', 'c',
version : '1.5-head',
meson_version : '>=0.53',
default_options : ['warning_level=1'])
############################
############################
glib_internal_version = 'glib-2.58.3' # keep this in sync with subprojects/glib.wrap
cc = meson.get_compiler('c')
rootinc = include_directories('.')
dep = []
textui_dep = []
need_dl_cross_link = false
# 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
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'
##############
# 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
if cc.has_function('libiconv_open', dependencies : prov_lib)
glib_internal_configure_args += '-Diconv=gnu'
else
glib_internal_configure_args += '-Diconv=native'
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=false', '-Dselinux=false', '-Ddefault_library=static', '-Dinternal_pcre=true',
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',
'glib' / 'libglib-2.0.a',
'gmodule' / 'libgmodule-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' / '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' ],
)
else
gmodule_dep = dependency('gmodule-2.0', static : want_static_dependency, include_type : 'system')
endif
dep += glib_dep
dep += gmodule_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
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', '-Eprint $INC{"ExtUtils/ParseXS.pm"} =~ s{ParseXS\\.pm$}{xsubpp}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
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
pc.generate(filebase : 'irssi-1',
name : 'Irssi',
description : 'Irssi chat client',
version : package_version,
requires : pc_requires,
variables : ['irssimoduledir=${libdir}' / incdir / 'modules'])
###########
# 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')

16
redhat/.rpmmacros Normal file
View File

@ -0,0 +1,16 @@
%_topdir %(echo $HOME)/rpmbuild
%_smp_mflags -j3
#%__arch_install_post /usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
%dist .psychotic
%_dist .psychotic
%releasetagsuffix psychotic
%_vendor psychotic
%vendor psychotic
%_host_vendor %{_vendor}
%_packager Psychotic Build System <builder@psychotic.ninja>
%packager Psychotic Build System <builder@psychotic.ninja>
%_signature gpg
%_gpg_name Psychotic Build System
%_binary_filedigest_algorithm 1
%_source_filedigest_algorithm 1
%_binary_payload w9.gzdio

160
redhat/irssi.spec Normal file
View File

@ -0,0 +1,160 @@
%define perl_vendorarch %(eval "`perl -V:installvendorarch`"; echo $installvendorarch)
Summary: Modular text mode IRC client with Perl scripting
Name: irssi
Version: 1.4.3
Release: 0%{?dist}
License: GPLv2+
Group: Applications/Communications
URL: http://irssi.org/
#Source0: http://irssi.org/files/irssi-%{version}.tar.gz
Source0: https://github.com/irssi/irssi/releases/download/%{version}/irssi-%{version}.tar.gz
Source1: irssi-config.h
#Patch0: 00-freenode-to-libera.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires: ncurses-devel openssl-devel zlib-devel
BuildRequires: pkgconfig glib2-devel perl-devel perl(ExtUtils::Embed)
BuildRequires: autoconf automake libtool
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%package devel
Summary: Development package for irssi
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description
Irssi is a modular IRC client with Perl scripting. Only text-mode
frontend is currently supported. The GTK/GNOME frontend is no longer
being maintained.
%description devel
This package contains headers needed to develop irssi plugins.
Irssi is a modular IRC client with Perl scripting. Only text-mode
frontend is currently supported. The GTK/GNOME frontend is no longer
being maintained.
%prep
%setup -q
#%patch0 -p1
%build
autoreconf -i
# --with-bot \
%configure --enable-ipv6 --with-textui \
--with-proxy \
--with-perl=yes \
--with-perl-lib=vendor \
--enable-true-color
make %{_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
mv irssi-config.h irssi-config-$(getconf LONG_BIT).h
cp -p %{SOURCE1} irssi-config.h
%install
rm -rf $RPM_BUILD_ROOT
%makeinstall PERL_INSTALL_ROOT=$RPM_BUILD_ROOT INSTALL="%{__install} -p"
install -p irssi-config-$(getconf LONG_BIT).h $RPM_BUILD_ROOT%{_includedir}/%{name}/irssi-config-$(getconf LONG_BIT).h
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}/modules/lib*.*a
rm -Rf $RPM_BUILD_ROOT/%{_docdir}/%{name}
find $RPM_BUILD_ROOT%{perl_vendorarch} -type f -a -name '*.bs' -a -empty -exec rm -f {} ';'
find $RPM_BUILD_ROOT%{perl_vendorarch} -type f -a -name .packlist -exec rm {} ';'
chmod -R u+w $RPM_BUILD_ROOT%{perl_vendorarch}
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc docs/*.txt docs/*.html AUTHORS COPYING NEWS README.md TODO
%config(noreplace) %{_sysconfdir}/%{name}.conf
%{_bindir}/%{name}
#%{_bindir}/botti
%{_datadir}/%{name}
%{_libdir}/%{name}
%{_libdir}/pkgconfig/irssi-1.pc
%{_mandir}/man1/%{name}.1*
%{perl_vendorarch}/Irssi*
%{perl_vendorarch}/auto/Irssi
%files devel
%defattr(-,root,root,-)
%{_includedir}/irssi/
%changelog
* Wed Nov 09 2022 Psychotic Build System <builder@psychotic.ninja> - 1.4.3-0
- Upgrade to upstream 1.4.3
* Wed Jul 13 2022 Psychotic Build System <builder@psychotic.ninja> - 1.4.2-0
- Update to upstreram 1.4.2
* Sat Jun 11 2022 Psychotic Build System <builder@psychotic.ninja> - 1.4.1-0
- Upgrade to upstream 1.4.1
* Tue Jun 15 2021 Psychotic Build System <builder@psychotic.ninja> - 1.2.3-2
- Change references of freenode to libera
* Fri Jun 04 2021 Psychotic Build System <builder@psychotic.ninja> - 1.2.3-1
- Updated to upstream 1.2.3
* Fri Nov 01 2019 Psychotic Build System <builder@psychotic.ninja> - 1.2.2-1
- Upgrade to upstream 1.2.2 which is stability and security update addressing
CVE-2019-15717 (Use after free when receiving duplicate CAP)
* Mon Jul 01 2019 Psychotic Build System <builder@psychotic.ninja> - 1.2.1-1
- Upgrade to upstream 1.2.1
* Mon Jul 01 2019 Psychotic Build System <builder@psychotic.ninja> - 1.1.3-1
- Upgrade to upstream 1.1.3 which is a stability and security update addressing
CVE-2019-13045 (use after free if SASL is enabled)
* Mon Jan 14 2019 Psychotic Build System <builder@psychotic.ninja> - 1.1.2-1
- Upgrade to upstream 1.1.2 which is a stability and security update addressing
CVE-2019-5882 (use-after-free).
* Fri Mar 09 2018 Psychotic Build System <builder@psychotic.ninja> - 1.1.1-2
- Bump to upstream 1.1.1
* Fri Jan 19 2018 Psychotic Build System <builder@psychotic.ninja> - 1.1.0-2
- Upgraded to upstream 1.1.0. Sourced from GhettoForge
* Tue Jan 16 2018 Bryan Seitz <seitz@ghettoforge.org> - 1.1.0-1
- New upstream version 1.1.0
* Sat Jan 06 2018 Bryan Seitz <seitz@ghettoforge.org> - 1.0.6-1
- New upstream version 1.0.6
* Mon Oct 23 2017 Bryan Seitz <seitz@ghettoforge.org> - 1.0.5-1
- New upstream version 1.0.5
* Sat Jul 08 2017 Bryan Seitz <seitz@ghettoforge.org> - 1.0.4-1
- New upstream version 1.0.4
* Sun Mar 19 2017 Psychotic Build System <builder@psychotic.ninja> - 1.0.2-1
- Updated to upstream 1.0.2
* Fri Mar 17 2017 Psychotic Build System <builder@psychotic.ninja> - 1.0.1-2
- Initial build for Psychotic Ninja; sourced from GhettoForge
* Mon Feb 06 2017 Bryan Seitz <seitz@ghettoforge.org> - 1.0.1-1
- New upstream version 1.0.1
* Tue Jan 10 2017 Bryan Seitz <seitz@ghettoforge.org> - 1.0.0-1
- New upstream version 1.0.0
* Fri Sep 23 2016 Bryan Seitz <seitz@ghettoforge.org> - 0.8.20-1
- New upstream version 0.8.20
* Fri May 06 2016 Bryan Seitz <seitz@ghettoforge.org> - 0.8.19-1
- New upstream version 0.8.19
* Mon May 11 2015 Bryan Seitz <seitz@ghettoforge.org> - 0.8.17-2
- Import into GhettoForge

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

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

14
scripts/meson.build Normal file
View File

@ -0,0 +1,14 @@
install_data(
files(
'autoop.pl',
'autorejoin.pl',
'buf.pl',
'dns.pl',
'kills.pl',
'mail.pl',
'mlock.pl',
'quitmsg.pl',
'scriptassist.pl',
'usercount.pl',
),
install_dir : scriptdir)

View File

@ -6,36 +6,27 @@ use Irssi::Irc;
use strict;
use vars qw($VERSION %IRSSI);
$VERSION = "1.00";
$VERSION = "1.01";
%IRSSI = (
authors => 'Timo Sirainen',
name => 'quitmsg',
description => 'Random quit messages',
license => 'Public Domain',
changed => 'Sun Mar 10 23:18 EET 2002'
changed => 'Mon Jul 22 20:00 EET 2020'
);
my $quitfile = glob "~/.irssi/irssi.quit";
my $quitfile = Irssi::get_irssi_dir() . "/irssi.quit";
sub cmd_quit {
my ($data, $server, $channel) = @_;
return if ($data ne "");
open (f, "<", $quitfile) || return;
my $lines = 0; while(<f>) { $lines++; };
open (my $fh, "<", $quitfile) || return;
my @lines = <$fh>;
my $line = int(rand($lines))+1;
my $quitmsg;
seek(f, 0, 0); $. = 0;
while(<f>) {
next if ($. != $line);
chomp;
$quitmsg = $_;
last;
}
close(f);
my $quitmsg = $lines[int(rand(@lines))];
chomp($quitmsg);
close($fh);
foreach my $server (Irssi::servers) {
$server->command("/disconnect ".$server->{tag}." $quitmsg");

View File

@ -5,30 +5,33 @@
use strict;
our $VERSION = '2003020806';
our $VERSION = '2022053100';
our %IRSSI = (
authors => 'Stefan \'tommie\' Tomanek',
contact => 'stefan@pico.ruhr.de',
name => 'scriptassist',
description => 'keeps your scripts on the cutting edge',
license => 'GPLv2',
url => 'http://irssi.org/scripts/',
modules => 'Data::Dumper LWP::UserAgent (GnuPG)',
url => 'https://scripts.irssi.org/',
modules => 'CPAN::Meta::YAML LWP::Protocol::https (GnuPG)',
commands => "scriptassist"
);
our ($forked, %remote_db, $have_gpg, @complist);
use Irssi 20020324;
use Data::Dumper;
use CPAN::Meta::YAML;
use LWP::UserAgent;
use POSIX;
use version;
# GnuPG is not always needed
$have_gpg = 0;
eval "use GnuPG qw(:algo :trust);";
$have_gpg = 1 if not ($@);
my $irssi_version = qv('v'.Irssi::parse_special('$J') =~ s/[^.\d].*//r);
sub show_help {
my $help = "scriptassist $VERSION
/scriptassist check
@ -39,15 +42,15 @@ sub show_help {
Search the script database
/scriptassist info <scripts>
Display information about <scripts>
".#/scriptassist ratings <scripts>
# Retrieve the average ratings of the the scripts
#/scriptassist top <num>
# Retrieve the first <num> top rated scripts
"/scriptassist new <num>
/scriptassist ratings <scripts|all>
Retrieve the average ratings of the the scripts
/scriptassist top <num>
Retrieve the first <num> top rated scripts
/scriptassist new <num>
Display the newest <num> scripts
".#/scriptassist rate <script> <stars>
# Rate the script with a number of stars ranging from 0-5
"/scriptassist contact <script>
/scriptassist rate <script>
Rate the script if you like it
/scriptassist contact <script>
Write an email to the author of the script
(Requires OpenURL)
/scriptassist cpan <module>
@ -95,6 +98,7 @@ sub call_openurl {
$code->($url);
} else {
print CLIENTCRAP "%R>>%n Please install openurl.pl";
print CLIENTCRAP "%R>>%n or open < $url > manually";
}
}
@ -170,14 +174,13 @@ sub bg_do {
my $cmd = $items[1];
$result{data}{unknown}{$cmd} = get_unknown($cmd, $xml);
}
my $dumper = Data::Dumper->new([\%result]);
$dumper->Purity(1)->Deepcopy(1)->Indent(0);
my $data = $dumper->Dump;
my $yaml = CPAN::Meta::YAML->new(\%result);
my $data = $yaml->write_string();
print($wh $data);
};
if ($@) {
print($wh Data::Dumper->new([+{data=>+{error=>$@}}])
->Purity(1)->Deepcopy(1)->Indent(0)->Dump);
print($wh CPAN::Meta::YAML->new(+{data=>+{error=>$@}})
->write_string());
}
close($wh);
POSIX::_exit(1);
@ -189,7 +192,7 @@ sub get_unknown {
foreach (keys %$db) {
next unless defined $db->{$_}{commands};
foreach my $item (split / /, $db->{$_}{commands}) {
return { $_ => $db->{$_} } if ($item =~ /^$cmd$/i);
return { $_ => +{%{$db->{$_}}} } if ($item =~ /^$cmd$/i);
}
}
return undef;
@ -265,47 +268,80 @@ sub script_info {
$result{$sname}{modules}{$mod}{installed} = module_exist($mod);
}
}
if (defined $xml->{$plname}{depends}) {
my $depends = $xml->{$plname}{depends};
foreach my $dep (split(/ /, $depends)) {
$result{$sname}{depends}{$dep}{installed} = 1;
}
}
# if (defined $xml->{$plname}{depends}) {
# my $depends = $xml->{$plname}{depends};
# foreach my $dep (split(/ /, $depends)) {
# $result{$sname}{depends}{$dep}{installed} = 1; #(defined ${ 'Irssi::Script::'.$dep });
# }
# }
}
return \%result;
}
sub get_rate_url {
my ($src) = @_;
my $ua = LWP::UserAgent->new(env_proxy=>1, keep_alive=>1, timeout=>30);
$ua->agent('ScriptAssist/'.$VERSION);
my $request = HTTP::Request->new('GET', $src);
my $response = $ua->request($request);
unless ($response->is_success) {
my $error = join "\n", $response->status_line(), (grep / at .* line \d+/, split "\n", $response->content()), '';
die("Fetching ratings location failed: $error");
}
my $votes_url;
for my $tag ($response->content() =~ /<script([^>]*)>/g) {
my $attr = " $tag ";
($votes_url = $1) =~ s/\.\w+$/.yml/
if $attr =~ /\sasync\s/ && $attr =~ m{\ssrc="(https?://.*?/votes\.\w+)"\s};
}
unless ($votes_url) {
die("Fetching ratings failed: Could not find votes script\n");
}
$request = HTTP::Request->new('GET', $votes_url);
$response = $ua->request($request);
if (!$response->is_success) {
my $error = join "\n", $response->status_line(), (grep / at .* line \d+/, split "\n", $response->content()), '';
die("Fetching ratings failed: $error");
}
my $data = $response->content();
utf8::decode($data);
CPAN::Meta::YAML->read_string($data)->[0];
}
sub rate_script {
my ($script, $stars) = @_;
my $ua = LWP::UserAgent->new(env_proxy=>1, keep_alive=>1, timeout=>30);
$ua->agent('ScriptAssist/'.2003020803);
my $request = HTTP::Request->new('GET', 'http://ratings.irssi.de/irssirate.pl?&stars='.$stars.'&mode=rate&script='.$script);
my $response = $ua->request($request);
unless ($response->is_success() && $response->content() =~ /You already rated this script/) {
return 1;
} else {
return 0;
}
my $xml = get_scripts();
my $votes = get_rate_url(map { $_->{source} } values %$xml);
my ($sname, $plname, $pname) = get_names($script, $xml);
die "Script $script not found\n" unless $votes->{$plname};
return $votes->{$plname}{u}
}
sub get_ratings {
my ($scripts, $limit) = @_;
my $ua = LWP::UserAgent->new(env_proxy=>1, keep_alive=>1, timeout=>30);
$ua->agent('ScriptAssist/'.2003020803);
my $script = join(',', @{$scripts});
my $request = HTTP::Request->new('GET', 'http://ratings.irssi.de/irssirate.pl?script='.$script.'&sort=rating&limit='.$limit);
my $response = $ua->request($request);
my $xml = get_scripts();
my $votes = get_rate_url(map { $_->{source} } values %$xml);
foreach (keys %{$votes}) {
if ($xml->{$_}) {
$xml->{$_}{votes} = $votes->{$_}{v};
}
}
my %result;
if ($response->is_success()) {
foreach (split /\n/, $response->content()) {
if (/<tr><td><a href=".*?">(.*?)<\/a>/) {
my $entry = $1;
if (/"><\/td><td>([0-9.]+)<\/td><td>(.*?)<\/td><td>/) {
$result{$entry} = [$1, $2];
}
}
if (@{$scripts}) {
foreach (@{$scripts}) {
my ($sname, $plname, $pname) = get_names($_, $xml);
next unless (defined $xml->{$plname} || ( exists $Irssi::Script::{$pname} && exists $Irssi::Script::{$pname}{IRSSI} ));
$result{$plname} = [$xml->{$plname}{votes}];
}
} else {
my @keys = sort { $xml->{$b}{votes} <=> $xml->{$a}{votes}
|| $xml->{$b}{modified} cmp $xml->{$a}{modified} }
grep { !$xml->{$_}{HIDDEN} && $xml->{$_}{votes} ne '' } keys %$xml;
foreach (splice @keys, 0, $limit) {
$result{$_} = [$xml->{$_}{votes}];
}
}
die "No such script found\n" unless keys %result;
return \%result;
}
@ -313,7 +349,7 @@ sub get_new {
my ($num) = @_;
my $result;
my $xml = get_scripts();
foreach (sort {$xml->{$b}{last_modified} cmp $xml->{$a}{last_modified}} keys %$xml) {
foreach (sort {$xml->{$b}{modified} cmp $xml->{$a}{modified}} keys %$xml) {
my %entry = %{ $xml->{$_} };
next if $entry{HIDDEN};
$result->{$_} = \%entry;
@ -427,8 +463,8 @@ sub pipe_input {
print CLIENTCRAP "%R<<%n Something weird happend (no text)";
return();
}
local our $VAR1;
my $incoming = eval($text);
utf8::decode($text);
my $incoming = CPAN::Meta::YAML->read_string($text)->[0];
if ($incoming->{db} && $incoming->{timestamp}) {
$remote_db{db} = $incoming->{db};
$remote_db{timestamp} = $incoming->{timestamp};
@ -598,14 +634,9 @@ sub print_rate {
my (%data) = @_;
my $line;
foreach my $script (sort keys(%data)) {
if ($data{$script}) {
$line .= "%go%n %9".$script."%9 has been rated";
} else {
$line .= "%ro%n %9".$script."%9 : Already rated this script";
call_openurl($data{$script});
}
}
print CLIENTCRAP draw_box('ScriptAssist', $line, 'rating', 1) ;
}
sub print_ratings {
my (%data) = @_;
@ -618,8 +649,7 @@ sub print_ratings {
push @line, "%yo%n";
}
push @line, "%9".$script."%9";
push @line, $data{$script}{rating};
push @line, "[".$data{$script}{votes}." votes]";
push @line, "[".(length $data{$script}{rating} ? $data{$script}{rating} : 'no')." votes]";
push @table, \@line;
}
print CLIENTCRAP draw_box('ScriptAssist', array2table(@table), 'ratings', 1) ;
@ -628,7 +658,7 @@ sub print_ratings {
sub print_new {
my ($list) = @_;
my @table;
foreach (sort {$list->{$b}{last_modified} cmp $list->{$a}{last_modified}} keys %$list) {
foreach (sort {$list->{$b}{modified} cmp $list->{$a}{modified}} keys %$list) {
my @line;
my ($name) = get_names($_);
if (get_local_version($name)) {
@ -637,7 +667,7 @@ sub print_new {
push @line, "%yo%n";
}
push @line, "%9".$name."%9";
push @line, $list->{$_}{last_modified};
push @line, $list->{$_}{modified};
push @table, \@line;
}
print CLIENTCRAP draw_box('ScriptAssist', array2table(@table), 'new scripts', 1) ;
@ -822,7 +852,7 @@ sub contact_author {
sub get_scripts {
my $ua = LWP::UserAgent->new(env_proxy=>1, keep_alive=>1, timeout=>30);
$ua->agent('ScriptAssist/'.2003020803);
$ua->agent('ScriptAssist/'.$VERSION);
$ua->env_proxy();
my @mirrors = split(/ /, Irssi::settings_get_str('scriptassist_script_sources'));
my %sites_db;
@ -846,28 +876,32 @@ sub get_scripts {
}
$fetched = 1;
my $data = $response->content();
my ($src, $type);
my $src = $site;
my $type = '';
if ($site =~ /(.*\/).+\.(.+)/) {
$src = $1;
$type = $2;
}
push @sources, $src;
#my @header = ('name', 'contact', 'authors', 'description', 'version', 'modules', 'last_modified');
#my @header = ('name', 'contact', 'authors', 'description', 'version', 'modules', 'modified');
if ($type eq 'dmp') {
no strict 'vars';
my $new_db = eval "$data";
foreach (keys %$new_db) {
if (defined $sites_db{script}{$_}) {
my $old = $sites_db{$_}{version};
my $new = $new_db->{$_}{version};
die("Support for $type script database has been removed. Please /set scriptassist_script_sources and change $type -> yml.\n");
} elsif ($type eq 'yml') {
utf8::decode($data);
my $new_db = CPAN::Meta::YAML->read_string($data);
foreach (@{$new_db->[0]}) {
my $K = $_->{filename};
if (defined $sites_db{script}{$K}) {
my $old = $sites_db{$K}{version};
my $new = $_->{version};
next if (compare_versions($old, $new) eq 'newer');
}
#foreach my $key (@header) {
foreach my $key (keys %{ $new_db->{$_} }) {
next unless defined $new_db->{$_}{$key};
$sites_db{$_}{$key} = $new_db->{$_}{$key};
foreach my $key (keys %$_) {
next unless defined $_->{$key};
$sites_db{$K}{$key} = $_->{$key};
}
$sites_db{$_}{source} = $src;
$sites_db{$K}{source} = $src;
}
} else {
die("Unknown script database type ($type).\n");
@ -1093,6 +1127,7 @@ sub missing_module {
sub cmd_scripassist {
my ($arg, $server, $witem) = @_;
utf8::decode($arg);
my @args = split(/ /, $arg);
if ($args[0] eq 'help' || $args[0] eq '-h') {
show_help();
@ -1112,9 +1147,9 @@ sub cmd_scripassist {
} elsif ($args[0] eq 'ratings' && defined $args[1]) {
shift @args;
bg_do("ratings ".join(' ', @args));
} elsif ($args[0] eq 'rate' && defined $args[1] && defined $args[2]) {
} elsif ($args[0] eq 'rate' && defined $args[1]) {
shift @args;
bg_do("rate ".join(' ', @args)) if ($args[2] >= 0 && $args[2] < 6);
bg_do("rate ".join(' ', @args));
} elsif ($args[0] eq 'info' && defined $args[1]) {
shift @args;
bg_do("info ".join(' ', @args));
@ -1155,6 +1190,7 @@ sub sig_command_script_load {
sub sig_default_command {
my ($cmd, $server) = @_;
return unless Irssi::settings_get_bool("scriptassist_check_unknown_commands");
return if ($cmd =~ /^\d+$/ && $irssi_version >= v1.2.0 && Irssi::settings_get_bool("window_number_commands"));
bg_do('unknown '.$cmd);
}
@ -1176,7 +1212,7 @@ sub sig_complete {
}
Irssi::settings_add_str($IRSSI{name}, 'scriptassist_script_sources', 'https://scripts.irssi.org/scripts.dmp');
Irssi::settings_add_str($IRSSI{name}, 'scriptassist_script_sources', 'https://scripts.irssi.org/scripts.yml');
Irssi::settings_add_bool($IRSSI{name}, 'scriptassist_cache_sources', 1);
Irssi::settings_add_bool($IRSSI{name}, 'scriptassist_update_verbose', 1);
Irssi::settings_add_bool($IRSSI{name}, 'scriptassist_check_verbose', 1);
@ -1210,11 +1246,11 @@ foreach my $cmd ( ( 'check',
'search',
# '-h',
'help',
# 'ratings',
# 'rate',
'ratings',
'rate',
'info',
# 'echo',
# 'top',
'top',
'cpan',
'autorun',
'new' ) ) {

View File

@ -1,25 +0,0 @@
if BUILD_TEXTUI
TEXTUI=fe-text
endif
if BUILD_IRSSIBOT
BOTUI=fe-none
endif
if BUILD_IRSSIFUZZER
FUZZERUI=fe-fuzz
endif
if HAVE_PERL
PERLDIR=perl
endif
if HAVE_OTR
OTRDIR=otr
endif
pkginc_srcdir=$(pkgincludedir)/src
pkginc_src_HEADERS = \
common.h
SUBDIRS = lib-config core irc fe-common $(PERLDIR) $(OTRDIR) $(TEXTUI) $(BOTUI) $(FUZZERUI)

View File

@ -1,19 +1,17 @@
#ifndef __COMMON_H
#define __COMMON_H
#ifndef IRSSI_COMMON_H
#define IRSSI_COMMON_H
#define IRSSI_DIR_FULL "%s/.irssi" /* %s == g_get_home_dir() */
#define IRSSI_GLOBAL_CONFIG "irssi.conf" /* config file name in /etc/ */
#define IRSSI_HOME_CONFIG "config" /* config file name in ~/.irssi/ */
#define IRSSI_ABI_VERSION 20
#define IRSSI_ABI_VERSION 50
#define DEFAULT_SERVER_ADD_PORT 6667
#define DEFAULT_SERVER_ADD_TLS_PORT 6697
#ifdef HAVE_CONFIG_H
#include "irssi-config.h"
#endif
#include <irssi/irssi-config.h>
#include <stdio.h>
#include <stddef.h>
@ -39,30 +37,20 @@
#include <fcntl.h>
#include <glib.h>
#ifdef HAVE_GMODULE
#include <gmodule.h>
#endif
#if defined (UOFF_T_INT)
typedef unsigned int uoff_t;
#elif defined (UOFF_T_LONG)
typedef unsigned long uoff_t;
#elif defined (UOFF_T_LONG_LONG)
typedef unsigned long long uoff_t;
#else
# error uoff_t size not set
#endif
typedef guint64 uoff_t;
#define PRIuUOFF_T G_GUINT64_FORMAT
/* input functions */
#define G_INPUT_READ (1 << 0)
#define G_INPUT_WRITE (1 << 1)
#define I_INPUT_READ (1 << 0)
#define I_INPUT_WRITE (1 << 1)
typedef void (*GInputFunction) (void *data, GIOChannel *source, int condition);
int g_input_add(GIOChannel *source, int condition,
GInputFunction function, void *data);
int g_input_add_full(GIOChannel *source, int priority, int condition,
GInputFunction function, void *data);
int i_input_add(GIOChannel *source, int condition, GInputFunction function, void *data);
int i_input_add_full(GIOChannel *source, int priority, int condition, GInputFunction function,
void *data);
/* return full path for ~/.irssi */
const char *get_irssi_dir(void);

View File

@ -1,120 +0,0 @@
noinst_LIBRARIES = libcore.a
AM_CPPFLAGS = \
-I$(top_builddir) \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/core \
$(GLIB_CFLAGS) \
-DSYSCONFDIR=\""$(sysconfdir)"\" \
-DMODULEDIR=\""$(libdir)/irssi/modules"\"
if USE_GREGEX
regex_impl=iregex-gregex.c
else
regex_impl=iregex-regexh.c
endif
libcore_a_SOURCES = \
args.c \
channels.c \
channels-setup.c \
commands.c \
chat-commands.c \
chat-protocols.c \
chatnets.c \
core.c \
expandos.c \
ignore.c \
levels.c \
line-split.c \
log.c \
log-away.c \
masks.c \
misc.c \
modules.c \
modules-load.c \
net-disconnect.c \
net-nonblock.c \
net-sendbuffer.c \
network.c \
network-openssl.c \
nicklist.c \
nickmatch-cache.c \
pidwait.c \
queries.c \
rawlog.c \
recode.c \
servers.c \
servers-reconnect.c \
servers-setup.c \
session.c \
settings.c \
signals.c \
special-vars.c \
utf8.c \
$(regex_impl) \
wcwidth.c \
wcwidth-wrapper.c \
tls.c \
write-buffer.c
if HAVE_CAPSICUM
libcore_a_SOURCES += \
capsicum.c
endif
structure_headers = \
channel-rec.h \
channel-setup-rec.h \
chatnet-rec.h \
query-rec.h \
server-rec.h \
server-setup-rec.h \
server-connect-rec.h \
window-item-rec.h
pkginc_coredir=$(pkgincludedir)/src/core
pkginc_core_HEADERS = \
args.h \
capsicum.h \
channels.h \
channels-setup.h \
commands.h \
chat-protocols.h \
chatnets.h \
core.h \
expandos.h \
ignore.h \
levels.h \
line-split.h \
log.h \
masks.h \
misc.h \
module.h \
modules.h \
modules-load.h \
net-disconnect.h \
net-nonblock.h \
net-sendbuffer.h \
network.h \
network-openssl.h \
nick-rec.h \
nicklist.h \
nickmatch-cache.h \
pidwait.h \
queries.h \
rawlog.h \
recode.h \
servers.h \
servers-reconnect.h \
servers-setup.h \
session.h \
settings.h \
signals.h \
special-vars.h \
utf8.h \
iregex.h \
window-item-def.h \
tls.h \
write-buffer.h \
$(structure_headers)

View File

@ -19,7 +19,7 @@
*/
#include "module.h"
#include "args.h"
#include <irssi/src/core/args.h>
static GOptionContext *context = NULL;

View File

@ -1,5 +1,5 @@
#ifndef __ARGS_H
#define __ARGS_H
#ifndef IRSSI_CORE_ARGS_H
#define IRSSI_CORE_ARGS_H
void args_register(GOptionEntry *options);
void args_execute(int argc, char *argv[]);

View File

@ -23,14 +23,14 @@
*/
#include "module.h"
#include "capsicum.h"
#include "commands.h"
#include "log.h"
#include "misc.h"
#include "network.h"
#include "network-openssl.h"
#include "settings.h"
#include "signals.h"
#include <irssi/src/core/capsicum.h>
#include <irssi/src/core/commands.h>
#include <irssi/src/core/log.h>
#include <irssi/src/core/misc.h>
#include <irssi/src/core/network.h>
#include <irssi/src/core/network-openssl.h>
#include <irssi/src/core/settings.h>
#include <irssi/src/core/signals.h>
#include <sys/param.h>
#include <sys/capsicum.h>

View File

@ -1,5 +1,5 @@
#ifndef __CAPSICUM_H
#define __CAPSICUM_H
#ifndef IRSSI_CORE_CAPSICUM_H
#define IRSSI_CORE_CAPSICUM_H
gboolean capsicum_enabled(void);
int capsicum_net_connect_ip(IPADDR *ip, int port, IPADDR *my_ip);
@ -12,4 +12,4 @@ void capsicum_mkdir_with_parents_wrapper(const char *path, int mode);
void capsicum_init(void);
void capsicum_deinit(void);
#endif /* !__CAPSICUM_H */
#endif /* !IRSSI_CORE_CAPSICUM_H */

View File

@ -1,6 +1,6 @@
/* CHANNEL_REC definition, used for inheritance */
#include "window-item-rec.h"
#include <irssi/src/core/window-item-rec.h>
char *topic;
char *topic_by;

View File

@ -19,14 +19,14 @@
*/
#include "module.h"
#include "signals.h"
#include "lib-config/iconfig.h"
#include "settings.h"
#include <irssi/src/core/signals.h>
#include <irssi/src/lib-config/iconfig.h>
#include <irssi/src/core/settings.h>
#include "chat-protocols.h"
#include "chatnets.h"
#include "servers-setup.h"
#include "channels-setup.h"
#include <irssi/src/core/chat-protocols.h>
#include <irssi/src/core/chatnets.h>
#include <irssi/src/core/servers-setup.h>
#include <irssi/src/core/channels-setup.h>
GSList *setupchannels;
@ -34,6 +34,10 @@ static int compare_channel_setup (CONFIG_NODE *node, CHANNEL_SETUP_REC *channel)
{
char *name, *chatnet;
/* skip comment nodes */
if (node->type == NODE_TYPE_COMMENT)
return -1;
name = config_node_get_str(node, "name", NULL);
chatnet = config_node_get_str(node, "chatnet", NULL);
@ -203,9 +207,18 @@ static void channels_read_config(void)
/* Read channels */
node = iconfig_node_traverse("channels", FALSE);
if (node != NULL) {
int i = 0;
tmp = config_node_first(node->value);
for (; tmp != NULL; tmp = config_node_next(tmp))
channel_setup_read(tmp->data);
for (; tmp != NULL; tmp = config_node_next(tmp), i++) {
node = tmp->data;
if (node->type != NODE_TYPE_BLOCK) {
g_critical("Expected block node at `channels[%d]' was of %s type. "
"Corrupt config?",
i, node->type == NODE_TYPE_LIST ? "list" : "scalar");
} else {
channel_setup_read(node);
}
}
}
}
@ -214,8 +227,7 @@ void channels_setup_init(void)
setupchannels = NULL;
source_host_ok = FALSE;
signal_add("setup reread", (SIGNAL_FUNC) channels_read_config);
signal_add("irssi init read settings", (SIGNAL_FUNC) channels_read_config);
signal_add("setup reread channels", (SIGNAL_FUNC) channels_read_config);
}
void channels_setup_deinit(void)
@ -223,6 +235,5 @@ void channels_setup_deinit(void)
while (setupchannels != NULL)
channel_setup_destroy(setupchannels->data);
signal_remove("setup reread", (SIGNAL_FUNC) channels_read_config);
signal_remove("irssi init read settings", (SIGNAL_FUNC) channels_read_config);
signal_remove("setup reread channels", (SIGNAL_FUNC) channels_read_config);
}

View File

@ -1,7 +1,7 @@
#ifndef __CHANNELS_SETUP_H
#define __CHANNELS_SETUP_H
#ifndef IRSSI_CORE_CHANNELS_SETUP_H
#define IRSSI_CORE_CHANNELS_SETUP_H
#include "modules.h"
#include <irssi/src/core/modules.h>
#define CHANNEL_SETUP(server) \
MODULE_CHECK_CAST(server, CHANNEL_SETUP_REC, type, "CHANNEL SETUP")
@ -10,7 +10,7 @@
(CHANNEL_SETUP(server) ? TRUE : FALSE)
struct _CHANNEL_SETUP_REC {
#include "channel-setup-rec.h"
#include <irssi/src/core/channel-setup-rec.h>
};
extern GSList *setupchannels;

View File

@ -19,14 +19,14 @@
*/
#include "module.h"
#include "signals.h"
#include "misc.h"
#include "special-vars.h"
#include <irssi/src/core/signals.h>
#include <irssi/src/core/misc.h>
#include <irssi/src/core/special-vars.h>
#include "servers.h"
#include "channels.h"
#include "channels-setup.h"
#include "nicklist.h"
#include <irssi/src/core/servers.h>
#include <irssi/src/core/channels.h>
#include <irssi/src/core/channels-setup.h>
#include <irssi/src/core/nicklist.h>
GSList *channels; /* List of all channels */
@ -126,8 +126,7 @@ CHANNEL_REC *channel_find(SERVER_REC *server, const char *name)
return channel_find_server(server, name);
/* find from any server */
return gslist_foreach_find(servers,
(FOREACH_FIND_FUNC) channel_find_server,
return i_slist_foreach_find(servers, (FOREACH_FIND_FUNC) channel_find_server,
(void *) name);
}
@ -153,8 +152,7 @@ void channel_change_visible_name(CHANNEL_REC *channel, const char *name)
static CHANNEL_REC *channel_find_servers(GSList *servers, const char *name)
{
return gslist_foreach_find(servers,
(FOREACH_FIND_FUNC) channel_find_server,
return i_slist_foreach_find(servers, (FOREACH_FIND_FUNC) channel_find_server,
(void *) name);
}

View File

@ -1,7 +1,7 @@
#ifndef __CHANNELS_H
#define __CHANNELS_H
#ifndef IRSSI_CORE_CHANNELS_H
#define IRSSI_CORE_CHANNELS_H
#include "modules.h"
#include <irssi/src/core/modules.h>
/* Returns CHANNEL_REC if it's channel, NULL if it isn't. */
#define CHANNEL(channel) \
@ -13,7 +13,7 @@
#define STRUCT_SERVER_REC SERVER_REC
struct _CHANNEL_REC {
#include "channel-rec.h"
#include <irssi/src/core/channel-rec.h>
};
extern GSList *channels;

View File

@ -19,20 +19,20 @@
*/
#include "module.h"
#include "network.h"
#include "signals.h"
#include "commands.h"
#include "special-vars.h"
#include "settings.h"
#include <irssi/src/core/network.h>
#include <irssi/src/core/signals.h>
#include <irssi/src/core/commands.h>
#include <irssi/src/core/special-vars.h>
#include <irssi/src/core/settings.h>
#include "chat-protocols.h"
#include "servers.h"
#include "servers-setup.h"
#include "servers-reconnect.h"
#include "channels.h"
#include "queries.h"
#include "window-item-def.h"
#include "rawlog.h"
#include <irssi/src/core/chat-protocols.h>
#include <irssi/src/core/servers.h>
#include <irssi/src/core/servers-setup.h>
#include <irssi/src/core/servers-reconnect.h>
#include <irssi/src/core/channels.h>
#include <irssi/src/core/queries.h>
#include <irssi/src/core/window-item-def.h>
#include <irssi/src/core/rawlog.h>
static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
char **rawlog_file)
@ -40,7 +40,7 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
CHAT_PROTOCOL_REC *proto;
SERVER_CONNECT_REC *conn;
GHashTable *optlist;
char *addr, *portstr, *password, *nick, *chatnet, *host, *tmp;
char *addr, *portstr, *password, *nick, *chatnet, *host;
void *free_arg;
g_return_val_if_fail(data != NULL, NULL);
@ -71,8 +71,8 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
if (chatnet == NULL)
chatnet = g_hash_table_lookup(optlist, "network");
conn = server_create_conn(proto != NULL ? proto->id : -1, addr,
atoi(portstr), chatnet, password, nick);
conn = server_create_conn_opt(proto != NULL ? proto->id : -1, addr, atoi(portstr), chatnet,
password, nick, optlist);
if (conn == NULL) {
signal_emit("error command", 1,
GINT_TO_POINTER(CMDERR_NO_SERVER_DEFINED));
@ -94,46 +94,7 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
if (strchr(addr, '/') != NULL)
conn->unix_socket = TRUE;
if (g_hash_table_lookup(optlist, "6") != NULL)
conn->family = AF_INET6;
else if (g_hash_table_lookup(optlist, "4") != NULL)
conn->family = AF_INET;
if (g_hash_table_lookup(optlist, "tls") != NULL || g_hash_table_lookup(optlist, "ssl") != NULL)
conn->use_tls = TRUE;
if ((tmp = g_hash_table_lookup(optlist, "tls_cert")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_cert")) != NULL)
conn->tls_cert = g_strdup(tmp);
if ((tmp = g_hash_table_lookup(optlist, "tls_pkey")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_pkey")) != NULL)
conn->tls_pkey = g_strdup(tmp);
if ((tmp = g_hash_table_lookup(optlist, "tls_pass")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_pass")) != NULL)
conn->tls_pass = g_strdup(tmp);
if (g_hash_table_lookup(optlist, "tls_verify") != NULL || g_hash_table_lookup(optlist, "ssl_verify") != NULL)
conn->tls_verify = TRUE;
if ((tmp = g_hash_table_lookup(optlist, "tls_cafile")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_cafile")) != NULL)
conn->tls_cafile = g_strdup(tmp);
if ((tmp = g_hash_table_lookup(optlist, "tls_capath")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_capath")) != NULL)
conn->tls_capath = g_strdup(tmp);
if ((tmp = g_hash_table_lookup(optlist, "tls_ciphers")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_ciphers")) != NULL)
conn->tls_ciphers = g_strdup(tmp);
if ((tmp = g_hash_table_lookup(optlist, "tls_pinned_cert")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_pinned_cert")) != NULL)
conn->tls_pinned_cert = g_strdup(tmp);
if ((tmp = g_hash_table_lookup(optlist, "tls_pinned_pubkey")) != NULL || (tmp = g_hash_table_lookup(optlist, "ssl_pinned_pubkey")) != NULL)
conn->tls_pinned_pubkey = g_strdup(tmp);
if ((conn->tls_capath != NULL && conn->tls_capath[0] != '\0')
|| (conn->tls_cafile != NULL && conn->tls_cafile[0] != '\0'))
conn->tls_verify = TRUE;
if ((conn->tls_cert != NULL && conn->tls_cert[0] != '\0') || conn->tls_verify)
conn->use_tls = TRUE;
if (g_hash_table_lookup(optlist, "!") != NULL)
conn->no_autojoin_channels = TRUE;
if (g_hash_table_lookup(optlist, "noautosendcmd") != NULL)
conn->no_autosendcmd = TRUE;
if (g_hash_table_lookup(optlist, "noproxy") != NULL)
g_free_and_null(conn->proxy);
/* TLS options are handled in server_create_conn_opt ... -> server_setup_fill_optlist */
*rawlog_file = g_strdup(g_hash_table_lookup(optlist, "rawlog"));
@ -149,12 +110,12 @@ static SERVER_CONNECT_REC *get_server_connect(const char *data, int *plus_addr,
return conn;
}
/* SYNTAX: CONNECT [-4 | -6] [-tls] [-tls_cert <cert>] [-tls_pkey <pkey>] [-tls_pass <password>]
/* SYNTAX: CONNECT [-4 | -6] [-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>]
[-!] [-noautosendcmd]
[-noproxy] [-network <network>] [-host <hostname>]
[-rawlog <file>]
[-tls_ciphers <list>] [-tls_pinned_cert <fingerprint>]
[-tls_pinned_pubkey <fingerprint>] [-!] [-noautosendcmd] [-tls | -notls]
[-nocap] [-starttls | -disallow_starttls] [-noproxy]
[-network <network>] [-host <hostname>] [-rawlog <file>]
<address>|<chatnet> [<port> [<password> [<nick>]]] */
/* NOTE: -network replaces the old -ircnet flag. */
static void cmd_connect(const char *data)
@ -252,9 +213,9 @@ static void cmd_server(const char *data, SERVER_REC *server, WI_ITEM_REC *item)
/* SYNTAX: SERVER CONNECT [-4 | -6] [-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>]
[-!] [-noautosendcmd]
[-tls_capath <capath>] [-tls_ciphers <list>]
[-tls_pinned_cert <fingerprint>] [-tls_pinned_pubkey <fingerprint>]
[-!] [-noautosendcmd] [-nocap]
[-noproxy] [-network <network>] [-host <hostname>]
[-rawlog <file>]
[+]<address>|<chatnet> [<port> [<password> [<nick>]]] */
@ -517,7 +478,12 @@ void chat_commands_init(void)
signal_add("server sendmsg", (SIGNAL_FUNC) sig_server_sendmsg);
command_set_options("connect", "4 6 !! -network ssl +ssl_cert +ssl_pkey +ssl_pass ssl_verify +ssl_cafile +ssl_capath +ssl_ciphers +ssl_pinned_cert +ssl_pinned_pubkey tls +tls_cert +tls_pkey +tls_pass tls_verify +tls_cafile +tls_capath +tls_ciphers +tls_pinned_cert +tls_pinned_pubkey +host noproxy -rawlog noautosendcmd");
command_set_options(
"connect",
"4 6 !! -network ~ssl ~+ssl_cert ~+ssl_pkey ~+ssl_pass ~ssl_verify ~+ssl_cafile "
"~+ssl_capath ~+ssl_ciphers ~+ssl_pinned_cert ~+ssl_pinned_pubkey tls notls +tls_cert "
"+tls_pkey +tls_pass tls_verify notls_verify +tls_cafile +tls_capath +tls_ciphers "
"+tls_pinned_cert +tls_pinned_pubkey +host noproxy -rawlog noautosendcmd");
command_set_options("msg", "channel nick");
}

View File

@ -19,14 +19,14 @@
*/
#include "module.h"
#include "modules.h"
#include "signals.h"
#include "chat-protocols.h"
#include <irssi/src/core/modules.h>
#include <irssi/src/core/signals.h>
#include <irssi/src/core/chat-protocols.h>
#include "chatnets.h"
#include "servers.h"
#include "servers-setup.h"
#include "channels-setup.h"
#include <irssi/src/core/chatnets.h>
#include <irssi/src/core/servers.h>
#include <irssi/src/core/servers-setup.h>
#include <irssi/src/core/channels-setup.h>
GSList *chat_protocols;
@ -47,7 +47,7 @@ int chat_protocol_lookup(const char *name)
g_return_val_if_fail(name != NULL, -1);
rec = chat_protocol_find(name);
return rec == NULL ? -1 : rec->id;
return rec == NULL ? -1 : rec->not_initialized ? CHAT_PROTOCOL_NOT_INITIALIZED : rec->id;
}
CHAT_PROTOCOL_REC *chat_protocol_find(const char *name)
@ -99,6 +99,22 @@ CHAT_PROTOCOL_REC *chat_protocol_find_net(GHashTable *optlist)
return NULL;
}
static void chat_protocol_destroy(CHAT_PROTOCOL_REC *rec)
{
g_return_if_fail(rec != NULL);
chat_protocols = g_slist_remove(chat_protocols, rec);
if (default_proto == rec) {
chat_protocol_set_default(chat_protocols == NULL ? NULL : chat_protocols->data);
}
signal_emit("chat protocol destroyed", 1, rec);
g_free(rec->name);
g_free(rec);
}
/* Register new chat protocol. */
CHAT_PROTOCOL_REC *chat_protocol_register(CHAT_PROTOCOL_REC *rec)
{
@ -108,6 +124,10 @@ CHAT_PROTOCOL_REC *chat_protocol_register(CHAT_PROTOCOL_REC *rec)
g_return_val_if_fail(rec != NULL, NULL);
newrec = chat_protocol_find(rec->name);
if (newrec != NULL && newrec->not_initialized) {
chat_protocol_destroy(newrec);
newrec = NULL;
}
created = newrec == NULL;
if (newrec == NULL) {
newrec = g_new0(CHAT_PROTOCOL_REC, 1);
@ -131,23 +151,6 @@ CHAT_PROTOCOL_REC *chat_protocol_register(CHAT_PROTOCOL_REC *rec)
return newrec;
}
static void chat_protocol_destroy(CHAT_PROTOCOL_REC *rec)
{
g_return_if_fail(rec != NULL);
chat_protocols = g_slist_remove(chat_protocols, rec);
if (default_proto == rec) {
chat_protocol_set_default(chat_protocols == NULL ? NULL :
chat_protocols->data);
}
signal_emit("chat protocol destroyed", 1, rec);
g_free(rec->name);
g_free(rec);
}
/* Unregister chat protocol. */
void chat_protocol_unregister(const char *name)
{
@ -191,15 +194,6 @@ static CHANNEL_SETUP_REC *create_channel_setup(void)
return g_new0(CHANNEL_SETUP_REC, 1);
}
static SERVER_CONNECT_REC *create_server_connect(void)
{
return g_new0(SERVER_CONNECT_REC, 1);
}
static void destroy_server_connect(SERVER_CONNECT_REC *conn)
{
}
/* Return "unknown chat protocol" record. Used when protocol name is
specified but it isn't registered yet. */
CHAT_PROTOCOL_REC *chat_protocol_get_unknown(const char *name)
@ -218,8 +212,10 @@ CHAT_PROTOCOL_REC *chat_protocol_get_unknown(const char *name)
rec->create_chatnet = create_chatnet;
rec->create_server_setup = create_server_setup;
rec->create_channel_setup = create_channel_setup;
/*
rec->create_server_connect = create_server_connect;
rec->destroy_server_connect = destroy_server_connect;
*/
newrec = chat_protocol_register(rec);
g_free(rec);

View File

@ -1,5 +1,5 @@
#ifndef __CHAT_PROTOCOLS_H
#define __CHAT_PROTOCOLS_H
#ifndef IRSSI_CORE_CHAT_PROTOCOLS_H
#define IRSSI_CORE_CHAT_PROTOCOLS_H
struct _CHAT_PROTOCOL_REC {
int id;
@ -35,6 +35,8 @@ void *chat_protocol_check_cast(void *object, int type_pos, const char *id);
((object) == NULL ? chat_protocol_get_default() : \
chat_protocol_find_id((object)->chat_type))
#define CHAT_PROTOCOL_NOT_INITIALIZED -2
/* Register new chat protocol. */
CHAT_PROTOCOL_REC *chat_protocol_register(CHAT_PROTOCOL_REC *rec);

View File

@ -19,17 +19,18 @@
*/
#include "module.h"
#include "network.h"
#include "signals.h"
#include "special-vars.h"
#include "lib-config/iconfig.h"
#include "settings.h"
#include <irssi/src/core/network.h>
#include <irssi/src/core/signals.h>
#include <irssi/src/core/special-vars.h>
#include <irssi/src/lib-config/iconfig.h>
#include <irssi/src/core/settings.h>
#include <irssi/src/core/misc.h>
#include "chat-protocols.h"
#include "chatnets.h"
#include "servers.h"
#include <irssi/src/core/chat-protocols.h>
#include <irssi/src/core/chatnets.h>
#include <irssi/src/core/servers.h>
GSList *chatnets; /* list of available chat networks */
GSList *chatnets, *chatnets_unavailable; /* list of available chat networks */
static void chatnet_config_save(CHATNET_REC *chatnet)
{
@ -60,6 +61,7 @@ static void chatnet_config_remove(CHATNET_REC *chatnet)
void chatnet_create(CHATNET_REC *chatnet)
{
g_return_if_fail(chatnet != NULL);
g_return_if_fail(!CHAT_PROTOCOL(chatnet)->not_initialized);
chatnet->type = module_get_uniq_id("CHATNET", 0);
if (g_slist_find(chatnets, chatnet) == NULL)
@ -112,6 +114,21 @@ CHATNET_REC *chatnet_find(const char *name)
return NULL;
}
gboolean chatnet_find_unavailable(const char *name)
{
CHAT_PROTOCOL_REC *proto;
if (i_slist_find_icase_string(chatnets_unavailable, name) != NULL)
return TRUE;
proto = CHAT_PROTOCOL(chatnet_find(name));
if (proto == NULL || proto->not_initialized)
return TRUE;
return FALSE;
}
static void sig_connected(SERVER_REC *server)
{
CHATNET_REC *rec;
@ -136,14 +153,22 @@ static void chatnet_read(CONFIG_NODE *node)
return;
type = config_node_get_str(node, "type", NULL);
proto = type == NULL ? NULL : chat_protocol_find(type);
if (proto == NULL) {
proto = type == NULL ? chat_protocol_get_default() :
chat_protocol_get_unknown(type);
if (type == NULL) {
proto = chat_protocol_get_default();
} else {
proto = chat_protocol_find(type);
}
if (type == NULL)
if (proto == NULL) {
/* protocol not loaded */
if (i_slist_find_icase_string(chatnets_unavailable, node->key) == NULL)
chatnets_unavailable =
g_slist_append(chatnets_unavailable, g_strdup(node->key));
return;
} else if (type == NULL) {
iconfig_node_set_str(node, "type", proto->name);
}
rec = proto->create_chatnet();
rec->type = module_get_uniq_id("CHATNET", 0);
@ -167,6 +192,12 @@ static void read_chatnets(void)
while (chatnets != NULL)
chatnet_destroy(chatnets->data);
while (chatnets_unavailable != NULL) {
char *name = chatnets_unavailable->data;
chatnets_unavailable = g_slist_remove(chatnets_unavailable, name);
g_free(name);
}
node = iconfig_node_traverse("chatnets", FALSE);
if (node != NULL) {
tmp = config_node_first(node->value);
@ -180,8 +211,7 @@ void chatnets_init(void)
chatnets = NULL;
signal_add_first("event connected", (SIGNAL_FUNC) sig_connected);
signal_add("setup reread", (SIGNAL_FUNC) read_chatnets);
signal_add_first("irssi init read settings", (SIGNAL_FUNC) read_chatnets);
signal_add("setup reread chatnets", (SIGNAL_FUNC) read_chatnets);
}
void chatnets_deinit(void)
@ -189,6 +219,5 @@ void chatnets_deinit(void)
module_uniq_destroy("CHATNET");
signal_remove("event connected", (SIGNAL_FUNC) sig_connected);
signal_remove("setup reread", (SIGNAL_FUNC) read_chatnets);
signal_remove("irssi init read settings", (SIGNAL_FUNC) read_chatnets);
signal_remove("setup reread chatnets", (SIGNAL_FUNC) read_chatnets);
}

View File

@ -1,7 +1,7 @@
#ifndef __CHATNETS_H
#define __CHATNETS_H
#ifndef IRSSI_CORE_CHATNETS_H
#define IRSSI_CORE_CHATNETS_H
#include "modules.h"
#include <irssi/src/core/modules.h>
/* Returns CHATNET_REC if it's chatnet, NULL if it isn't. */
#define CHATNET(chatnet) \
@ -11,7 +11,7 @@
(CHATNET(chatnet) ? TRUE : FALSE)
struct _CHATNET_REC {
#include "chatnet-rec.h"
#include <irssi/src/core/chatnet-rec.h>
};
extern GSList *chatnets; /* list of available chat networks */
@ -25,6 +25,8 @@ void chatnet_destroy(CHATNET_REC *chatnet);
/* Find the chat network by name */
CHATNET_REC *chatnet_find(const char *name);
/* Check if this chatnet is unavailable because the protocol is not loaded */
gboolean chatnet_find_unavailable(const char *name);
void chatnets_init(void);
void chatnets_deinit(void);

View File

@ -19,17 +19,17 @@
*/
#include "module.h"
#include "signals.h"
#include "commands.h"
#include "misc.h"
#include "special-vars.h"
#include "window-item-def.h"
#include <irssi/src/core/signals.h>
#include <irssi/src/core/commands.h>
#include <irssi/src/core/misc.h>
#include <irssi/src/core/special-vars.h>
#include <irssi/src/core/window-item-def.h>
#include "servers.h"
#include "channels.h"
#include <irssi/src/core/servers.h>
#include <irssi/src/core/channels.h>
#include "lib-config/iconfig.h"
#include "settings.h"
#include <irssi/src/lib-config/iconfig.h>
#include <irssi/src/core/settings.h>
GSList *commands;
char *current_command;
@ -339,11 +339,28 @@ void command_runsub(const char *cmd, const char *data,
g_free(orig);
}
static char *optname(char *option)
{
char *opt = option;
if (*opt == '~')
opt++;
if (iscmdtype(*opt))
opt++;
return opt;
}
static gboolean optflag(char *option, char *flag)
{
if (*option == '~')
return optflag(option + 1, flag);
return (strchr(flag, *option) != NULL) || (!iscmdtype(*option) && strchr(flag, ' '));
}
static GSList *optlist_find(GSList *optlist, const char *option)
{
while (optlist != NULL) {
char *name = optlist->data;
if (iscmdtype(*name)) name++;
char *name = optname(optlist->data);
if (g_ascii_strcasecmp(name, option) == 0)
return optlist;
@ -369,7 +386,7 @@ int command_have_option(const char *cmd, const char *option)
return FALSE;
for (tmp = rec->options; *tmp != NULL; tmp++) {
char *name = iscmdtype(**tmp) ? (*tmp)+1 : *tmp;
char *name = optname(*tmp);
if (g_ascii_strcasecmp(name, option) == 0)
return TRUE;
@ -399,7 +416,7 @@ static void command_calc_options(COMMAND_REC *rec, const char *options)
/* merge the options */
for (tmp = optlist; *tmp != NULL; tmp++) {
name = iscmdtype(**tmp) ? (*tmp)+1 : *tmp;
name = optname(*tmp);
oldopt = optlist_find(list, name);
if (oldopt != NULL) {
@ -414,7 +431,7 @@ static void command_calc_options(COMMAND_REC *rec, const char *options)
g_strfreev(optlist);
/* linked list -> string[] */
str = gslist_to_string(list, " ");
str = i_slist_to_string(list, " ");
rec->options = g_strsplit(str, " ", -1);
g_free(str);
@ -501,7 +518,7 @@ char *cmd_get_quoted_param(char **data)
while (**data != '\0' && (**data != quote ||
((*data)[1] != ' ' && (*data)[1] != '\0'))) {
if (**data == '\\' && (*data)[1] != '\0')
g_memmove(*data, (*data)+1, strlen(*data));
memmove(*data, (*data)+1, strlen(*data));
(*data)++;
}
@ -529,7 +546,7 @@ static int option_find(char **array, const char *option)
found = -1; index = 0; multiple = FALSE;
for (tmp = array; *tmp != NULL; tmp++, index++) {
const char *text = *tmp + iscmdtype(**tmp);
const char *text = optname(*tmp);
if (g_ascii_strncasecmp(text, option, len) == 0) {
if (text[len] == '\0') {
@ -568,9 +585,9 @@ static int get_cmd_options(char **data, int ignore_unknown,
option = NULL; pos = -1;
for (;;) {
if (**data == '\0' || **data == '-') {
if (option != NULL && *optlist[pos] == '+') {
if (option != NULL && optflag(optlist[pos], "+")) {
/* required argument missing! */
*data = optlist[pos] + 1;
*data = optname(optlist[pos]);
return CMDERR_OPTION_ARG_MISSING;
}
}
@ -621,14 +638,12 @@ static int get_cmd_options(char **data, int ignore_unknown,
if (pos >= 0) {
/* if we used a shortcut of parameter, put
the whole parameter name in options table */
option = optlist[pos] +
iscmdtype(*optlist[pos]);
option = optname(optlist[pos]);
}
if (options != NULL && pos != -3)
g_hash_table_insert(options, option, "");
if (pos < 0 || !iscmdtype(*optlist[pos]) ||
*optlist[pos] == '!')
if (pos < 0 || optflag(optlist[pos], " !"))
option = NULL;
while (**data == ' ') (*data)++;
@ -638,7 +653,7 @@ static int get_cmd_options(char **data, int ignore_unknown,
if (option == NULL)
break;
if (*optlist[pos] == '@' && !is_numeric(*data, ' '))
if (optflag(optlist[pos], "@") && !is_numeric(*data, ' '))
break; /* expected a numeric argument */
/* save the argument */
@ -725,8 +740,7 @@ int cmd_get_params(const char *data, gpointer *free_me, int count, ...)
opthash = (GHashTable **) va_arg(args, GHashTable **);
rec->options = *opthash =
g_hash_table_new((GHashFunc) g_istr_hash,
(GCompareFunc) g_istr_equal);
g_hash_table_new((GHashFunc) i_istr_hash, (GCompareFunc) i_istr_equal);
ignore_unknown = count & PARAM_FLAG_UNKNOWN_OPTIONS;
error = get_cmd_options(&datad, ignore_unknown,
@ -817,7 +831,7 @@ void commands_remove_module(const char *module)
COMMAND_REC *rec = tmp->data;
next = tmp->next;
modlist = gslist_find_string(rec->modules, module);
modlist = i_slist_find_string(rec->modules, module);
if (modlist != NULL)
command_module_unbind_all(rec, modlist->data);
}
@ -851,8 +865,7 @@ static int cmd_protocol_match(COMMAND_REC *cmd, SERVER_REC *server)
#define alias_runstack_pop(alias) \
alias_runstack = g_slist_remove(alias_runstack, alias)
#define alias_runstack_find(alias) \
(gslist_find_icase_string(alias_runstack, alias) != NULL)
#define alias_runstack_find(alias) (i_slist_find_icase_string(alias_runstack, alias) != NULL)
static void parse_command(const char *command, int expand_aliases,
SERVER_REC *server, void *item)

View File

@ -1,7 +1,7 @@
#ifndef __COMMANDS_H
#define __COMMANDS_H
#ifndef IRSSI_CORE_COMMANDS_H
#define IRSSI_CORE_COMMANDS_H
#include "signals.h"
#include <irssi/src/core/signals.h>
typedef struct {
SIGNAL_FUNC func;

View File

@ -21,33 +21,35 @@
#include "module.h"
#include <signal.h>
#include "args.h"
#include "pidwait.h"
#include "misc.h"
#include <irssi/src/core/args.h>
#include <irssi/src/core/pidwait.h>
#include <irssi/src/core/misc.h>
#include "net-disconnect.h"
#include "signals.h"
#include "settings.h"
#include "session.h"
#include <irssi/src/core/net-disconnect.h>
#include <irssi/src/core/signals.h>
#include <irssi/src/core/settings.h>
#include <irssi/src/core/session.h>
#ifdef HAVE_CAPSICUM
#include "capsicum.h"
#include <irssi/src/core/capsicum.h>
#endif
#include "chat-protocols.h"
#include "servers.h"
#include "chatnets.h"
#include "commands.h"
#include "expandos.h"
#include "write-buffer.h"
#include "log.h"
#include "rawlog.h"
#include "ignore.h"
#include "recode.h"
#include <irssi/src/core/chat-protocols.h>
#include <irssi/src/core/chatnets.h>
#include <irssi/src/core/commands.h>
#include <irssi/src/core/expandos.h>
#include <irssi/src/core/ignore.h>
#include <irssi/src/core/log.h>
#include <irssi/src/core/rawlog.h>
#include <irssi/src/core/recode.h>
#include <irssi/src/core/refstrings.h>
#include <irssi/src/core/servers.h>
#include <irssi/src/core/special-vars.h>
#include <irssi/src/core/write-buffer.h>
#include "channels.h"
#include "queries.h"
#include "nicklist.h"
#include "nickmatch-cache.h"
#include <irssi/src/core/channels.h>
#include <irssi/src/core/queries.h>
#include <irssi/src/core/nicklist.h>
#include <irssi/src/core/nickmatch-cache.h>
#ifdef HAVE_SYS_RESOURCE_H
# include <sys/resource.h>
@ -65,7 +67,8 @@ void wcwidth_wrapper_deinit(void);
int irssi_gui;
int irssi_init_finished;
int reload_config;
int sighup_received;
int sigterm_received;
time_t client_start_time;
static char *irssi_dir, *irssi_config_file;
@ -82,9 +85,14 @@ const char *get_irssi_config(void)
return irssi_config_file;
}
static void sig_reload_config(int signo)
static void sig_hup(int signo)
{
reload_config = TRUE;
sighup_received = TRUE;
}
static void sig_term(int signo)
{
sigterm_received = TRUE;
}
static void read_settings(void)
@ -107,13 +115,19 @@ static void read_settings(void)
sigemptyset (&act.sa_mask);
act.sa_flags = 0;
/* reload config on SIGHUP */
act.sa_handler = sig_reload_config;
act.sa_handler = sig_hup;
sigaction(SIGHUP, &act, NULL);
for (n = 0; n < sizeof(signals)/sizeof(signals[0]); n++) {
act.sa_handler = find_substr(ignores, signames[n]) ?
SIG_IGN : SIG_DFL;
if (find_substr(ignores, signames[n])) {
act.sa_handler = SIG_IGN;
} else {
/* set default handlers */
if (signals[n] == SIGTERM)
act.sa_handler = sig_term;
else
act.sa_handler = SIG_DFL;
}
sigaction(signals[n], &act, NULL);
}
@ -222,6 +236,13 @@ static void sig_irssi_init_finished(void)
irssi_init_finished = TRUE;
}
static void reread_setup(void)
{
signal_emit("setup reread chatnets", 0);
signal_emit("setup reread servers", 0);
signal_emit("setup reread channels", 0);
}
void core_init(void)
{
dialog_type_queue = NULL;
@ -261,16 +282,23 @@ void core_init(void)
nicklist_init();
chat_commands_init();
i_refstr_init();
special_vars_init();
wcwidth_wrapper_init();
settings_add_str("misc", "ignore_signals", "");
settings_add_bool("misc", "override_coredump_limit", FALSE);
settings_add_bool("misc", "quit_on_hup", FALSE);
settings_add_str("misc", "autoload_modules", "irc dcc flood notifylist perl otr");
#ifdef HAVE_SYS_RESOURCE_H
getrlimit(RLIMIT_CORE, &orig_core_rlimit);
#endif
read_settings();
signal_add("setup changed", (SIGNAL_FUNC) read_settings);
signal_add("setup reread", (SIGNAL_FUNC) reread_setup);
signal_add("irssi init read settings", (SIGNAL_FUNC) reread_setup);
signal_add_last("chat protocol created", (SIGNAL_FUNC) reread_setup);
signal_add("irssi init finished", (SIGNAL_FUNC) sig_irssi_init_finished);
settings_check();
@ -283,9 +311,14 @@ void core_deinit(void)
module_uniq_destroy("WINDOW ITEM TYPE");
signal_remove("setup changed", (SIGNAL_FUNC) read_settings);
signal_remove("setup reread", (SIGNAL_FUNC) reread_setup);
signal_remove("irssi init read settings", (SIGNAL_FUNC) reread_setup);
signal_remove("chat protocol created", (SIGNAL_FUNC) reread_setup);
signal_remove("irssi init finished", (SIGNAL_FUNC) sig_irssi_init_finished);
wcwidth_wrapper_deinit();
special_vars_deinit();
i_refstr_deinit();
chat_commands_deinit();
nicklist_deinit();

View File

@ -1,7 +1,7 @@
#ifndef __IRSSI_CORE_H
#define __IRSSI_CORE_H
#ifndef IRSSI_CORE_CORE_H
#define IRSSI_CORE_CORE_H
#include "common.h"
#include <irssi/src/common.h>
/* for determining what GUI is currently in use: */
#define IRSSI_GUI_NONE 0
@ -13,7 +13,8 @@
extern int irssi_gui;
extern int irssi_init_finished; /* TRUE after "irssi init finished" signal is sent */
extern int reload_config; /* TRUE after received SIGHUP. */
extern int sighup_received; /* TRUE after received SIGHUP. */
extern int sigterm_received; /* TRUE after received SIGTERM. */
extern time_t client_start_time;
void core_preinit(const char *path);

View File

@ -18,20 +18,20 @@
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "core.h"
#include <irssi/src/core/core.h>
#include "module.h"
#include "modules.h"
#include "signals.h"
#include "expandos.h"
#include "settings.h"
#include "commands.h"
#include "misc.h"
#include "irssi-version.h"
#include <irssi/src/core/modules.h>
#include <irssi/src/core/signals.h>
#include <irssi/src/core/expandos.h>
#include <irssi/src/core/settings.h>
#include <irssi/src/core/commands.h>
#include <irssi/src/core/misc.h>
#include <irssi/irssi-version.h>
#include "servers.h"
#include "channels.h"
#include "queries.h"
#include "window-item-def.h"
#include <irssi/src/core/servers.h>
#include <irssi/src/core/channels.h>
#include <irssi/src/core/queries.h>
#include <irssi/src/core/window-item-def.h>
#ifdef HAVE_SYS_UTSNAME_H
# include <sys/utsname.h>
@ -48,6 +48,8 @@ typedef struct {
} EXPANDO_REC;
const char *current_expando = NULL;
time_t reference_time = (time_t) -1;
time_t current_time = (time_t)-1;
static int timer_tag;
@ -58,6 +60,7 @@ static char *last_privmsg_from, *last_public_from;
static char *sysname, *sysrelease, *sysarch;
static char *timestamp_format;
static char *timestamp_format_alt;
static int timestamp_seconds;
static time_t last_timestamp;
@ -440,11 +443,23 @@ static char *expando_time(SERVER_REC *server, void *item, int *free_ret)
time_t now;
struct tm *tm;
char str[256];
char *format;
now = time(NULL);
now = current_time != (time_t) -1 ? current_time : time(NULL);
tm = localtime(&now);
format = timestamp_format;
if (strftime(str, sizeof(str), timestamp_format, tm) == 0)
if (reference_time != (time_t) -1) {
time_t ref = reference_time;
struct tm tm_ref;
if (localtime_r(&ref, &tm_ref)) {
if (tm_ref.tm_yday != tm->tm_yday || tm_ref.tm_year != tm->tm_year) {
format = timestamp_format_alt;
}
}
}
if (strftime(str, sizeof(str), format, tm) == 0)
return "";
*free_ret = TRUE;
@ -575,7 +590,9 @@ static int sig_timer(void)
static void read_settings(void)
{
g_free_not_null(timestamp_format);
g_free_not_null(timestamp_format_alt);
timestamp_format = g_strdup(settings_get_str("timestamp_format"));
timestamp_format_alt = g_strdup(settings_get_str("timestamp_format_alt"));
timestamp_seconds =
strstr(timestamp_format, "%r") != NULL ||
@ -593,6 +610,7 @@ void expandos_init(void)
#endif
settings_add_str("misc", "STATUS_OPER", "*");
settings_add_str("lookandfeel", "timestamp_format", "%H:%M");
settings_add_str("lookandfeel", "timestamp_format_alt", "%a %e %b %H:%M");
settings_add_bool("lookandfeel", "chanmode_expando_strip", FALSE);
last_sent_msg = NULL; last_sent_msg_body = NULL;
@ -729,6 +747,7 @@ void expandos_deinit(void)
g_free_not_null(sysrelease);
g_free_not_null(sysarch);
g_free_not_null(timestamp_format);
g_free_not_null(timestamp_format_alt);
g_source_remove(timer_tag);
signal_remove("message public", (SIGNAL_FUNC) sig_message_public);

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