summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-01-10 16:47:03 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-01-10 16:47:03 +0000
commit4e6dbec8c84961424d5beb9a9d1fb66912a78957 (patch)
tree08a3a6b9882ff7391b169013e14d650880c941ba /configure.in
parent5fd433efbb3481fe13995cb33b27c1b39092e4f1 (diff)
* configure.in (RUBY_CHECK_IO_NEED): added more tests.
* io.c (rb_io_check_readable): seek after synchronized write. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3326 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in33
1 files changed, 17 insertions, 16 deletions
diff --git a/configure.in b/configure.in
index c9cc32cc0a..a4a86010a0 100644
--- a/configure.in
+++ b/configure.in
@@ -265,15 +265,11 @@ darwin*) LIBS="-lobjc $LIBS";;
human*) ac_cv_func_getpgrp_void=yes;;
beos*) ;;
cygwin*) rb_cv_have_daylight=no
- rb_cv_need_io_seek_between_rw=no
- rb_cv_need_io_flush_before_seek=no
ac_cv_var_tzname=no
ac_cv_func__setjmp=no
ac_cv_func_setitimer=no
;;
mingw*) LIBS="-lwsock32 $LIBS"
- rb_cv_need_io_seek_between_rw=yes
- rb_cv_need_io_flush_before_seek=no
ac_cv_header_a_out_h=no
ac_cv_header_pwd_h=no
ac_cv_header_utime_h=no
@@ -576,6 +572,7 @@ AC_DEFUN(RUBY_CHECK_IO_NEED,
char *fn = "conftest.dat";
char *wombat = "wombat\n";
char *koara = "koara\n";
+char *kangaroo = "kangaroo\n";
int main()
{
@@ -589,32 +586,36 @@ int main()
if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;
reset_rw(f);
fputs(koara, f);
+ fputs(kangaroo, f);
do_seek(f, SEEK_SET);
if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;
if (!fgets(buf, BUFSIZ, f) || strcmp(buf, koara)) goto fail;
+ if (!fgets(buf, BUFSIZ, f) || strcmp(buf, kangaroo)) goto fail;
+ do_seek(f, SEEK_SET);
+ if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;
+ reset_rw(f);
+ fputc('X', f);
+ reset_rw(f);
+ if (!fgets(buf, BUFSIZ, f) || strcmp(buf, koara+1)) goto fail;
+ if (!fgets(buf, BUFSIZ, f) || strcmp(buf, kangaroo)) goto fail;
+ do_seek(f, SEEK_SET);
+ if (!fgets(buf, BUFSIZ, f) || strcmp(buf, wombat)) goto fail;
+ if (!fgets(buf, BUFSIZ, f) || buf[0] != 'X' || strcmp(buf+1, koara+1)) goto fail;
+ if (!fgets(buf, BUFSIZ, f) || strcmp(buf, kangaroo)) goto fail;
r = 0;
fail:
fclose(f);
unlink(fn);
return r;
}
-], [$2]=no, [$2]=yes, [$2]=yes)])])
-RUBY_CHECK_IO_NEED(seek between R/W, rb_cv_need_io_seek_between_rw)
-RUBY_CHECK_IO_NEED(flush before seek, rb_cv_need_io_flush_before_seek)
-check_to_do_something_else=no
+], [$2]=no, [$2]=yes, [$2]=[$3])])])
+RUBY_CHECK_IO_NEED(seek between R/W, rb_cv_need_io_seek_between_rw, yes)
if test "$rb_cv_need_io_seek_between_rw" = yes; then
AC_DEFINE(NEED_IO_SEEK_BETWEEN_RW, 1)
- check_to_do_something_else=yes
fi
+RUBY_CHECK_IO_NEED(flush before seek, rb_cv_need_io_flush_before_seek, no)
if test "$rb_cv_need_io_flush_before_seek" = yes; then
AC_DEFINE(NEED_IO_FLUSH_BEFORE_SEEK, 1)
- check_to_do_something_else=yes
-fi
-if test "$cross_compiling" = no -a "$check_to_do_something_else" = yes; then
- RUBY_CHECK_IO_NEED(do something else, unexpected_stdio_behavior)
- if test "$unexpected_stdio_behavior" = yes; then
- AC_MSG_ERROR([unexpected stdio behavior])
- fi
fi
dnl default value for $KANJI