Hello community,
here is the log from the commit of package octave-forge-io for openSUSE:Factory checked in at 2015-06-23 12:00:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/octave-forge-io (Old)
and /work/SRC/openSUSE:Factory/.octave-forge-io.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "octave-forge-io"
Changes:
--------
--- /work/SRC/openSUSE:Factory/octave-forge-io/octave-forge-io.changes 2015-06-16 15:12:05.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.octave-forge-io.new/octave-forge-io.changes 2015-06-23 12:00:59.000000000 +0200
@@ -1,0 +2,6 @@
+Mon Jun 22 19:46:25 UTC 2015 - dmitry_r@opensuse.org
+
+- Update to version 2.2.8
+ * Bug fixes
+
+-------------------------------------------------------------------
Old:
----
io-2.2.7.tar.gz
New:
----
io-2.2.8.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ octave-forge-io.spec ++++++
--- /var/tmp/diff_new_pack.AOrB6t/_old 2015-06-23 12:00:59.000000000 +0200
+++ /var/tmp/diff_new_pack.AOrB6t/_new 2015-06-23 12:00:59.000000000 +0200
@@ -18,7 +18,7 @@
%define octpkg io
Name: octave-forge-%{octpkg}
-Version: 2.2.7
+Version: 2.2.8
Release: 0
Summary: Input/Output in external formats from Octave
License: GPL-3.0+ and BSD-2-Clause
++++++ io-2.2.7.tar.gz -> io-2.2.8.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/io/DESCRIPTION new/io/DESCRIPTION
--- old/io/DESCRIPTION 2015-03-07 15:07:51.000000000 +0100
+++ new/io/DESCRIPTION 2015-06-19 14:38:19.000000000 +0200
@@ -1,13 +1,13 @@
Name: io
-Version: 2.2.7
-Date: 2015-03-07
+Version: 2.2.8
+Date: 2015-06-21
Author: various authors
Maintainer: Philip Nienhuis
Title: Input/Output
Description: Input/Output in external formats.
Categories: IO
Problems: Default initial Java memory probably too small, increase with java.opts (see documentation). No OXS write support. UNO support experimental.
-Depends: octave (>= 3.8.0)
+Depends: octave (>= 3.8.0), Octave (< 4.2.0)
Suggested: windows (>= 1.2.1)
Autoload: no
License: GPLv3+, simplified BSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/io/NEWS new/io/NEWS
--- old/io/NEWS 2015-03-07 22:20:16.000000000 +0100
+++ new/io/NEWS 2015-06-19 14:41:03.000000000 +0200
@@ -1,6 +1,23 @@
Summary of important user-visible changes for releases of the io package
===============================================================================
+io-2.2.8 Release Date: 2015-06-21 Release Manager: Philip Nienhuis
+===============================================================================
+
+*** Bug fixes:
+ - xlsread: properly fall back to dlmread when reading .csv files (don't
+ bother with COM (Excel) or UNO (LibreOffice) interfaces)
+ - private/__COM_spsh_open__.m: use entire given pathname to convert to
+ full path, not just filename proper (bug #44642)
+ - Same for private/__UNO_spsh_open__.m
+ - xlsread.m/xls2oct.m using OCT interface: fix wrong worksheet reference
+ (bug #45303)
+
+*** This will be (one of) the last io package release(s) before the spreadsheet
+ I/O is moved into core Octave, so this version will only install in
+ Octave < 4.2.x (override using the -nodeps option with pkg.m)
+
+===============================================================================
io-2.2.7 Release Date: 2015-03-07 Release Manager: Philip Nienhuis
===============================================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/io/inst/private/__COM_spsh_open__.m new/io/inst/private/__COM_spsh_open__.m
--- old/io/inst/private/__COM_spsh_open__.m 2014-11-14 16:05:46.000000000 +0100
+++ new/io/inst/private/__COM_spsh_open__.m 2015-03-29 15:01:10.000000000 +0200
@@ -1,4 +1,4 @@
-## Copyright (C) 2012,2013,2014 Philip Nienhuis
+## Copyright (C) 2012-2015 Philip Nienhuis
##
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -19,18 +19,21 @@
## Author: Philip Nienhuis
## Created: 2012-10-07
## Updates (possibly from xlsopen):
-## 2010-11-01 Added <COM>.Application.DisplayAlerts=0 in COM section to avoid Excel pop-ups
+## 2010-11-01 Added <COM>.Application.DisplayAlerts=0 in COM section to avoid
+## Excel pop-ups
## 2012-10-24 Style fixes
## 2012-12-01 Copyright string updates
## 2014-05-20 Catch changed behavior of canonicalize_file_name in 3.9.0+
## replace by make_absolute_filename
+## 2015-03-29 Use make_absolute_filename on entire give path, not filename
+## proper (bug #44642)
function [ xls, xlssupport, lastintf ] = __COM_spsh_open__ (xls, xwrite, filename, xlssupport)
app = actxserver ("Excel.Application");
try ## Because Excel itself can still crash on file formats etc.
app.Application.DisplayAlerts = 0;
- filename = make_absolute_filename (strsplit (filename, filesep){end});
+ filename = make_absolute_filename (filename);
if (xwrite < 2)
## Open workbook
wb = app.Workbooks.Open (filename);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/io/inst/private/__OCT_xlsx2oct__.m new/io/inst/private/__OCT_xlsx2oct__.m
--- old/io/inst/private/__OCT_xlsx2oct__.m 2015-03-07 14:27:50.000000000 +0100
+++ new/io/inst/private/__OCT_xlsx2oct__.m 2015-06-19 13:48:36.000000000 +0200
@@ -76,7 +76,7 @@
if (isempty (id))
error ("xls2oct: cannot find sheet '%s' in file %s", wsh, xls.filename);
else
- wsh = xls.sheets.sheetid(id);
+ wsh = id;
endif
# endif
elseif (wsh > numel (xls.sheets.sh_names))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/io/inst/private/__UNO_spsh_open__.m new/io/inst/private/__UNO_spsh_open__.m
--- old/io/inst/private/__UNO_spsh_open__.m 2015-03-07 17:37:29.000000000 +0100
+++ new/io/inst/private/__UNO_spsh_open__.m 2015-03-29 15:15:56.000000000 +0200
@@ -46,13 +46,13 @@
## drive(-letters) so until it is (ever) fixed we'll fall back on
## canonicalize_file_name() there.
if (ispc)
- fname = canonicalize_file_name (strsplit (filename, filesep){end});
+ fname = canonicalize_file_name (filename);
if (isempty (fname))
## File doesn't exist yet? try make_absolute_filename()
- fname = make_absolute_filename (strsplit (filename, filesep){end});
+ fname = make_absolute_filename (filename);
endif
else
- fname = make_absolute_filename (strsplit (filename, filesep){end});
+ fname = make_absolute_filename (filename);
endif
## On Windows, change backslash file separator into forward slash
if (strcmp (filesep, "\\"))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/io/inst/xlsopen.m new/io/inst/xlsopen.m
--- old/io/inst/xlsopen.m 2015-03-06 23:23:57.000000000 +0100
+++ new/io/inst/xlsopen.m 2015-04-24 22:29:05.000000000 +0200
@@ -147,6 +147,8 @@
## '' Clarify message about missing I/O support with file extension
## 2015-03-06 Clarify some error messages, replace usage() with error
## '' Be silent when creating new file
+## 2015-04-24 Depending on supported interfaces, use .xls or .xlsx (OOXML)
+## if no suffix was specified
function [ xls ] = xlsopen (filename, xwrite=0, reqinterface=[])
@@ -265,9 +267,10 @@
if (xwrite)
fmode = 'r+b';
if (! has_suffix)
- ## Add .xls suffix to filename (all Excel versions can write this)
+ ## Provisionally add .xls suffix to filename (most used format)
filename = [filename ".xls"];
ext = ".xls";
+ ftype = 1
endif
else
fmode = 'rb';
@@ -307,6 +310,15 @@
## Check for the various Excel interfaces. No problem if they've already
## been checked, getxlsinterfaces (far below) just returns immediately then.
xlsinterfaces = getxlsinterfaces (xlsinterfaces);
+
+ ## If no external interface was detected and no suffix was given, use .xlsx
+ if (! has_suffix && ! (xlsinterfaces.COM + xlsinterfaces.POI + ...
+ xlsinterfaces.JXL + xlsinterfaces.OXS + ...
+ xlsinterfaces.UNO))
+ ## Just add 'x' - .xls was already added higher up
+ filename = [filename "x"];
+ ftype = 2;
+ endif
## Initialize file ptr struct
xls = struct ("xtype", 'NONE',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/io/inst/xlsread.m new/io/inst/xlsread.m
--- old/io/inst/xlsread.m 2015-03-06 22:26:18.000000000 +0100
+++ new/io/inst/xlsread.m 2015-03-13 22:55:54.000000000 +0100
@@ -163,6 +163,8 @@
## 2014-04-15 More updates to texinfo header
## 2014-04-26 Fixed error messages (no traceback)
## 2015-03-06 Texinfo header update
+## 2015-03-13 Overhaul & fix csvread logic. Move unwind_protect block so that
+## it's logic cannot be interrupted by a return stmt
function [ numarr, txtarr, rawarr, lims ] = xlsread (fn, wsh, datrange, reqintf=[])
@@ -195,43 +197,50 @@
printf ("(BASIC (BIFF5) support request translated to JXL)\n");
endif
- ## Checks done. Get raw data into cell array "rawarr". xlsopen finds out
- ## what interface to use. If none found, just return as xlsopen will complain enough
-
- unwind_protect # Needed to catch COM errors & able to close stray Excel invocations
- ## Get pointer array to Excel file
- xls_ok = 0;
- xls = xlsopen (fn, 0, reqintf);
- if (! isempty (xls))
- xls_ok = 1;
+ ## Checks done. First check for .csv as that doesn't need xlsopen etc;
+ ## a convenience for lazy Matlab users (see bugs #40993 & #44511):
+ [~, ~, ext] = fileparts (fn);
+ if strcmpi (ext, ".csv")
+ if (isempty (datrange))
+ numarr = dlmread (fn, ",");
else
- ## Convenience for scripts from lazy Matlab users (see bug #40993):
- [~, ~, ext] = fileparts (fn);
- if strcmpi (fn, ".csv")
- numarr = csvread (fn, 1, datrange);
- endif
- return
+ numarr = dlmread (fn, ",", datrange);
endif
+ txtarr = rawarr = lims = [];
+ return
- ## Get data from Excel file & return handle
- [rawarr, xls, rstatus] = xls2oct (xls, wsh, datrange);
+ else
+ ## Get raw data into cell array "rawarr". xlsopen finds out what interface
+ ## to use. If none found, just return as xlsopen will complain enough.
+ unwind_protect ## Needed to catch COM errors & able to close stray Excel
+ ## invocations
+ ## Get pointer array to spreadsheet file
+ xls_ok = 0;
+ xls = xlsopen (fn, 0, reqintf);
+ if (! isempty (xls))
+ xls_ok = 1;
+ endif
- ## Save some results before xls is wiped
- rawlimits = xls.limits;
- xtype = xls.xtype;
+ ## Get data from spreadsheet file & return handle
+ [rawarr, xls, rstatus] = xls2oct (xls, wsh, datrange);
- if (rstatus)
- [numarr, txtarr, lims] = parsecell (rawarr, rawlimits);
- else
- rawarr = {}; numarr = []; txtarr = {};
- endif
+ ## Save some results before xls is wiped
+ rawlimits = xls.limits;
+ xtype = xls.xtype;
+
+ if (rstatus)
+ [numarr, txtarr, lims] = parsecell (rawarr, rawlimits);
+ else
+ rawarr = {}; numarr = []; txtarr = {};
+ endif
- unwind_protect_cleanup
- ## Close Excel file
- if (xls_ok)
- xls = xlsclose (xls);
- endif
+ unwind_protect_cleanup
+ ## Close Excel file
+ if (xls_ok)
+ xls = xlsclose (xls);
+ endif
- end_unwind_protect
+ end_unwind_protect
+ endif
endfunction