diff options
| author | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-21 00:59:43 +0000 |
|---|---|---|
| committer | usa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-04-21 00:59:43 +0000 |
| commit | 0559e89c292013f81817742966fa55b6f96443da (patch) | |
| tree | db90c318e1e8c52ace50ea85982f2d41ac380a25 | |
| parent | fec64f3c56d66f0ea138036766fd0beb59cf1a7c (diff) | |
| download | ruby-0559e89c292013f81817742966fa55b6f96443da.tar.gz ruby-0559e89c292013f81817742966fa55b6f96443da.tar.xz ruby-0559e89c292013f81817742966fa55b6f96443da.zip | |
* time.c (rb_strftime): check errno to detect strftime(3)'s error.
this is workaround for recent version of MSVCRT.
[ruby-dev:34456]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16113 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 6 | ||||
| -rw-r--r-- | time.c | 3 |
2 files changed, 8 insertions, 1 deletions
@@ -1,3 +1,9 @@ +Mon Apr 21 09:58:04 2008 NAKAMURA Usaku <usa@ruby-lang.org> + + * time.c (rb_strftime): check errno to detect strftime(3)'s error. + this is workaround for recent version of MSVCRT. + [ruby-dev:34456] + Mon Apr 21 08:54:30 2008 NAKAMURA Usaku <usa@ruby-lang.org> * gc.c (ruby_xmalloc): use size_t for malloc argument instead of long. @@ -2003,8 +2003,9 @@ rb_strftime(char **buf, const char *format, struct tm *time) if (flen == 0) { return 0; } + errno = 0; len = strftime(*buf, SMALLBUF, format, time); - if (len != 0 || **buf == '\0') return len; + if (len != 0 || (**buf == '\0' && errno != ERANGE)) return len; for (size=1024; ; size*=2) { *buf = xmalloc(size); (*buf)[0] = '\0'; |
