# HG changeset patch # User Philip Nienhuis # Date 1305512150 25200 # Node ID f38cf62244521cc8f93cd1de616be045db174580 # Parent bedd0cdb3584fb0f2b70bb552a2cc4c5b1d06758 Fix textscan/textread headerlines arg always skipping 2 lines (bug #33028) * textread.m, textscan.m: Fix wrong headerline argument being fed to fskipl. Check & avoid processing zero headerline values. diff -r bedd0cdb3584 -r f38cf6224452 scripts/io/textread.m --- a/scripts/io/textread.m Sun May 15 15:27:22 2011 -0700 +++ b/scripts/io/textread.m Sun May 15 19:15:50 2011 -0700 @@ -54,7 +54,11 @@ ## Maybe skip header lines headerlines = find (strcmpi (varargin, "headerlines"), 1); if (! isempty (headerlines)) - fskipl (fid, headerlines); + hdr_lines = floor (varargin{headerlines + 1}); + ## Beware of zero valued headerline, fskipl will count lines to EOF then + if (hdr_lines > 0) + fskipl (fid, hdr_lines); + endif varargin(headerlines:headerlines+1) = []; endif diff -r bedd0cdb3584 -r f38cf6224452 scripts/io/textscan.m --- a/scripts/io/textscan.m Sun May 15 15:27:22 2011 -0700 +++ b/scripts/io/textscan.m Sun May 15 19:15:50 2011 -0700 @@ -81,8 +81,11 @@ ## Maybe skip header lines headerlines = find (strcmpi (args, "headerlines"), 1); if (! isempty (headerlines)) - fskipl (fid, headerlines); - args(headerlines:headerlines+1) = []; + hdr_lines = floor (varargin{headerlines + 1}); + ## Beware of zero valued headerline, fskipl will count lines to EOF + if (hdr_lines > 0) + fskipl (fid, hdr_lines); + endif endif if (isfinite (nlines)) str = "";