#include <sys/timeb.h>
#endif
+#ifdef __WATCOMC__
+#include <i86.h>
+#else
#ifdef _M_IX86
#include <windows.h>
#define timezone _timezone
#define daylight _daylight
#define altzone _altzone
#endif
+#endif
/* Forward declarations */
static int floatsleep PROTO((double));
object *args;
{
struct tm buf;
+ time_t tt;
+ tt = time(&tt);
+ buf = *localtime(&tt);
if (!gettmarg(args, &buf))
return NULL;
- return newintobject((long)mktime(&buf));
+ tt = mktime(&buf);
+ if (tt == (time_t)(-1)) {
+ err_setstr(OverflowError, "mktime argument out of range");
+ return NULL;
+ }
+ return newfloatobject((double)tt);
}
static struct methodlist time_methods[] = {
return -1;
}
#else /* !macintosh */
+#ifdef __WATCOMC__
+ /* XXX Can't interrupt this sleep */
+ delay((int)(secs * 1000 + 0.5)); /* delay() uses milliseconds */
+#else /* !__WATCOMC__ */
#ifdef MSDOS
struct timeb t1, t2;
double frac;
sleep((int)secs);
#endif /* _M_IX86 */
#endif /* !MSDOS */
+#endif /* !__WATCOMC__ */
#endif /* !macintosh */
#endif /* !HAVE_SELECT */
return 0;