From 6ec74edc131d70ac2711709bc34c9617356e368e Mon Sep 17 00:00:00 2001 From: Aldis Berjoza Date: Wed, 21 Oct 2015 11:48:54 +0300 Subject: [PATCH 1/2] Fix 'invalid multibyte escape' error --- lib/vpim/rfc2425.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/vpim/rfc2425.rb b/lib/vpim/rfc2425.rb index f2a6150..8bdbd1f 100644 --- a/lib/vpim/rfc2425.rb +++ b/lib/vpim/rfc2425.rb @@ -291,7 +291,7 @@ def Vpim.decode_text_list(value, sep = ',') # :nodoc: # quoted-string = DQUOTE *QSAFE-CHAR DQUOTE def Vpim.encode_paramtext(value) case value - when %r{\A#{Bnf::SAFECHAR}*\z} + when %r{\A#{Bnf::SAFECHAR}*\z}n value else raise Vpim::Unencodeable, "paramtext #{value.inspect}" @@ -300,9 +300,9 @@ def Vpim.encode_paramtext(value) def Vpim.encode_paramvalue(value) case value - when %r{\A#{Bnf::SAFECHAR}*\z} + when %r{\A#{Bnf::SAFECHAR}*\z}n value - when %r{\A#{Bnf::QSAFECHAR}*\z} + when %r{\A#{Bnf::QSAFECHAR}*\z}n '"' + value + '"' else raise Vpim::Unencodeable, "param-value #{value.inspect}" From 39c5a583faa2a75fcc0574f9936b60fcee7e8a26 Mon Sep 17 00:00:00 2001 From: Aldis Berjoza Date: Mon, 26 Oct 2015 11:48:19 +0200 Subject: [PATCH 2/2] Fix UTF-8 string comparison with binary string error --- lib/vpim/rfc2425.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/vpim/rfc2425.rb b/lib/vpim/rfc2425.rb index 8bdbd1f..9fa1be7 100644 --- a/lib/vpim/rfc2425.rb +++ b/lib/vpim/rfc2425.rb @@ -290,7 +290,8 @@ def Vpim.decode_text_list(value, sep = ',') # :nodoc: # paramtext = *SAFE-CHAR # quoted-string = DQUOTE *QSAFE-CHAR DQUOTE def Vpim.encode_paramtext(value) - case value + bin_value = value.dup.force_encoding('ASCII-8BIT') + case bin_value when %r{\A#{Bnf::SAFECHAR}*\z}n value else @@ -299,7 +300,8 @@ def Vpim.encode_paramtext(value) end def Vpim.encode_paramvalue(value) - case value + bin_value = value.dup.force_encoding('ASCII-8BIT') + case bin_value when %r{\A#{Bnf::SAFECHAR}*\z}n value when %r{\A#{Bnf::QSAFECHAR}*\z}n