diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/Modules/datetime.c | 4 | ||||
-rw-r--r-- | Src/utils.c | 8 |
3 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 63974b285..5086ca82b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-12-09 Peter Stephenson <p.w.stephenson@ntlworld.com> + + * 24197, Src/utils.c, Src/Modules/datetime.c: interface to + ztrftime() for insufficient memory was broken. + 2007-12-08 Clint Adams <clint@zsh.org> * 24188: Completion/Unix/Command/_id: completion for GNU id. diff --git a/Src/Modules/datetime.c b/Src/Modules/datetime.c index 169369d5f..328870eba 100644 --- a/Src/Modules/datetime.c +++ b/Src/Modules/datetime.c @@ -1,5 +1,5 @@ /* - * datetime.c - parameter interface to langinfo via curses + * datetime.c - parameter and command interface to date and time utilities * * This file is part of zsh, the Z shell. * @@ -121,7 +121,7 @@ bin_strftime(char *nam, char **argv, Options ops, UNUSED(int func)) } t = localtime(&secs); - bufsize = strlen(argv[0]) * 2; + bufsize = strlen(argv[0]) * 8; buffer = zalloc(bufsize); for (x=0; x < 4; x++) { diff --git a/Src/utils.c b/Src/utils.c index d776d7cb3..8a58c5ea8 100644 --- a/Src/utils.c +++ b/Src/utils.c @@ -2389,7 +2389,7 @@ ztrftime(char *buf, int bufsize, char *fmt, struct tm *tm) * Fix up some longer cases specially when we get to them. */ if (ztrftimebuf(&bufsize, 2)) - return 0; + return -1; switch (*fmt++) { case 'd': *buf++ = '0' + tm->tm_mday / 10; @@ -2447,12 +2447,12 @@ ztrftime(char *buf, int bufsize, char *fmt, struct tm *tm) #ifndef HAVE_STRFTIME case 'a': if (ztrftimebuf(&bufsize, strlen(astr[tm->tm_wday]) - 2)) - return 0; + return -1; strucpy(&buf, astr[tm->tm_wday]); break; case 'b': if (ztrftimebuf(&bufsize, strlen(estr[tm->tm_mon]) - 2)) - return 0; + return -1; strucpy(&buf, estr[tm->tm_mon]); break; case 'p': @@ -2487,7 +2487,7 @@ ztrftime(char *buf, int bufsize, char *fmt, struct tm *tm) } } else { if (ztrftimebuf(&bufsize, 1)) - return 0; + return -1; *buf++ = *fmt++; } *buf = '\0'; |