summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--win32/win32.c14
2 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index cccdcd1d39..a9c40934aa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,12 @@
-Wed Oct 18 22:58:27 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Wed Oct 18 23:02:40 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
* array.c (rb_ary_shift): shorten copy size. fixed: [ruby-list:42907]
* signal.c (Init_signal): handle SIGTERM. fixed: [ruby-list:42895]
+ * win32/win32.c (rb_w32_utime): allow NULL to set the current time.
+ [ruby-talk:219248]
+
Wed Oct 18 00:55:33 2006 Nobuyoshi Nakada <nobu@ruby-lang.org>
* parse.y (parser_yylex): use particular enums. [ruby-core:09221]
diff --git a/win32/win32.c b/win32/win32.c
index e8ac1bbf07..0b58c19690 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -3655,11 +3655,17 @@ rb_w32_utime(const char *path, struct utimbuf *times)
return -1;
}
- if (unixtime_to_filetime(times->actime, &atime)) {
- return -1;
+ if (times) {
+ if (unixtime_to_filetime(times->actime, &atime)) {
+ return -1;
+ }
+ if (unixtime_to_filetime(times->modtime, &mtime)) {
+ return -1;
+ }
}
- if (unixtime_to_filetime(times->modtime, &mtime)) {
- return -1;
+ else {
+ GetSystemTimeAsFileTime(&atime);
+ mtime = atime;
}
RUBY_CRITICAL({