Problem: Debug printtext(NULL, NULL, ...) was sending debug messages
to status window, which caused crashes when status window tried to
format timestamps for debug messages.
Root cause: Status window environment/context different from chat windows,
causing crashes in expando_time() -> getenv() during timestamp formatting.
Solution: Use printtext_window() to send debug to current dest->window
or active_win instead of status window.
This prevents crashes when debugging nick formatting while focus is
on status window or when sending debug to inappropriate window contexts.
Timestamp: 2025-01-25 02:32
Previous fix only avoided the symptom by using printf() instead of printtext().
Real problem: format_get_text_theme_charargs() was applying nick formatting
to ALL formats including timestamps, causing recursion when timestamp
formatting called back into format_get_text_theme_charargs().
Proper solution:
1. Restrict nick formatting to actual message formats only
2. Add formatting_depth counter to prevent recursion
3. Only apply formatting when formatting_depth == 0
This prevents the root cause of recursion rather than just avoiding
the debug output symptom.
Timestamp: 2025-01-25 01:25
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
- Add missing '_' (underscore) and '|' (pipe) to count_nick_chars()
- Now matches isnickchar definition from fe-messages.c
- Fixes issue where nicks like 'big_Fat_boy' weren't truncated properly
- Nick counting now includes: alphanumeric + `-_[]{}|\^
Test case: 'big_Fat_boy' (11 chars) should now be truncated to 'big_Fat_b>>'
with width=10
Timestamp: 2025-01-25 00:08
- Add expando_nicktrunc() that returns truncated nick with >> indicator
- Keep expando_nickalign() for padding only (no nick modification)
- Update theme to use $nicktrunc instead of $0 for nick display
- Fix logic: nickalign returns spaces, nicktrunc returns truncated nick
- This resolves issue where long nicks weren't being truncated
Timestamp: 2025-01-24 23:50
- Zmiana incdir z 'irssi' na 'irssip' w meson.build
- Zmiana nazwy binarja z 'irssi' na 'irssip'
- Zmiana katalogu config z ~/.irssi na ~/.irssip
- Aktualizacja wszystkich include paths z <irssi/> na <irssip/>
- Przywrócenie nazw plików źródłowych do oryginalnych 'irssi*'
Teraz może być instalowane w /opt/irssip bez konfliktów z systemowym irssi:
- Binarka: /opt/irssip/bin/irssip
- Konfiguracja: ~/.irssip/
- Moduły Perl: /opt/irssip/lib/irssip/perl/Irssi.pm
- Separacja modułów: systemowy irssi nie znajdzie naszych modułów w @INC
Introduces left and right sidepanels to the text UI, including new source files, theme formats, and main window layout logic. Adds mouse support, activity-based coloring, and dynamic panel reservation. Updates build scripts and headers to support the new feature.
This commit removes the `const` qualifier from certain member fields,
as the Darwin version of several `<term.h>` related functions only
accept a `char *` rather than a `const char *`, thereby resulting in
dozens of compiler warnings.
HOST_NOT_FOUND is a gethostbyname(3) error condition rather than a
getaddrinfo(3) error condition and cannot be passed to net_gethosterror
as documented as it calls gai_strerror(3). EAI_NONAME is the appropriate
similar error condition as standardized by POSIX for getaddrinfo(3).