summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--time.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 148081ed3d..e30796d314 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sun Aug 30 23:44:09 2009 Tanaka Akira <akr@fsij.org>
+
+ * time.c (find_time_t): use mktime for the first guess.
+
Sun Aug 30 16:38:56 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (rb_enc_symname2_p): not depend on nul terminator.
diff --git a/time.c b/time.c
index 8a680c9f15..edff7ee7a3 100644
--- a/time.c
+++ b/time.c
@@ -1962,6 +1962,16 @@ find_time_t(struct tm *tptr, int utc_p, time_t *tp)
find_dst = 0 < tptr->tm_isdst;
+#if defined(HAVE_MKTIME)
+ tm0 = *tptr;
+ if (!utc_p && (guess = mktime(&tm0)) != -1) {
+ tm = GUESS(&guess);
+ if (tm && tmcmp(tptr, tm) == 0) {
+ goto found;
+ }
+ }
+#endif
+
tm0 = *tptr;
if (tm0.tm_mon < 0) {
tm0.tm_mon = 0;