#ifndef OFF_T_MAX
# if SIZEOF_OFF_T < SIZEOF_INTMAX_T
-# define OFF_T_MAX (~ ((~ ((intmax_t) 0)) << (CHAR_BIT * SIZEOF_OFF_T)))
+# define OFF_T_MAX ((((intmax_t) 1) << (CHAR_BIT * SIZEOF_OFF_T)) - 1)
# else
# define OFF_T_MAX INTMAX_MAX
# endif
#ifndef TIME_T_MAX
# if SIZEOF_TIME_T < SIZEOF_INTMAX_T
-# define TIME_T_MAX (~ ((~ ((intmax_t) 0)) << (CHAR_BIT * SIZEOF_TIME_T)))
+# define TIME_T_MAX ((((intmax_t) 1) << (CHAR_BIT * SIZEOF_TIME_T)) - 1)
# else
# define TIME_T_MAX INTMAX_MAX
# endif
SCHEME_OBJECT * frame_ret)
{
if (NULL_FRAME_P (environment))
- return (0);
+ {
+ if (frame_ret != 0)
+ (*frame_ret) = environment;
+ return (0);
+ }
assert (ENVIRONMENT_P (environment));
SCHEME_OBJECT frame = environment;
while (1)