summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--complex.c44
-rw-r--r--win32/win32.c4
3 files changed, 34 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 27dbafe532..33cc9a8903 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -25,6 +25,10 @@ Wed Oct 29 11:01:46 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* win32/win32.c (rb_w32_write): write to the end of the file when
FAPPEND is specified.
+Wed Oct 29 00:43:39 2008 Tadayoshi Funaba <tadf@dotrb.org>
+
+ * complex.c: uses macro in declarations.
+
Wed Oct 29 00:29:46 2008 NAKAMURA Usaku <usa@ruby-lang.org>
* win32/win32.c (rb_w32_open): need to seek to the end of the file when
diff --git a/complex.c b/complex.c
index d59305eb11..b4ac3e95e5 100644
--- a/complex.c
+++ b/complex.c
@@ -426,21 +426,31 @@ nucomp_f_complex(int argc, VALUE *argv, VALUE klass)
return rb_funcall2(rb_cComplex, id_convert, argc, argv);
}
-extern VALUE rb_math_atan2(VALUE x, VALUE y);
-extern VALUE rb_math_cos(VALUE x);
-extern VALUE rb_math_cosh(VALUE x);
-extern VALUE rb_math_exp(VALUE x);
-extern VALUE rb_math_hypot(VALUE x, VALUE y);
-extern VALUE rb_math_log(int argc, VALUE *argv);
-extern VALUE rb_math_sin(VALUE x);
-extern VALUE rb_math_sinh(VALUE x);
-extern VALUE rb_math_sqrt(VALUE x);
+#define imp1(n) \
+extern VALUE rb_math_##n(VALUE x);\
+inline static VALUE \
+m_##n##_bang(x)\
+{\
+ return rb_math_##n(x);\
+}
-#define m_atan2_bang(x,y) rb_math_atan2(x,y)
-#define m_cos_bang(x) rb_math_cos(x)
-#define m_cosh_bang(x) rb_math_cosh(x)
-#define m_exp_bang(x) rb_math_exp(x)
-#define m_hypot(x,y) rb_math_hypot(x,y)
+#define imp2(n) \
+extern VALUE rb_math_##n(VALUE x, VALUE y);\
+inline static VALUE \
+m_##n##_bang(x, y)\
+{\
+ return rb_math_##n(x, y);\
+}
+
+imp2(atan2)
+imp1(cos)
+imp1(cosh)
+imp1(exp)
+imp2(hypot)
+
+#define m_hypot(x,y) m_hypot_bang(x,y)
+
+extern VALUE rb_math_log(int argc, VALUE *argv);
static VALUE
m_log_bang(VALUE x)
@@ -448,9 +458,9 @@ m_log_bang(VALUE x)
return rb_math_log(1, &x);
}
-#define m_sin_bang(x) rb_math_sin(x)
-#define m_sinh_bang(x) rb_math_sinh(x)
-#define m_sqrt_bang(x) rb_math_sqrt(x)
+imp1(sin)
+imp1(sinh)
+imp1(sqrt)
static VALUE
m_cos(VALUE x)
diff --git a/win32/win32.c b/win32/win32.c
index 50fd55d076..ded5f2843d 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -4129,8 +4129,10 @@ rb_w32_open(const char *file, int oflag, ...)
fd = -1;
goto quit;
}
- if (!(flags & (FDEV | FPIPE)) && (oflag & O_APPEND))
+ if (!(flags & (FDEV | FPIPE)) && (oflag & O_APPEND)) {
flags |= FAPPEND;
+ SetFilePointer(h, 0, NULL, FILE_END);
+ }
_set_osfhnd(fd, (long)h);
_osfile(fd) = flags | FOPEN;