From ccc55bb7c3753cc4e6ba736eed69162c43b63370 Mon Sep 17 00:00:00 2001 From: akr Date: Sat, 1 Jan 2011 02:45:04 +0000 Subject: * strftime.c: parenthesize macro arguments. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ strftime.c | 18 +++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 43dd494125..bc9cb7df9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat Jan 1 11:44:42 2011 Tanaka Akira + + * strftime.c: parenthesize macro arguments. + Sat Jan 1 11:10:29 2011 Nobuyoshi Nakada * ext/zlib/zlib.c: take care of platforms where long is bigger diff --git a/strftime.c b/strftime.c index 89f602179e..289f6ed48a 100644 --- a/strftime.c +++ b/strftime.c @@ -120,7 +120,7 @@ extern char *getenv(); extern char *strchr(); #endif -#define range(low, item, hi) max(low, min(item, hi)) +#define range(low, item, hi) max((low), min((item), (hi))) #undef min /* just in case */ @@ -212,10 +212,10 @@ rb_strftime_with_timespec(char *s, size_t maxsize, const char *format, const str } while (0) #define NEEDS(n) do if (s + (n) >= endp - 1) goto err; while (0) #define FILL_PADDING(i) do { \ - if (!(flags & BIT_OF(LEFT)) && precision > i) { \ + if (!(flags & BIT_OF(LEFT)) && precision > (i)) { \ NEEDS(precision); \ - memset(s, padding ? padding : ' ', precision - i); \ - s += precision - i; \ + memset(s, padding ? padding : ' ', precision - (i)); \ + s += precision - (i); \ } \ else { \ NEEDS(i); \ @@ -227,14 +227,14 @@ rb_strftime_with_timespec(char *s, size_t maxsize, const char *format, const str if (precision <= 0) precision = (def_prec); \ if (flags & BIT_OF(LEFT)) precision = 1; \ l = snprintf(s, endp - s, \ - ((padding == '0' || (!padding && def_pad == '0')) ? "%0*"fmt : "%*"fmt), \ - precision, val); \ + ((padding == '0' || (!padding && (def_pad) == '0')) ? "%0*"fmt : "%*"fmt), \ + precision, (val)); \ if (l < 0) goto err; \ s += l; \ } while (0) #define STRFTIME(fmt) \ do { \ - i = rb_strftime_with_timespec(s, endp - s, fmt, vtm, timev, ts, gmt); \ + i = rb_strftime_with_timespec(s, endp - s, (fmt), vtm, timev, ts, gmt); \ if (!i) return 0; \ if (precision > i) {\ memmove(s + precision - i, s, i);\ @@ -255,8 +255,8 @@ rb_strftime_with_timespec(char *s, size_t maxsize, const char *format, const str if (precision <= 0) precision = (def_prec); \ if (flags & BIT_OF(LEFT)) precision = 1; \ args[0] = INT2FIX(precision); \ - args[1] = val; \ - if (padding == '0' || (!padding && def_pad == '0')) \ + args[1] = (val); \ + if (padding == '0' || (!padding && (def_pad) == '0')) \ result = rb_str_format(2, args, rb_str_new2("%0*"fmt)); \ else \ result = rb_str_format(2, args, rb_str_new2("%*"fmt)); \ -- cgit v1.2.3