mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-12 06:41:13 +02:00
* filesys.c (scm_input_waiting_p): add missing third argument to
scm_misc_error. * stime.c (scm_localtime): copy the result of localtime before calling gmtime in case they share a buffer. (scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE nor HAVE_TZNAME.
This commit is contained in:
parent
2a18e74810
commit
4edc089ccb
4 changed files with 39 additions and 18 deletions
|
@ -1,7 +1,17 @@
|
||||||
|
Mon May 5 20:35:08 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||||||
|
|
||||||
|
* filesys.c (scm_input_waiting_p): add missing third argument to
|
||||||
|
scm_misc_error.
|
||||||
|
|
||||||
|
* stime.c (scm_localtime): copy the result of localtime before
|
||||||
|
calling gmtime in case they share a buffer.
|
||||||
|
(scm_localtime, scm_mktime): throw an error if neither HAVE_TM_ZONE
|
||||||
|
nor HAVE_TZNAME.
|
||||||
|
|
||||||
Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
|
Fri May 2 19:07:11 1997 Gary Houston <ghouston@actrix.gen.nz>
|
||||||
|
|
||||||
* eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
|
* eq.c (scm_equal_p): use SCM_TYP7SD (y) not SCM_TYP7SD (x).
|
||||||
|
|
||||||
Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
|
Thu May 1 17:01:45 1997 Jim Blandy <jimb@floss.cyclic.com>
|
||||||
|
|
||||||
* Makefile.am (check-local): New target, which causes 'make check'
|
* Makefile.am (check-local): New target, which causes 'make check'
|
||||||
|
|
|
@ -921,7 +921,8 @@ scm_input_waiting_p (f, caller)
|
||||||
return remir;
|
return remir;
|
||||||
}
|
}
|
||||||
# else
|
# else
|
||||||
scm_misc_error ("char-ready?", "Not fully implemented");
|
scm_misc_error ("char-ready?", "Not fully implemented on this platform",
|
||||||
|
SCM_EOL);
|
||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -413,7 +413,8 @@ scm_setfileno (fs, fd)
|
||||||
#ifdef SET_FILE_FD_FIELD
|
#ifdef SET_FILE_FD_FIELD
|
||||||
SET_FILE_FD_FIELD(fs, fd);
|
SET_FILE_FD_FIELD(fs, fd);
|
||||||
#else
|
#else
|
||||||
scm_misc_error ("scm_setfileno", "Not fully implemented", SCM_EOL);
|
scm_misc_error ("scm_setfileno", "Not fully implemented on this platform",
|
||||||
|
SCM_EOL);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -283,7 +283,7 @@ SCM
|
||||||
scm_localtime (SCM time, SCM zone)
|
scm_localtime (SCM time, SCM zone)
|
||||||
{
|
{
|
||||||
timet itime;
|
timet itime;
|
||||||
struct tm *lt, *utc;
|
struct tm *ltptr, lt, *utc;
|
||||||
SCM result;
|
SCM result;
|
||||||
int zoff;
|
int zoff;
|
||||||
char *zname = 0;
|
char *zname = 0;
|
||||||
|
@ -293,44 +293,50 @@ scm_localtime (SCM time, SCM zone)
|
||||||
itime = scm_num2long (time, (char *) SCM_ARG1, s_localtime);
|
itime = scm_num2long (time, (char *) SCM_ARG1, s_localtime);
|
||||||
SCM_DEFER_INTS;
|
SCM_DEFER_INTS;
|
||||||
oldtz = setzone (zone, SCM_ARG2, s_localtime);
|
oldtz = setzone (zone, SCM_ARG2, s_localtime);
|
||||||
lt = localtime (&itime);
|
ltptr = localtime (&itime);
|
||||||
err = errno;
|
err = errno;
|
||||||
|
/* copied in case localtime and gmtime share a buffer. */
|
||||||
|
if (ltptr)
|
||||||
|
lt = *ltptr;
|
||||||
utc = gmtime (&itime);
|
utc = gmtime (&itime);
|
||||||
if (utc == NULL)
|
if (utc == NULL)
|
||||||
err = errno;
|
err = errno;
|
||||||
if (lt)
|
if (ltptr)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_TM_ZONE
|
#ifdef HAVE_TM_ZONE
|
||||||
zname = lt->tm_zone;
|
zname = lt.tm_zone;
|
||||||
#else
|
#else
|
||||||
# ifdef HAVE_TZNAME
|
# ifdef HAVE_TZNAME
|
||||||
/* must be copied before calling tzset again. */
|
/* must be copied before calling tzset again. */
|
||||||
char *ptr = tzname[ (lt->tm_isdst == 1) ? 1 : 0 ];
|
char *ptr = tzname[ (lt.tm_isdst == 1) ? 1 : 0 ];
|
||||||
|
|
||||||
zname = scm_must_malloc (strlen (ptr) + 1, s_localtime);
|
zname = scm_must_malloc (strlen (ptr) + 1, s_localtime);
|
||||||
strcpy (zname, ptr);
|
strcpy (zname, ptr);
|
||||||
#endif
|
# else
|
||||||
|
scm_misc_error (s_localtime, "Not fully implemented on this platform",
|
||||||
|
SCM_EOF);
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
restorezone (zone, oldtz);
|
restorezone (zone, oldtz);
|
||||||
/* delayed until zone has been restored. */
|
/* delayed until zone has been restored. */
|
||||||
errno = err;
|
errno = err;
|
||||||
if (utc == NULL || lt == NULL)
|
if (utc == NULL || ltptr == NULL)
|
||||||
scm_syserror (s_localtime);
|
scm_syserror (s_localtime);
|
||||||
|
|
||||||
/* calculate timezone offset in seconds west of UTC. */
|
/* calculate timezone offset in seconds west of UTC. */
|
||||||
zoff = (utc->tm_hour - lt->tm_hour) * 3600 + (utc->tm_min - lt->tm_min) * 60
|
zoff = (utc->tm_hour - lt.tm_hour) * 3600 + (utc->tm_min - lt.tm_min) * 60
|
||||||
+ utc->tm_sec - lt->tm_sec;
|
+ utc->tm_sec - lt.tm_sec;
|
||||||
if (utc->tm_year < lt->tm_year)
|
if (utc->tm_year < lt.tm_year)
|
||||||
zoff -= 24 * 60 * 60;
|
zoff -= 24 * 60 * 60;
|
||||||
else if (utc->tm_year > lt->tm_year)
|
else if (utc->tm_year > lt.tm_year)
|
||||||
zoff += 24 * 60 * 60;
|
zoff += 24 * 60 * 60;
|
||||||
else if (utc->tm_yday < lt->tm_yday)
|
else if (utc->tm_yday < lt.tm_yday)
|
||||||
zoff -= 24 * 60 * 60;
|
zoff -= 24 * 60 * 60;
|
||||||
else if (utc->tm_yday > lt->tm_yday)
|
else if (utc->tm_yday > lt.tm_yday)
|
||||||
zoff += 24 * 60 * 60;
|
zoff += 24 * 60 * 60;
|
||||||
|
|
||||||
result = filltime (lt, zoff, zname);
|
result = filltime (<, zoff, zname);
|
||||||
SCM_ALLOW_INTS;
|
SCM_ALLOW_INTS;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -417,7 +423,10 @@ scm_mktime (SCM sbd_time, SCM zone)
|
||||||
|
|
||||||
zname = scm_must_malloc (strlen (ptr) + 1, s_mktime);
|
zname = scm_must_malloc (strlen (ptr) + 1, s_mktime);
|
||||||
strcpy (zname, ptr);
|
strcpy (zname, ptr);
|
||||||
#endif
|
# else
|
||||||
|
scm_misc_error (s_localtime, "Not fully implemented on this platform",
|
||||||
|
SCM_EOF);
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
restorezone (zone, oldtz);
|
restorezone (zone, oldtz);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue