From bug-octave-request at bevo dot che dot wisc dot edu Tue Dec 31 16:09:46 2002 Subject: Bugs with strings, fread function From: James Frye To: bug-octave at bevo dot che dot wisc dot edu Date: Tue, 31 Dec 2002 15:55:11 -0600 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime at docserver dot cac dot washington dot edu for more info. ---559023410-959030623-1041371708=:22974 Content-Type: TEXT/PLAIN; charset=US-ASCII Problem with string arguments; Problem with fread function. The attached files demonstrate two cases where octave does not appear compatible with Matlab. It is cut down from one of our actual scripts. The string problem may just be a case of octave having a different syntax (if so, I'd like to know what it is), but the fread problem seems to be a real bug. The script is called as function tst. The arguments are passed to function parsearg, where they are scanned as keyword:value pairs. Thus giving octave the command tst ('fname', 'tst.bin'); should pass the arguments to parseargs, which should see the keyword "fname", and assign the string "tst.bin" to the variable fname. This works in Matlab. In octave, the line nargs = length (args); returns nargs = 5 (or whatever the length of the first argument string to tst was). If one prints out the values of "args{a}", they are 'f', 'n', 'a', 'm', 'e'. In other words, it appears that octave is somehow separating the string "fname" into its individual characters. The second error (or perhaps several related errors) will appear if you comment out the call to parsearg, and simply set fname = 'tst.bin'. It will apparently read the strings (the freads using 'uchar') from the file, but does not assign or print them correctly. It appears to read 'int32' values correctly, but when it tries to read 'float32' values, it stops with an 'invalid size specification' error message. The script does work with the Windows version of Matlab (6.0.0.88 (R12)). Here's configuration information. I can't use the octave bug_report function, since the machines I have octave on don't allow outgoing (or incoming) mail. Octave version 2.1.34 (It does much the same on the 2.1.50? version that I compiled from the CVS sources on my home machine. Script and input file are attached. Call with above args. Machine is dual CPU PIII, 1 GHz. OS is Linux version 2.4.9-31smp (bhcompile at daffy dot perf dot redhat dot com) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-98)) #1 SMP Tue Feb 26 06:55:00 EST 2002 I don't know the configure args, as it was intstalled by our sysop. I believe from a package, but I'm not sure. I have made no modifications to the source. Files in attached .tgz file: read.me - this text tst.m - main .m file parsearg.m - function to be called from tst.m tst.bin - a sample input file to be read by tst.m ---559023410-959030623-1041371708=:22974 Content-Type: APPLICATION/octet-stream; name="bug.tgz" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="bug.tgz" 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 /BeW3jHPAFAAAA== ---559023410-959030623-1041371708=:22974-- ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------