From bug-octave-request at bevo dot che dot wisc dot edu Thu Jan 23 06:26:21 2003 Subject: current int2str breaks scalar processing From: Miroslaw Kwasniak To: bug-octave at bevo dot che dot wisc dot edu, Miroslaw Kwasniak Date: Thu, 23 Jan 2003 13:25:55 +0100 To: bug-octave at bevo dot che dot wisc dot edu Cc: mirek Subject: current int2str breaks scalar processing Bug report for Octave 2.1.43 configured for i386-pc-linux-gnu Description: ----------- Hi, Now we have: >> size(int2str(2)) ans = 1 3 It was >> size(int2str(2)) ans = 1 1 So it breaks some scripts that use an expression like this: Name = [ 'V' int2str(i) ]; Mirek Fix: --- --- int2str.m.ORG 2003-01-05 15:21:28.000000000 +0100 +++ int2str.m 2003-01-23 13:10:30.000000000 +0100 at @ -32,14 +32,19 @@ function retval = int2str (x) ## XXX FIXME XXX -- this will fail for very large values. + ## yes, limit is about 2^31 on Intel if (nargin == 1) x = round (x); - fw = max (log10 (abs (x(:))) + 3); - fmt = sprintf ("%%%dd", fw); - fmt = strcat (repmat (fmt, 1, columns (x)), "\n"); - tmp = sprintf (fmt, round (x.')); - tmp(length (tmp)) = ""; + if size (x,2) == 1 %% XXX FIXME XXX isscalar(x) - only scalars + fmt = '%d\n'; + else + fw = max (log10 (abs (x(:))) + 3); + fmt = sprintf ("%%%dd", fw); + fmt = strcat (repmat (fmt, 1, columns (x)), "\n"); + endif + tmp = sprintf (fmt, x'); + tmp(end) = ""; retval = split (tmp, "\n"); else usage ("int2str (x)"); ------------------------------------------------------------- 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 -------------------------------------------------------------