[PATCH 4/4] parse-time-string: fix setting and rounding of seconds
Tomi Ollila
tomi.ollila at iki.fi
Mon Mar 2 12:03:55 PST 2015
On Mon, Mar 02 2015, Jani Nikula <jani at nikula.org> wrote:
> If seconds are not specified in the string to be parsed, they're not
> set according to the reference time (in the no rounding case) nor
> rounded properly (in the rounding up cases). Fix this.
>
> The bug caused searches such as date:10:30..10:30 to match messages
> with date exactly 10:30:00 only, and not in range 10:30:00..10:30:59
> (inclusive) as documented.
>
> Note that date searches referring "noon" or "5pm" will still be
> interpreted as exact to the second.
Although I don't fully understands how these changes do the trick (and I
only looked the context) the changes *look* good, and presumably fix
the problem in question (I could check intermediate output but i am just
lazy).
Tests pass and I don't see why anything could get broken by this so +1
Tomi
> ---
> parse-time-string/parse-time-string.c | 4 ++--
> test/T490-parse-time-string.sh | 1 -
> 2 files changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/parse-time-string/parse-time-string.c b/parse-time-string/parse-time-string.c
> index ccad422b3c8d..1cef47d4b0bd 100644
> --- a/parse-time-string/parse-time-string.c
> +++ b/parse-time-string/parse-time-string.c
> @@ -1081,10 +1081,10 @@ parse_time (struct state *state, char sep,
> return set_user_tz (state, state->delim, v1, v2);
> }
>
> - if (!is_valid_time (v1, v2, v3))
> + if (!is_valid_time (v1, v2, n3 ? v3 : 0))
> return -PARSE_TIME_ERR_INVALIDTIME;
>
> - return set_abs_time (state, v1, v2, n3 ? v3 : 0);
> + return set_abs_time (state, v1, v2, n3 ? (int) v3 : UNSET);
> }
>
> /* strtoul helper that assigns length. */
> diff --git a/test/T490-parse-time-string.sh b/test/T490-parse-time-string.sh
> index 9247bdf89543..6aa9d433bfd4 100755
> --- a/test/T490-parse-time-string.sh
> +++ b/test/T490-parse-time-string.sh
> @@ -79,7 +79,6 @@ ${TEST_DIRECTORY}/parse-time --ref=${REFERENCE} < INPUT > OUTPUT
> test_expect_equal_file INPUT OUTPUT
>
> test_begin_subtest "Second rounding tests"
> -test_subtest_known_broken
> REFERENCE=$(_date Tue Jan 11 12:13:14 +0000 2011)
> cat <<EOF > INPUT
> 9:15 ==> Tue Jan 11 09:15:14 +0000 2011
> --
> 2.1.4
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch
More information about the notmuch
mailing list