Mercurial > hg > octave-lyh
comparison scripts/io/textscan.m @ 12679:f38cf6224452 stable
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.
author | Philip Nienhuis <prnienhuis@users.sf.net> |
---|---|
date | Sun, 15 May 2011 19:15:50 -0700 |
parents | d0b799dafede |
children | fe6e2afcd9ee |
comparison
equal
deleted
inserted
replaced
12677:bedd0cdb3584 | 12679:f38cf6224452 |
---|---|
79 str = fid; | 79 str = fid; |
80 else | 80 else |
81 ## Maybe skip header lines | 81 ## Maybe skip header lines |
82 headerlines = find (strcmpi (args, "headerlines"), 1); | 82 headerlines = find (strcmpi (args, "headerlines"), 1); |
83 if (! isempty (headerlines)) | 83 if (! isempty (headerlines)) |
84 fskipl (fid, headerlines); | 84 hdr_lines = floor (varargin{headerlines + 1}); |
85 args(headerlines:headerlines+1) = []; | 85 ## Beware of zero valued headerline, fskipl will count lines to EOF |
86 if (hdr_lines > 0) | |
87 fskipl (fid, hdr_lines); | |
88 endif | |
86 endif | 89 endif |
87 if (isfinite (nlines)) | 90 if (isfinite (nlines)) |
88 str = ""; | 91 str = ""; |
89 for n = 1:nlines | 92 for n = 1:nlines |
90 str = strcat (str, fgets (fid)); | 93 str = strcat (str, fgets (fid)); |