The R Project SVN R

Rev

Rev 62622 | Rev 64239 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 62622 Rev 62623
Line 796... Line 796...
796
	    errno = 0;
796
	    errno = 0;
797
	    tmp = mktime0(&tm, 1 - isgmt);
797
	    tmp = mktime0(&tm, 1 - isgmt);
798
#ifdef MKTIME_SETS_ERRNO
798
#ifdef MKTIME_SETS_ERRNO
799
	    REAL(ans)[i] = errno ? NA_REAL : tmp + (secs - fsecs);
799
	    REAL(ans)[i] = errno ? NA_REAL : tmp + (secs - fsecs);
800
#else
800
#else
801
	/* avoid silly gotcha at epoch minus one sec */
-
 
802
	    REAL(ans)[i] = ((tmp == (double)(-1))
801
	    REAL(ans)[i] = ((tmp == (double)(-1))
-
 
802
			    /* avoid silly gotcha at epoch minus one sec */
-
 
803
			    && (tm.tm_sec == 59)
803
	&& ((tm.tm_sec = 58), (mktime0(&tm, 1 - isgmt) != (double)(-2)))) ?
804
			    && ((tm.tm_sec = 58), (mktime0(&tm, 1 - isgmt) != (double)(-2)))
-
 
805
			    ) ?
804
		NA_REAL : tmp + (secs - fsecs);
806
	      NA_REAL : tmp + (secs - fsecs);
805
#endif
807
#endif
806
	}
808
	}
807
    }
809
    }
808
 
810
 
809
    if(settz) reset_tz(oldtz);
811
    if(settz) reset_tz(oldtz);