[packages/php-pear-Spreadsheet_Excel_Writer] - rel 3; utf8 fixes

arekm arekm at pld-linux.org
Wed Jun 18 11:03:09 CEST 2014


commit d0cb882de7a99d9b36f75c5e7575845985f95b94
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Wed Jun 18 11:03:06 2014 +0200

    - rel 3; utf8 fixes

 php-pear-Spreadsheet_Excel_Writer-git.patch | 46 +++++++++++++++++++++++++++++
 php-pear-Spreadsheet_Excel_Writer.spec      |  4 ++-
 2 files changed, 49 insertions(+), 1 deletion(-)
---
diff --git a/php-pear-Spreadsheet_Excel_Writer.spec b/php-pear-Spreadsheet_Excel_Writer.spec
index 2ffbe67..e5a133b 100644
--- a/php-pear-Spreadsheet_Excel_Writer.spec
+++ b/php-pear-Spreadsheet_Excel_Writer.spec
@@ -5,11 +5,12 @@ Summary:	%{_pearname} - package for generating Excel spreadsheets
 Summary(pl.UTF-8):	%{_pearname} - pakiet generujący arkusze Excela
 Name:		php-pear-%{_pearname}
 Version:	0.9.3
-Release:	2
+Release:	3
 License:	LGPL
 Group:		Development/Languages/PHP
 Source0:	http://pear.php.net/get/%{_pearname}-%{version}.tgz
 # Source0-md5:	a1c353beb819fa4b7146f5325625774b
+Patch0:		%{name}-git.patch
 URL:		http://pear.php.net/package/Spreadsheet_Excel_Writer/
 BuildRequires:	php-pear-PEAR >= 1:1.4.0-0.b1
 BuildRequires:	rpm-php-pearprov >= 4.4.2-11
@@ -42,6 +43,7 @@ Ta klasa ma w PEAR status: %{_status}.
 
 %prep
 %pear_package_setup
+%patch0 -p1
 
 %install
 rm -rf $RPM_BUILD_ROOT
diff --git a/php-pear-Spreadsheet_Excel_Writer-git.patch b/php-pear-Spreadsheet_Excel_Writer-git.patch
new file mode 100644
index 0000000..93dd608
--- /dev/null
+++ b/php-pear-Spreadsheet_Excel_Writer-git.patch
@@ -0,0 +1,46 @@
+diff -urN Spreadsheet_Excel_Writer-0.9.3.org/Spreadsheet/Excel/Writer/Worksheet.php Spreadsheet_Excel_Writer-0.9.3/Spreadsheet/Excel/Writer/Worksheet.php
+--- Spreadsheet_Excel_Writer-0.9.3.org/Spreadsheet/Excel/Writer/Worksheet.php	2012-01-26 03:12:56.000000000 +0100
++++ Spreadsheet_Excel_Writer-0.9.3/Spreadsheet/Excel/Writer/Worksheet.php	2014-06-18 10:55:21.000000000 +0200
+@@ -1629,20 +1629,25 @@
+     */
+     function writeStringBIFF8($row, $col, $str, $format = null)
+     {
++        // If the string is Unicode and contains any "surrogate pairs" then using mb_strlen($str, 'UTF-16LE')
++        // as the string length will cause a "found unreadable content" error when opening the worksheet in Excel
++        // (apparently the length is expected to be the number of 16-bit code points, not the number of characters).
++        // Instead, always use the byte length divided by two for Unicode strings, and if mb_strlen() exists use
++        // mb_strlen($str, '8bit') just in case mbstring.func_overload is set to overload strlen().
+         if ($this->_input_encoding == 'UTF-16LE')
+         {
+-            $strlen = function_exists('mb_strlen') ? mb_strlen($str, 'UTF-16LE') : (strlen($str) / 2);
++            $strlen = (function_exists('mb_strlen') ? mb_strlen($str, '8bit') : strlen($str)) / 2;
+             $encoding  = 0x1;
+         }
+         elseif ($this->_input_encoding != '')
+         {
+             $str = iconv($this->_input_encoding, 'UTF-16LE', $str);
+-            $strlen = function_exists('mb_strlen') ? mb_strlen($str, 'UTF-16LE') : (strlen($str) / 2);
++            $strlen = (function_exists('mb_strlen') ? mb_strlen($str, '8bit') : strlen($str)) / 2;
+             $encoding  = 0x1;
+         }
+         else
+         {
+-            $strlen    = strlen($str);
++            $strlen    = function_exists('mb_strlen') ? mb_strlen($str, '8bit') : strlen($str);
+             $encoding  = 0x0;
+         }
+         $record    = 0x00FD;                   // Record identifier
+@@ -2484,10 +2489,10 @@
+             $length   = 2 + count($ranges) * 8; 
+             $header   = pack('vv', $record, $length);
+             $data     = pack('v',  count($ranges));
+-            foreach($ranges as $range) 
++            foreach ($ranges as $range) 
+               $data .= pack('vvvv', $range[0], $range[2], $range[1], $range[3]);
+-            $string=$header.$data;
+-            $this->_append(&$string, true);
++            $string = $header.$data;
++            $this->_append($string, true);
+           }
+     }
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/php-pear-Spreadsheet_Excel_Writer.git/commitdiff/d0cb882de7a99d9b36f75c5e7575845985f95b94



More information about the pld-cvs-commit mailing list