[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Slight oddity with os.date("")
- From: roberto@... (Roberto Ierusalimschy)
- Date: Wed, 21 Jun 2006 12:24:24 -0300
> In Lua 5.1, when you call os.date with an empty format string, you get
> the somewhat unexpected error "'date' format too long" :-)
>
> This is because the implementation checks the return value from the C
> function strftime() which is 0 both when there is an error and when
> the format string is empty.
>
> This is not critical, but one would expect os.date to return the empty
> string when the format is empty (just like string.format). A possible
> fix would be:
>
> --- loslib.c
> +++ loslib.c
> @@ -145,6 +145,8 @@
> setfield(L, "yday", stm->tm_yday+1);
> setboolfield(L, "isdst", stm->tm_isdst);
> }
> + else if (*s == '\0')
> + lua_pushstring(L, "");
> else {
> char b[256];
> if (strftime(b, sizeof(b), s, stm))
You are right about the problem. But your fix does not fix it :(
Non-empty format strings may also correctly result in the empty string
(e.g., "%p" or "%z" in some locales).
-- Roberto