]> git.pld-linux.org Git - packages/php-pear-Spreadsheet_Excel_Writer.git/commitdiff
- rel 3; utf8 fixes auto/th/php-pear-Spreadsheet_Excel_Writer-0.9.3-3
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Wed, 18 Jun 2014 09:03:06 +0000 (11:03 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Wed, 18 Jun 2014 09:03:06 +0000 (11:03 +0200)
php-pear-Spreadsheet_Excel_Writer-git.patch [new file with mode: 0644]
php-pear-Spreadsheet_Excel_Writer.spec

diff --git a/php-pear-Spreadsheet_Excel_Writer-git.patch b/php-pear-Spreadsheet_Excel_Writer-git.patch
new file mode 100644 (file)
index 0000000..93dd608
--- /dev/null
@@ -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);
+           }
+     }
index 2ffbe67c620159620b2889b5e9bb30176a01cf4d..e5a133b0e7bf121acb861a285f08836321e52757 100644 (file)
@@ -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
This page took 0.095018 seconds and 4 git commands to generate.