From 5a59fd3a5c83395847448db333c9df9d253a158c Mon Sep 17 00:00:00 2001 From: Paolo Bosetti Date: Mon, 2 Dec 2013 12:14:04 +0100 Subject: Fix for compilation under Win/MinGW --- src/file.c | 13 ++++++++++++- src/file_test.c | 2 ++ src/io.c | 9 +++++++-- 3 files changed, 21 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/file.c b/src/file.c index ea45b2c0b..1969b1411 100644 --- a/src/file.c +++ b/src/file.c @@ -17,7 +17,9 @@ #include #include #include +#ifndef _WIN32 #include +#endif #define FILE_SEPARATOR "/" @@ -229,6 +231,7 @@ mrb_file_is_absolute_path(const char *path) static mrb_value mrb_file__gethome(mrb_state *mrb, mrb_value klass) { +#ifndef _WIN32 mrb_value username; int argc; char *home; @@ -254,8 +257,13 @@ mrb_file__gethome(mrb_state *mrb, mrb_value klass) } } return mrb_str_new_cstr(mrb, home); +#else + + return mrb_nil_value(); +#endif } +#ifndef _WIN32 mrb_value mrb_file_flock(mrb_state *mrb, mrb_value self) { @@ -285,6 +293,7 @@ mrb_file_flock(mrb_state *mrb, mrb_value self) } return mrb_fixnum_value(0); } +#endif void mrb_init_file(mrb_state *mrb) @@ -306,8 +315,10 @@ mrb_init_file(mrb_state *mrb) mrb_define_class_method(mrb, file, "_getwd", mrb_file__getwd, MRB_ARGS_NONE()); mrb_define_class_method(mrb, file, "_gethome", mrb_file__gethome, MRB_ARGS_OPT(1)); + #ifndef _WIN32 mrb_define_method(mrb, file, "flock", mrb_file_flock, MRB_ARGS_REQ(1)); - + #endif + cnst = mrb_define_module_under(mrb, file, "Constants"); mrb_define_const(mrb, cnst, "LOCK_SH", mrb_fixnum_value(LOCK_SH)); mrb_define_const(mrb, cnst, "LOCK_EX", mrb_fixnum_value(LOCK_EX)); diff --git a/src/file_test.c b/src/file_test.c index 872f7aebc..309898a47 100644 --- a/src/file_test.c +++ b/src/file_test.c @@ -16,7 +16,9 @@ #include #include #include +#ifndef _WIN32 #include +#endif extern struct mrb_data_type mrb_io_type; diff --git a/src/io.c b/src/io.c index 79f72d386..c12f49a97 100644 --- a/src/io.c +++ b/src/io.c @@ -119,13 +119,14 @@ mrb_io_flags_to_modenum(mrb_state *mrb, int flags) } #ifdef O_BINARY if (flags & FMODE_BINMODE) { - modenum |= O_BINARY + modenum |= O_BINARY; } #endif return modenum; } +#ifndef _WIN32 static int mrb_proc_exec(const char *pname) { @@ -143,6 +144,7 @@ mrb_proc_exec(const char *pname) execl("/bin/sh", "sh", "-c", pname, (char *)NULL); return -1; } +#endif static void mrb_io_free(mrb_state *mrb, void *ptr) @@ -185,6 +187,7 @@ io_open(mrb_state *mrb, mrb_value path, int flags, int perm) #define NOFILE 64 #endif +#ifndef _WIN32 mrb_value mrb_io_s_popen(mrb_state *mrb, mrb_value klass) { @@ -295,6 +298,7 @@ mrb_io_s_popen(mrb_state *mrb, mrb_value klass) } return result; } +#endif mrb_value mrb_io_initialize(mrb_state *mrb, mrb_value io) @@ -746,8 +750,9 @@ mrb_init_io(mrb_state *mrb) MRB_SET_INSTANCE_TT(io, MRB_TT_DATA); mrb_include_module(mrb, io, mrb_class_get(mrb, "Enumerable")); /* 15.2.20.3 */ - +#ifndef _WIN32 mrb_define_class_method(mrb, io, "_popen", mrb_io_s_popen, MRB_ARGS_ANY()); +#endif mrb_define_class_method(mrb, io, "for_fd", mrb_io_s_for_fd, MRB_ARGS_REQ(1)|MRB_ARGS_OPT(2)); mrb_define_class_method(mrb, io, "sysopen", mrb_io_s_sysopen, MRB_ARGS_ANY()); mrb_define_class_method(mrb, io, "select", mrb_io_s_select, MRB_ARGS_ANY()); -- cgit v1.2.3