Hi Folks,

Here is a patch to fix some problems with datevec in working with string arrays 
and cell arrays.  One bug is a strange assignment of all strings to a cell of 
size 1 when cellstr() seems clearly preferred.  A second bug is that length() 
gives an incorrect value when the number of date strings is greater than the 
character width.

Dan

PS:  This is one slow function.  Really bogs down programs working with a lot 
of data.


BEFORE:

octave:1> S = {'2008-12-11'; '2008-12-12'; '2008-12-13'};
octave:2> datenum(char(S), 'yyyy-mm-dd')
ans =  733753

AFTER:

octave:11> S = {'2008-12-11'; '2008-12-12'; '2008-12-13'};
octave:12> datenum(char(S), 'yyyy-mm-dd')
ans =

  733753
  733754
  733755
--- datevec.m.orig	2008-12-10 02:35:30.175131273 -0600
+++ datevec.m	2008-12-10 02:32:54.845990460 -0600
@@ -109,8 +109,7 @@
 
   if (ischar (date))
     t = date;
-    date = cell (1);
-    date{1} = t;
+    date = cellstr (t);
   endif
 
   if (iscell (date))
@@ -247,7 +246,7 @@
 
   [tm, nc] = strptime (ds, f);
 
-  if (nc == length (ds) + 1)
+  if (nc == size (ds, 2) + 1)
     y = tm.year + 1900; m = tm.mon + 1; d = tm.mday;
     h = tm.hour; mi = tm.min; s = tm.sec + tm.usec / 1e6;
     found = true;
------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
Octave-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/octave-dev

Reply via email to