3
0
mirror of https://github.com/pragma-/pbot.git synced 2024-10-03 01:48:38 +02:00

Interpreter: fix truncated text with multiple nicks

dehighlight_nicks() was being invoked after truncate_result(), therefore
inserting \x200b zero-width space Unicode characters AFTER the message
was truncated.

Solution: moved dehighlight_nicks() to immediately preceding truncate_result().
This commit is contained in:
Pragmatic Software 2021-08-24 20:27:12 -07:00
parent b7ce503a8d
commit d9a9ef0cc0
2 changed files with 10 additions and 9 deletions

View File

@ -730,6 +730,11 @@ sub handle_result {
last; last;
} }
# insert null-width spaces into nicknames to prevent IRC clients
# from unncessarily highlighting people
$line = $self->dehighlight_nicks($line, $context->{from});
# truncate if necessary, pasting original result to a web paste site
$line = $self->truncate_result($context, $line, $original_result); $line = $self->truncate_result($context, $line, $original_result);
if ($use_output_queue) { if ($use_output_queue) {
@ -806,7 +811,9 @@ sub truncate_result {
# make room to append the truncation text to the message text # make room to append the truncation text to the message text
# (third argument to truncate_egc is '' to prevent appending its own ellipsis) # (third argument to truncate_egc is '' to prevent appending its own ellipsis)
my $trunc_len = length $text < $max_msg_len ? length $text : $max_msg_len; my $text_len = length $text;
my $trunc_len = $text_len < $max_msg_len ? $text_len : $max_msg_len;
$text = truncate_egc $text, $trunc_len - length $trunc, ''; $text = truncate_egc $text, $trunc_len - length $trunc, '';
# append the truncation text # append the truncation text
@ -862,12 +869,6 @@ sub output_result {
# nothing more to do here if the command came from STDIN # nothing more to do here if the command came from STDIN
return if $context->{from} eq 'stdin@pbot'; return if $context->{from} eq 'stdin@pbot';
# insert null-width spaces into nicknames to prevent IRC clients
# from unncessarily highlighting people
if ($context->{from} =~ /^#/ and $output !~ /^\/msg\s+/i) {
$output = $self->dehighlight_nicks($output, $context->{from});
}
my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick'); my $botnick = $self->{pbot}->{registry}->get_value('irc', 'botnick');
my $to = $context->{from}; my $to = $context->{from};

View File

@ -25,8 +25,8 @@ use PBot::Imports;
# These are set by the /misc/update_version script # These are set by the /misc/update_version script
use constant { use constant {
BUILD_NAME => "PBot", BUILD_NAME => "PBot",
BUILD_REVISION => 4365, BUILD_REVISION => 4366,
BUILD_DATE => "2021-08-23", BUILD_DATE => "2021-08-24",
}; };
sub initialize {} sub initialize {}