[devel] taskwarrior: '-942464' is not a valid date in the '' format.
Kirill Maslinsky
kirill на altlinux.org
Вт Май 11 21:34:56 MSK 2021
Всем привет,
По мотивам борьбы с rpm-build-python собираю новую версию task (проект
taskwarrior.org). Некоторые тесты (в хэшере) в новой версии стали падать
с интересной ошибкой:
$ task three due:someday
'-942464' is not a valid date in the '' format.
Может, кто-нибудь подскажет, куда копать?
Вот код, который отвечает за формирование даты “someday”:
// later/abbrev [ !<alpha> && !<digit> ]
// someday/abbrev [ !<alpha> && !<digit> ]
bool Datetime::initializeLater (Pig& pig)
{
auto checkpoint = pig.cursor ();
std::string token;
if ((pig.skipPartial ("later", token) &&
token.length () >= static_cast <std::string::size_type> (Datetime::minimumMatchLength))
||
(pig.skipPartial ("someday", token) &&
token.length () >= static_cast <std::string::size_type> (std::max (Datetime::minimumMatchLength, 4))))
{
auto following = pig.peek ();
if (! unicodeLatinAlpha (following) &&
! unicodeLatinDigit (following))
{
time_t now = time (nullptr);
struct tm* t = localtime (&now);
t->tm_hour = t->tm_min = t->tm_sec = 0;
t->tm_year = 8099; // Year 9999
t->tm_mon = 11;
t->tm_mday = 30;
t->tm_isdst = -1;
_date = mktime (t);
return true;
}
}
В предыдущей версии someday был отнесен в 2038 год, и всё работало, но
тут разработчики решили, видимо, что 2038 — это слишком уж скоро)
Коммит, где сдвинули дату:
https://github.com/GothenburgBitFactory/libshared/commit/f4f2803ab33274a113b1a0265fb32c271fa805ea#diff-87bf33523de4b0db7b37702262674dbf849e9f79686761c334c1cd04412b295e
--
KM
Подробная информация о списке рассылки Devel