[freeside-commits] branch master updated. faf4866cd552cc40045fd048ac77ea8f2bece2d3

Mitch Jackson mitch at freeside.biz
Wed Feb 28 18:51:44 PST 2018


The branch, master has been updated
       via  faf4866cd552cc40045fd048ac77ea8f2bece2d3 (commit)
      from  6635b3ee826a8dcd8755c4a1277f3ae268889f1e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit faf4866cd552cc40045fd048ac77ea8f2bece2d3
Author: Mitch Jackson <mitch at freeside.biz>
Date:   Wed Jan 24 00:43:57 2018 -0600

    RT# 77144 replace bytes_substr with Unicode::Truncate

diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm
index 669c44e70..d84aaced5 100644
--- a/FS/FS/Misc.pm
+++ b/FS/FS/Misc.pm
@@ -22,7 +22,6 @@ use Encode;
                  generate_ps generate_pdf do_print
                  csv_from_fixed
                  ocr_image
-                 bytes_substr
                  money_pretty
                );
 
@@ -982,23 +981,26 @@ sub ocr_image {
 
 =item bytes_substr STRING, OFFSET[, LENGTH[, REPLACEMENT] ]
 
+DEPRECATED
+  Use Unicode::Truncate truncate_egc instead
+
 A replacement for "substr" that counts raw bytes rather than logical 
 characters. Unlike "bytes::substr", will suppress fragmented UTF-8 characters
 rather than output them. Unlike real "substr", is not an lvalue.
 
 =cut
 
-sub bytes_substr {
-  my ($string, $offset, $length, $repl) = @_;
-  my $bytes = substr(
-    Encode::encode('utf8', $string),
-    $offset,
-    $length,
-    Encode::encode('utf8', $repl)
-  );
-  my $chk = $DEBUG ? Encode::FB_WARN : Encode::FB_QUIET;
-  return Encode::decode('utf8', $bytes, $chk);
-}
+# sub bytes_substr {
+#   my ($string, $offset, $length, $repl) = @_;
+#   my $bytes = substr(
+#     Encode::encode('utf8', $string),
+#     $offset,
+#     $length,
+#     Encode::encode('utf8', $repl)
+#   );
+#   my $chk = $DEBUG ? Encode::FB_WARN : Encode::FB_QUIET;
+#   return Encode::decode('utf8', $bytes, $chk);
+# }
 
 =item money_pretty
 
diff --git a/FS/FS/pay_batch/paymentech.pm b/FS/FS/pay_batch/paymentech.pm
index 3cf3134ff..bb2c2588d 100644
--- a/FS/FS/pay_batch/paymentech.pm
+++ b/FS/FS/pay_batch/paymentech.pm
@@ -8,7 +8,7 @@ use Date::Format 'time2str';
 use Date::Parse 'str2time';
 use Tie::IxHash;
 use FS::Conf;
-use FS::Misc 'bytes_substr';
+use Unicode::Truncate 'truncate_egc';
 
 my $conf;
 my ($bin, $merchantID, $terminalID, $username, $password, $with_recurringInd);
@@ -131,12 +131,14 @@ my %paymentech_countries = map { $_ => 1 } qw( US CA GB UK );
           ecpBankAcctType => $paytype{lc($_->paytype)},
           ecpDelvMethod   => 'A',
         ),
-        avsZip          => bytes_substr($_->zip,      0, 10),
-        avsAddress1     => bytes_substr($_->address1, 0, 30),
-        avsAddress2     => bytes_substr($_->address2, 0, 30),
-        avsCity         => bytes_substr($_->city,     0, 20),
-        avsState        => bytes_substr($_->state,    0, 2),
-        avsName         => bytes_substr($_->first. ' '. $_->last, 0, 30),
+                           # truncate_egc will die() on empty string
+        avsZip      => $_->zip      ? truncate_egc($_->zip,      10) : undef,
+        avsAddress1 => $_->address1 ? truncate_egc($_->address1, 30) : undef,
+        avsAddress2 => $_->address2 ? truncate_egc($_->address2, 30) : undef,
+        avsCity     => $_->city     ? truncate_egc($_->city,     20) : undef,
+        avsState    => $_->state    ? truncate_egc($_->state,     2) : undef,
+        avsName     => ($_->first || $_->last)
+                       ? truncate_egc($_->first. ' '. $_->last, 30) : undef,
         ( $paymentech_countries{ $_->country }
           ? ( avsCountryCode  => $_->country )
           : ()
diff --git a/debian/control b/debian/control
index 2391f73f7..2ec36892f 100644
--- a/debian/control
+++ b/debian/control
@@ -101,7 +101,7 @@ Depends: aspell-en,gnupg,ghostscript,gsfonts,gzip,latex-xcolor,
  libmap-splat-perl, libdatetime-format-ical-perl, librest-client-perl,
  libgeo-streetaddress-us-perl, libbusiness-onlinepayment-perl,
  libnet-vitelity-perl (>= 0.05), libnet-sslglue-perl, libexpect-perl,
- libspreadsheet-parsexlsx-perl
+ libspreadsheet-parsexlsx-perl, libunicode-truncate-perl (>= 0.303-1)
 Conflicts: libparams-classify-perl (>= 0.013-6)
 Replaces: freeside (<<4)
 Breaks: freeside (<<4)

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/Misc.pm                 | 26 ++++++++++++++------------
 FS/FS/pay_batch/paymentech.pm | 16 +++++++++-------
 debian/control                |  2 +-
 3 files changed, 24 insertions(+), 20 deletions(-)




More information about the freeside-commits mailing list