diff --git a/ChangeLog b/ChangeLog index b0d73e6bbb..9e39343405 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Mon May 19 14:20:13 2008 NAKAMURA Usaku + + * sprintf.c (rb_f_sprintf): fixed SEGV on win32 with "% 0e" % 1.0/0.0. + Mon May 19 13:29:58 2008 NAKAMURA Usaku * process.c (rb_f_system): set last_status when status == -1 because diff --git a/sprintf.c b/sprintf.c index c5334b1f9f..cf8ea20de6 100644 --- a/sprintf.c +++ b/sprintf.c @@ -729,6 +729,8 @@ rb_f_sprintf(argc, argv) need = strlen(expr); if ((!isnan(fval) && fval < 0.0) || (flags & FPLUS)) need++; + else if (flags & FSPACE) + need++; if ((flags & FWIDTH) && need < width) need = width;