From e786fbdfb17aac5ca19cbf1646e44b6009f02c60 Mon Sep 17 00:00:00 2001 From: xhe Date: Mon, 23 Jan 2017 21:47:58 +0800 Subject: desktop-notify.pl: process non-ascii msgs irssi-1.0.0 bug found by jimgrape, patched by xhebox. https://github.com/irssi/scripts.irssi.org/issues/334--- scripts/desktop-notify.pl | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'scripts') diff --git a/scripts/desktop-notify.pl b/scripts/desktop-notify.pl index da25b8c..97c3012 100644 --- a/scripts/desktop-notify.pl +++ b/scripts/desktop-notify.pl @@ -24,6 +24,7 @@ use strict; use Irssi; use HTML::Entities; use Glib::Object::Introspection; # Ignore 'late INIT' warning message if autoloading +use Encode; our $VERSION = '1.0.0'; our %IRSSI = ( @@ -38,6 +39,7 @@ our %IRSSI = ( # List of standard icons can be found here: # http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html#names my $notify_icon; +my $term_charset; my $help = ' /set notify_icon @@ -60,6 +62,7 @@ sub UNLOAD { sub setup_changed { $notify_icon = Irssi::settings_get_str('notify_icon'); + $term_charset = Irssi::settings_get_str('term_charset'); } sub priv_msg { @@ -71,9 +74,9 @@ sub priv_msg { return; } - my $msg = HTML::Entities::encode_entities(Irssi::strip_codes($msg)); + my $msg = HTML::Entities::encode_entities(Irssi::strip_codes($msg), "\<>&'"); my $network = $server->{tag}; - my $noti = Notify::Notification->new($nick . '@' . $network, $msg, $notify_icon); + my $noti = Notify::Notification->new($nick . '@' . $network, decode($term_charset, $msg), $notify_icon); $noti->show(); } @@ -94,8 +97,8 @@ sub hilight { } my $network = $server->{tag}; - my $msg = HTML::Entities::encode_entities($stripped); - my $noti = Notify::Notification->new($dest->{target} . '@' . $network, $msg, $notify_icon); + my $msg = HTML::Entities::encode_entities($stripped, "\'<>&"); + my $noti = Notify::Notification->new($dest->{target} . '@' . $network, decode($term_charset, $msg), $notify_icon); $noti->show(); } -- cgit v1.2.3