irssi/config_dev
kofany 0a40fac215 CRITICAL FIX: Resolve infinite recursion causing segfault
Problem: Debug printtext() in format_get_text_theme_charargs() caused infinite recursion:
1. format_get_text_theme_charargs() calls printtext() for debug
2. printtext() formats timestamp calling textbuffer_line_get_text()
3. textbuffer_line_get_text() calls format_get_text_theme_charargs() again
4. Infinite recursion → stack overflow → segfault

Solution: Replace printtext() with printf() in format debug to avoid recursion

Stack trace showed 100+ recursive calls to format_get_text_theme_charargs()
This explains segfaults during highlights when focus was on status window.

Timestamp: 2025-01-25 01:15
2025-08-25 02:12:26 +02:00

351 lines
8.5 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

servers = (
{ address = "irc.dal.net"; chatnet = "DALnet"; port = "6667"; },
{
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 = "irc.libera.chat";
chatnet = "liberachat";
port = "6697";
use_tls = "yes";
tls_verify = "yes";
},
{
address = "irc.gamesurge.net";
chatnet = "GameSurge";
port = "6667";
},
{
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"; },
{
address = "irc.oftc.net";
chatnet = "OFTC";
port = "6697";
use_tls = "yes";
tls_verify = "yes";
},
{
address = "irc.quakenet.org";
chatnet = "QuakeNet";
port = "6667";
},
{
address = "irc.rizon.net";
chatnet = "Rizon";
port = "6697";
use_tls = "yes";
tls_verify = "yes";
},
{ address = "silc.silcnet.org"; chatnet = "SILC"; port = "706"; },
{
address = "irc.undernet.org";
chatnet = "Undernet";
port = "6667";
}
);
chatnets = {
DALnet = {
type = "IRC";
max_kicks = "4";
max_msgs = "20";
max_whois = "30";
};
EFNet = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
EsperNet = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
liberachat = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
GameSurge = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
IRCnet = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
IRCSource = {
type = "IRC";
max_kicks = "1";
max_msgs = "4";
max_whois = "1";
};
NetFuze = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
OFTC = { type = "IRC"; max_kicks = "1"; max_msgs = "1"; max_whois = "1"; };
QuakeNet = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
Rizon = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
SILC = { type = "SILC"; };
Undernet = {
type = "IRC";
max_kicks = "1";
max_msgs = "1";
max_whois = "1";
};
};
channels = (
{ name = "#lobby"; chatnet = "EsperNet"; 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"; },
{ name = "#netfuze"; chatnet = "NetFuze"; autojoin = "No"; },
{ name = "#oftc"; chatnet = "OFTC"; autojoin = "No"; },
{ name = "silc"; chatnet = "SILC"; autojoin = "No"; }
);
aliases = {
ATAG = "WINDOW SERVER";
ADDALLCHANS = "SCRIPT EXEC foreach my \\$channel (Irssi::channels()) { Irssi::command(\"CHANNEL ADD -auto \\$channel->{visible_name} \\$channel->{server}->{tag} \\$channel->{key}\")\\;}";
B = "BAN";
BACK = "AWAY";
BANS = "BAN";
BYE = "QUIT";
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";
DHL = "DEHILIGHT";
EXEMPTLIST = "MODE $C +e";
EXIT = "QUIT";
GOTO = "SCROLLBACK GOTO";
HIGHLIGHT = "HILIGHT";
HL = "HILIGHT";
HOST = "USERHOST";
INVITELIST = "MODE $C +I";
J = "JOIN";
K = "KICK";
KB = "KICKBAN";
KN = "KNOCKOUT";
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";
RUN = "SCRIPT LOAD";
SAY = "MSG *";
SB = "SCROLLBACK";
SBAR = "STATUSBAR";
SHELP = "QUOTE HELP";
SIGNOFF = "QUIT";
SV = "MSG * Irssi $J ($V) - https://irssi.org";
T = "TOPIC";
UB = "UNBAN";
UMODE = "MODE $N";
UNSET = "SET -clear";
W = "WHO";
WC = "WINDOW CLOSE";
WG = "WINDOW GOTO";
WJOIN = "JOIN -window";
WI = "WHOIS";
WII = "WHOIS $0 $0";
WL = "WINDOW LIST";
WN = "WINDOW NEW HIDDEN";
WQUERY = "QUERY -window";
WW = "WHOWAS";
};
statusbar = {
items = {
barstart = "{sbstart}";
barend = "{sbend}";
topicbarstart = "{topicsbstart}";
topicbarend = "{topicsbend}";
time = "{sb %B$Z%n%W❱ %G⚡%n Connected: %G%W$tag%n %W>%B>%C> %WNexus %G<%B<%W<%W}";
user = "{sb %WU%wser ⇋ %B$cumode%w$N%W : ➜ %WS%wtatus {sbmode (%C+$usermode%n)}}";
window = "%W ➜ %n{sbmode %WC%whannel (%C+$M%n%W) %B ➜ %WW%window: %G$winref }{sbaway $A}%W %n";
window_empty = "{sb $winref{sbservertag $tag}}";
prompt = "%B⚡%N %k%B$itemname%k%N%C:%N ";
prompt_empty = "%k%B$winname%k%N ";
topic = "%WTopic%C:%W $topic";
topic_empty = " Irssi v$J - https://irssi.org";
lag = "{sb ⇉ %WL%wagging ⇋ %W: %R$0- }";
act = "{sb %WActive Windows%C: $0-}";
more = "%C-- %Wmore %C--";
};
default = {
window = {
type = "window";
placement = "bottom";
position = "0";
visible = "active";
items = {
barstart = { priority = "100"; };
time = { priority = "10"; };
more = { priority = "-1"; alignment = "right"; };
barend = { priority = "100"; alignment = "right"; };
};
disabled = "yes";
};
prompt = {
type = "root";
placement = "bottom";
position = "100";
visible = "active";
items = {
prompt = { priority = "-1"; };
prompt_empty = { priority = "-1"; };
input = { priority = "10"; };
};
};
topic = {
type = "root";
placement = "top";
position = "1";
visible = "always";
items = {
topicbarstart = { priority = "100"; };
topic = { };
topic_empty = { };
topicbarend = { priority = "100"; alignment = "right"; };
};
};
info1 = {
items = { user = { }; window = { }; };
position = "10";
placement = "bottom";
};
info2 = {
items = { time = { }; more = { }; act = { }; lag = { }; };
position = "0";
};
add = { disabled = "yes"; };
window1 = { disabled = "yes"; };
};
};
settings = {
core = {
nick = "irssip_user";
hostname = "0.0.0.0";
timestamp_format = "%H:%M:%S";
override_coredump_limit = "no";
resolve_prefer_ipv6 = "no";
server_reconnect_time = "300";
recode_out_default_charset = "utf8";
recode_autodetect_utf8 = "yes";
recode_fallback = "ISO-8859-2";
recode_transliterate = "yes";
recode = "yes";
real_name = "Irssip User";
user_name = "irssip";
};
"irc/core" = {
lag_check_time = "5s";
ctcp_version_reply = "";
skip_motd = "no";
lag_max_before_disconnect = "300";
cmds_max_at_once = "10";
};
"fe-common/core" = {
activity_hide_level = "KICK MODE TOPIC NICK QUIT CLIENTNOTICE CLIENTCRAP SNOTICE JOIN PART CRAP";
timestamps = "yes";
timestamp_level = "ALL";
hilight_color = "%M";
autolog = "yes";
autolog_path = "~/.irssip/logs/$tag/$0.log";
term_charset = "UTF-8";
use_status_window = "no";
hilight_nick_matches = "yes";
hilight_nick_matches_everywhere = "yes";
window_auto_change = "yes";
print_active_channel = "yes";
theme = "default.theme";
nick_column_enabled = "yes";
nick_column_width = "10";
debug_nick_column = "yes";
};
"fe-text" = {
lag_min_show = "1s";
scrollback_lines = "2000";
paste_verify_line_count = "2";
term_force_colors = "no";
colors = "yes";
actlist_sort = "refnum";
colors_ansi_24bit = "yes";
};
lookandfeel = {
sidepanel_left = "yes";
sidepanel_right = "yes";
sidepanel_left_width = "20";
sidepanel_right_width = "16";
sidepanel_debug = "no";
sidepanel_right_auto_hide = "yes";
};
"fe-common/irc" = { print_whois_rpl_in_active_window = "yes"; };
};
hilights = ( { text = ""; nick = "yes"; word = "yes"; } );
logs = { };
ignores = ( );
# Set default window name to Notices
windows = { 1 = { name = "Notices"; }; };