Age | Commit message (Collapse) | Author |
|
|
|
|
|
Revert "Merge pull request #452 from LemonBoy/terminfo-cup"
|
|
Fix indentation; no functional changes.
|
|
(Take two.)
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
|
|
Fixes #733. The fix outlined in #452 had adverse effects for the
following reason. The code removed the restoration path that would go on
the code path from kill SIGTSTP. The problem is this: When Irssi is not
running in a controlling parent (like a shell), the TSTP will in fact be
ignored. In that case, there is no process sending a CONT either and
thus the screen state never gets restored. Luckily, the patch in #457 is
sufficient to prevent the problem in #450 (which lead to the development
of #452). To that end, we do end up with potentially calling
terminfo_cont twice but that is better than not calling it at all.
This reverts commit b1ffd5f6472584aa3966746da9728c5afefcc4ce, reversing
changes made to 9cb0419435d1ad331c1f55361a003d9682fae9a8.
|
|
|
|
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
|
|
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
|
|
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
|
|
Signed-off-by: Edward Tomasz Napierala <trasz@FreeBSD.org>
|
|
Setting sasl_mechanism to '' disables the auth
|
|
There was no easy way for the user to disable the SASL authentication or
to clear the username/password once the network was created.
Closes #718
|
|
Correct GHashTable usage
See merge request !16
|
|
Check return value of localtime
See merge request !15
|
|
|
|
Enable UTF8 in GRegex
|
|
Fixes #10
|
|
parse_time_interval: Allow negative time in settings
|
|
Escape nicks during nick completion when expand_escapes is enabled
|
|
Allow -port <num> or irc.host.tld <num> in /server add
|
|
term-terminfo: Avoid switching out of alt screen on unexpected exits
|
|
|
|
Fixes #693
|
|
|
|
|
|
This splits sign parsing out of parse_time_interval_uint() so that the
negative sign is applied outside of the unsigned context where the
number parsing is done, and after all the checks that it's lower than
(1 << 31)
This fixes issues with settings like `server_reconnect_time`,
`server_connect_timeout` and `lag_max_before_disconnect`, which accepted
-1 as a valid value.
|
|
Perl sucks and kills the whole process when there's a version mismatch
in Perl_xs_handshake(). Our atexit handler catches the exit and
deinitializes the terminal, removing the error.
This commit uses the 'quitting' global variable which is set when irssi
is voluntarily quitting, and avoids sending TI_rmcup, which restores the
original screen and makes the error invisible.
|
|
Performance improvements for /lastlog
|
|
fe-dcc-(get|send): Fix some -Wpointer-compare with newer gcc
|
|
This avoids the use of g_list_find() to find if a match was already
added to the list of results, by checking the last two added matches
instead.
Checking just the last match isn't enough because a NULL match is added
as a separator (shown as -- in the UI)
|
|
This applies to "/lastlog" with no filters (or with filters that don't
filter a lot) and with large amounts of text in the scrollback.
Test case:
/exec seq 1 500000
/lastlog -file log.txt
Thanks to morning for reporting this.
|
|
The warning itself:
>warning: comparison between pointer and zero character constant [-Wpointer-compare]
Harmless stuff as far as I can tell.
The fix adds a null check that probably isn't needed. The old code that
compared against '\0' worked a lot like a null check so it makes sense
to keep that, while also adding the intended check for empty string.
This was visible with "/dcc close send a" showing an empty filename.
The equivalent for get didn't show the filename in the format string.
|
|
|
|
|
|
add 2 comments about new_string
|
|
make helper functions static
|
|
|
|
|
|
|
|
- with non-unicode byte to Private Use Area A mapping
- move all ifdefs to iregex.h file only
|
|
Add parse_uint function to improve integer overflow handling
|
|
|
|
Fix dcc_request where addr is NULL
See merge request !13
|
|
|
|
We can use continue to handle cases such as:
"ab<space><space>c"
|
|
fixes #710
|
|
Originally found by oss-fuzz (issue 525) in get_ansi_color using ubsan.
After a lot of analysis I'm 99% sure this isn't security relevant so
it's fine to handle this publicly.
The fix is mainly adding a function that does it right and use it
everywhere. This is harder than it seems because the strtol() family of
functions doesn't have the friendliest of interfaces.
Aside from get_ansi_color(), there were other pieces of code that used
the same (out*10+(*in-'0')) pattern, like the parse_size() and
parse_time_interval() functions, which are mostly used for settings.
Those are interesting cases, since they multiply the parsed number
(resulting in more overflows) and they write to a signed integer
parameter (which can accidentally make the uints negative without UB)
Thanks to Pascal Cuoq for enlightening me about the undefined behavior
of parse_size (and, in particular, the implementation-defined behavior
of one of the WIP versions of this commit, where something like signed
integer overflow happened, but it was legal). Also for writing
tis-interpreter, which is better than ubsan to verify these things.
|
|
|
|
Added support for -notls and -notls_verify
|