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 - [email protected] + +- 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 <[email protected]> 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 <[email protected]> ## 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
