NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

lib/47596: parsedate() misparses 'last sunday -1 day'



>Number:         47596
>Category:       lib
>Synopsis:       parsedate() misparses 'last sunday -1 day'
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    lib-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Feb 25 20:25:00 +0000 2013
>Originator:     David Laight
>Release:        6.0
>Organization:
None
>Environment:
>Description:
The parsedate() code (in libutil/parsedate.y) always processes the 'last 
sunday' after adjusting the current time for any relative time offsets.

This means that "date -d 'last sunday -5 days" reports the sunday before 5 days 
ago - not the intended tuesday of last week.

(Discovered when moving a small script from a different OS.)

Workaround:
date -d "@$(date -d 'last sunday' +%s) -5 days"
>How-To-Repeat:

>Fix:
Rewrite the parser so that it modifies the time as it processes the input 
string (instead of trying to remember the fields and doing the work afterwards).



Home | Main Index | Thread Index | Old Index