[MacRuby] #663: Kernel#sprintf formatting broken on trunk

MacRuby ruby-noreply at macosforge.org
Mon Aug 16 03:41:44 PDT 2010


#663: Kernel#sprintf formatting broken on trunk
-------------------------------------+--------------------------------------
 Reporter:  jordan.breeding@…        |       Owner:  lsansonetti@…        
     Type:  defect                   |      Status:  new                  
 Priority:  blocker                  |   Milestone:  MacRuby 0.6          
Component:  MacRuby                  |    Keywords:                       
-------------------------------------+--------------------------------------

Comment(by watson1978@…):

 Crashes When calls log10(0). Sorry. X(
 {{{
 #!diff
 diff --git a/string.c b/string.c
 index 969cc4b..517495a 100644
 --- a/string.c
 +++ b/string.c
 @@ -13,6 +13,7 @@
  #include <stdarg.h>
  #include <wctype.h>
  #include <unistd.h>
 +#include <math.h>

  #include "ruby/macruby.h"
  #include "ruby/encoding.h"
 @@ -6495,7 +6496,11 @@ rb_uchar_strtol(UniChar *chars, long chars_len,
 long pos, long *end_offse
      unum_close(nf);

      if (end_offset != NULL) {
 -       *end_offset = (long)parse_pos;
 +       long offset = 0;
 +       if(val > 0) {
 +           offset = (long)log10((double)val);
 +       }
 +       *end_offset = pos + (offset + 1); // pos + size of number.
      }
      return val;
  }
 }}}

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/663#comment:2>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list