changeset 4067:e97fb79fc1d5

[project @ 2002-09-26 22:43:25 by jwe]
author jwe
date Thu, 26 Sep 2002 22:43:25 +0000
parents 47d3baea432d
children 2c088a2f36e2
files ChangeLog aclocal.m4 configure.in src/ChangeLog src/cutils.c src/sysdep.cc src/sysdep.h src/utils.h
diffstat 8 files changed, 78 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Sep 26 22:10:09 2002 +0000
+++ b/ChangeLog	Thu Sep 26 22:43:25 2002 +0000
@@ -1,3 +1,15 @@
+2002-09-25  Mumit Khan  <khan@nanotech.wisc.edu>
+ 
+ 	* aclocal.m4 (OCTAVE_MKDIR_TAKES_ONE_ARG): New macro to determine if
+ 	host mkdir accepts only one arg instead of the usual two.
+ 	* configure.in: Use. Check for direct.h.
+ 	(mkdir): Define.
+ 
+2002-09-26  Paul Kienzle <pkienzle@users.sf.net>
+
+	* configure.in: Check for conio.h.
+	Check for _kbhit.
+
 2002-09-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* configure.in (AH_BOTTOM): Don't define
--- a/aclocal.m4	Thu Sep 26 22:10:09 2002 +0000
+++ b/aclocal.m4	Thu Sep 26 22:43:25 2002 +0000
@@ -643,4 +643,24 @@
   AC_MSG_RESULT($octave_cv_cxx_abi)
   AC_DEFINE_UNQUOTED(CXX_ABI, $octave_cv_cxx_abi, [Define to the C++ ABI your compiler uses.])
 ])
-
+dnl
+dnl Determine if mkdir accepts only one argument instead dnl of the usual 2.
+dnl
+AC_DEFUN(OCTAVE_MKDIR_TAKES_ONE_ARG,
+[AC_CACHE_CHECK([if mkdir takes one argument], octave_cv_mkdir_takes_one_arg,
+[AC_TRY_COMPILE([
+#include <sys/types.h>
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#ifdef HAVE_DIRECT_H
+# include <direct.h>
+#endif], [mkdir ("foo", 0);],
+        octave_cv_mkdir_takes_one_arg=no, octave_cv_mkdir_takes_one_arg=yes)])
+if test $octave_cv_mkdir_takes_one_arg = yes ; then
+  AC_DEFINE(MKDIR_TAKES_ONE_ARG, 1, [Define if host mkdir takes a single argument.])
+fi
+])
--- a/configure.in	Thu Sep 26 22:10:09 2002 +0000
+++ b/configure.in	Thu Sep 26 22:43:25 2002 +0000
@@ -22,7 +22,7 @@
 ### 02111-1307, USA. 
 
 AC_INIT
-AC_REVISION($Revision: 1.368 $)
+AC_REVISION($Revision: 1.369 $)
 AC_PREREQ(2.52)
 AC_CONFIG_SRCDIR([src/octave.cc])
 AC_CONFIG_HEADER(config.h)
@@ -792,7 +792,7 @@
 
 ### C headers
 
-AC_CHECK_HEADERS(assert.h curses.h dlfcn.h fcntl.h float.h \
+AC_CHECK_HEADERS(assert.h curses.h direct.h dlfcn.h fcntl.h float.h \
   floatingpoint.h grp.h ieeefp.h limits.h memory.h nan.h \
   ncurses.h poll.h pwd.h stdlib.h string.h sys/ioctl.h \
   sys/param.h sys/poll.h sys/resource.h sys/select.h sys/stat.h \
@@ -811,6 +811,7 @@
 AC_CHECK_HEADERS(sgtty.h, have_sgtty_h=yes, have_sgtty_h=no)
 AC_CHECK_HEADERS(glob.h, have_glob_h=yes, have_glob_h=no)
 AC_CHECK_HEADERS(fnmatch.h, have_fnmatch_h=yes, have_fnmatch_h=no)
+AC_CHECK_HEADERS(conio.h, have_conio_h=yes, have_conio_h=no)
 
 ### I'm told that termios.h is broken on NeXT systems.
 
@@ -868,7 +869,7 @@
 AC_CHECK_FUNCS(atexit bcopy bzero dup2 endgrent endpwent execvp \
   fcntl fork getcwd getegid geteuid getgid getgrent getgrgid \
   getgrnam getpgrp getpid getppid getpwent \
-  getpwuid gettimeofday getuid getwd link localtime_r lstat \
+  getpwuid gettimeofday getuid getwd _kbhit link localtime_r lstat \
   memmove mkdir mkfifo on_exit pipe poll putenv readlink rename \
   rindex rmdir select setgrent setpwent setvbuf sigaction sigpending \
   sigprocmask sigsuspend stat strcasecmp strdup strerror strftime \
@@ -1031,6 +1032,9 @@
 
 AC_CHECK_MEMBERS(struct group.gr_passwd)
 
+# mkdir takes a single argument on some systems.
+OCTAVE_MKDIR_TAKES_ONE_ARG
+
 octave_found_termlib=no
 for termlib in ncurses curses termcap terminfo termlib; do
   AC_CHECK_LIB(${termlib}, tputs, [TERMLIBS="${TERMLIBS} -l${termlib}"])
@@ -1256,6 +1260,10 @@
 #if !defined(HAVE_SIGSET_T)
 typedef int sigset_t;
 #endif
+
+#if defined(MKDIR_TAKES_ONE_ARG)
+#  define mkdir(a,b) mkdir(a)
+#endif
 ])
 
 ### Do the substitutions in all the Makefiles.
--- a/src/ChangeLog	Thu Sep 26 22:10:09 2002 +0000
+++ b/src/ChangeLog	Thu Sep 26 22:43:25 2002 +0000
@@ -1,3 +1,11 @@
+2002-09-26  Paul Kienzle <pkienzle@users.sf.net>
+
+	* sysdep.cc: Include conio.h if it exists.
+	(octave_kbhit): Rename from kbhit.  Implement with _kbhit if it
+	exists. Change all callers.
+	* cutils.c (octave_sleep): New function.
+	Change all callers of sleep to use octave_sleep instead.
+
 2002-09-26  John W. Eaton  <jwe@bevo.che.wisc.edu>
 
 	* BaseSLList.cc, BaseSLList.h, Cell.cc, Cell.h, DLList.cc,
@@ -44,8 +52,6 @@
 	If __GNUG__, use pragma interface/implementation.  Allow this to
 	be turned off by defining NO_PRAGMA_INTERFACE_IMPLEMENTATION.
 
-
-
 2002-09-26  Paul Kienzle <pkienzle@users.sf.net>
 
 	* mappers.cc (install_mapper_functions): Install erf, not xerf.
--- a/src/cutils.c	Thu Sep 26 22:10:09 2002 +0000
+++ b/src/cutils.c	Thu Sep 26 22:43:25 2002 +0000
@@ -72,6 +72,12 @@
 }
 
 void
+octave_sleep (unsigned int seconds)
+{
+  sleep (seconds);
+}
+
+void
 octave_usleep (unsigned int useconds)
 {
   unsigned int sec = useconds / 1000000;
--- a/src/sysdep.cc	Thu Sep 26 22:10:09 2002 +0000
+++ b/src/sysdep.cc	Thu Sep 26 22:43:25 2002 +0000
@@ -47,6 +47,10 @@
 #include <termio.h>
 #elif defined (HAVE_SGTTY_H)
 #include <sgtty.h>
+#endif 
+
+#if defined (HAVE_CONIO_H)
+#include <conio.h>
 #endif
 
 #if defined (HAVE_SYS_IOCTL_H)
@@ -312,8 +316,14 @@
 // Read one character from the terminal.
 
 int
-kbhit (bool wait)
+octave_kbhit (bool wait)
 {
+#ifdef HAVE__KBHIT
+  if (! wait && ! _kbhit ())
+    c = 0;
+  else
+    c = std::cin.get ();
+#else
   raw_mode (true, wait);
 
   int c = std::cin.get ();
@@ -322,6 +332,7 @@
     std::cin.clear ();
 
   raw_mode (false, true);
+#endif
 
   return c;
 }
@@ -433,7 +444,7 @@
 
   if (interactive || forced_interactive)
     {
-      int c = kbhit (args.length () == 0);
+      int c = octave_kbhit (args.length () == 0);
 
       if (c == -1)
 	c = 0;
@@ -486,20 +497,20 @@
 	  else if (xisinf (dval))
 	    {
 	      flush_octave_stdout ();
-	      kbhit ();
+	      octave_kbhit ();
 	    }
 	  else
 	    {
 	      int delay = NINT (dval);
 	      if (delay > 0)
-		sleep (delay);
+		octave_sleep (delay);
 	    }
 	}
     }
   else
     {
       flush_octave_stdout ();
-      kbhit ();
+      octave_kbhit ();
     }
 
   return retval;
@@ -525,7 +536,7 @@
 	    {
 	      int delay = NINT (dval);
 	      if (delay > 0)
-		sleep (delay);
+		octave_sleep (delay);
 	    }
 	}
     }
--- a/src/sysdep.h	Thu Sep 26 22:10:09 2002 +0000
+++ b/src/sysdep.h	Thu Sep 26 22:43:25 2002 +0000
@@ -32,7 +32,7 @@
 
 extern void raw_mode (bool, bool wait = true);
 
-extern int kbhit (bool wait = true);
+extern int octave_kbhit (bool wait = true);
 
 #endif
 
--- a/src/utils.h	Thu Sep 26 22:10:09 2002 +0000
+++ b/src/utils.h	Thu Sep 26 22:43:25 2002 +0000
@@ -75,6 +75,8 @@
 
 extern "C" void octave_usleep (unsigned int useconds);
 
+extern "C" void octave_sleep (unsigned int seconds);
+
 extern "C" int octave_strcasecmp (const char *s1, const char *s2);
 
 extern "C" int octave_strncasecmp (const char *s1, const char *s2, size_t n);