summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-12-08 16:48:08 +0900
committerGitHub <[email protected]>2016-12-08 16:48:08 +0900
commitb84e005fc36a3c669586cc66ab3c87630d7a5509 (patch)
treec4f0b719c48fba8844120999bcdd3ba8d05eae6b
parentbcd91856fd5fdbc34d7719a3a8b5434be8efff21 (diff)
parentc27dbfedf4dbd95ef17c6ad2b84933088e56d2cd (diff)
downloadmruby-b84e005fc36a3c669586cc66ab3c87630d7a5509.tar.gz
mruby-b84e005fc36a3c669586cc66ab3c87630d7a5509.zip
Merge pull request #3335 from mattn/fix-vs2013
fix build on vs2013-vs2015
-rw-r--r--include/mruby/compile.h1
-rw-r--r--src/numeric.c4
-rw-r--r--src/string.c2
3 files changed, 6 insertions, 1 deletions
diff --git a/include/mruby/compile.h b/include/mruby/compile.h
index ebcb3f355..ad3f19db1 100644
--- a/include/mruby/compile.h
+++ b/include/mruby/compile.h
@@ -163,6 +163,7 @@ struct mrb_parser_state {
MRB_API struct mrb_parser_state* mrb_parser_new(mrb_state*);
MRB_API void mrb_parser_free(struct mrb_parser_state*);
MRB_API void mrb_parser_parse(struct mrb_parser_state*,mrbc_context*);
+MRB_API double mrb_float_read(const char*, char**);
MRB_API void mrb_parser_set_filename(struct mrb_parser_state*, char const*);
MRB_API char const* mrb_parser_get_filename(struct mrb_parser_state*, uint16_t idx);
diff --git a/src/numeric.c b/src/numeric.c
index 25a411de8..a9a2a641b 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -357,7 +357,11 @@ flo_shift(mrb_state *mrb, mrb_value x, mrb_int width)
while (width++) {
val /= 2;
}
+#if defined(_ISOC99_SOURCE)
val = trunc(val);
+#else
+ val = val > 0 ? floor(val) : ceil(val);
+#endif
if (val == 0 && mrb_float(x) < 0) {
return mrb_fixnum_value(-1);
}
diff --git a/src/string.c b/src/string.c
index a9351619b..c921ca56d 100644
--- a/src/string.c
+++ b/src/string.c
@@ -2773,7 +2773,7 @@ mrb_init_string(mrb_state *mrb)
#ifndef __STDC__
# ifdef __GNUC__
# define const __const__
-# else
+# elif !defined(_MSC_VER)
# define const
# endif
#endif