summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-30 14:44:54 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-30 14:44:54 +0000
commit89f5a3278aa53d0cd071b281f0c0af4fe0754b6d (patch)
tree4e205c67413f5fee8a72d85faee6ed1a2aa1c7c6
parent542904447e984f1ab9c7cd72bc1be5b705e30527 (diff)
downloadruby-89f5a3278aa53d0cd071b281f0c0af4fe0754b6d.tar.gz
ruby-89f5a3278aa53d0cd071b281f0c0af4fe0754b6d.tar.xz
ruby-89f5a3278aa53d0cd071b281f0c0af4fe0754b6d.zip
* time.c (find_time_t): use mktime for the first guess.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog4
-rw-r--r--time.c10
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 148081ed3..e30796d31 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 8a680c9f1..edff7ee7a 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;