[freeside-commits] branch FREESIDE_3_BRANCH updated. ad94da6a8b46ba0cb915a69307810c8a5bcf6749

Mitch Jackson mitch at freeside.biz
Sun Nov 4 12:51:13 PST 2018


The branch, FREESIDE_3_BRANCH has been updated
       via  ad94da6a8b46ba0cb915a69307810c8a5bcf6749 (commit)
      from  ac50269d081f6490705d103186e5b89baac58930 (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 ad94da6a8b46ba0cb915a69307810c8a5bcf6749
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 66b3dda59..5eb304ad9 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
                );
 
@@ -1007,23 +1006,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 7ddaff258..96a05f003 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);
@@ -127,12 +127,14 @@ my %paymentech_countries = map { $_ => 1 } qw( US CA GB UK );
           ecpBankAcctType => $paytype{lc($_->cust_main->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 8e92bf6d7..2d463db88 100644
--- a/debian/control
+++ b/debian/control
@@ -90,7 +90,8 @@ Depends: aspell-en,gnupg,ghostscript,gsfonts,gzip,latex-xcolor,
  libxml-writer-perl, libio-socket-ssl-perl,
  libmap-splat-perl, libdatetime-format-ical-perl, librest-client-perl,
  libbusiness-onlinepayment-perl,
- libnet-vitelity-perl (>= 0.05), libnet-sslglue-perl, libexpect-perl
+ libnet-vitelity-perl (>= 0.05), libnet-sslglue-perl, libexpect-perl,
+ libunicode-truncate-perl (>= 0.303-1)
 Suggests: libbusiness-onlinepayment-perl
 Description: Libraries for Freeside billing and trouble ticketing
  Freeside is a web-based billing and trouble ticketing application.

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

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




More information about the freeside-commits mailing list