From: <li...@yo...> - 2007-05-03 23:11:21
|
# HG changeset patch # User Darren Salt <li...@yo...> # Date 1178233816 -3600 # Node ID 34ed57e732a8dad757f38b67400c53847576deaf # Parent baf7d11150fefbd1581098654c56262a3a89ba16 Properly parse negative times. diff -r 34ed57e732a8dad757f38b67400c53847576deaf -r baf7d11150fefbd1581098654c56262a3a89ba16 ChangeLog --- a/ChangeLog Fri May 04 00:10:16 2007 +0100 +++ b/ChangeLog Wed May 02 13:36:21 2007 +0100 @@ -73,6 +73,7 @@ 0.5.900:2007/??/?? * Use PNG versions of various icons if SVG support isn't present. [Bug 1708332] * Fix the default audio visualisation setting (should always be goom). + * Fix parsing of negative times. 0.5.11: 2007/02/01 [dsalt] diff -r 34ed57e732a8dad757f38b67400c53847576deaf -r baf7d11150fefbd1581098654c56262a3a89ba16 src/utils.c --- a/src/utils.c Fri May 04 00:10:16 2007 +0100 +++ b/src/utils.c Wed May 02 13:36:21 2007 +0100 @@ -351,11 +351,15 @@ int parse_timestring (const char *string int hours = 0, minutes = 0; double seconds = 0; + int sign = (*string_time == '-') ? -1 : 1; + if (sign < 0) + ++string_time; + if (sscanf (string_time, "%d:%d:%lf", &hours, &minutes, &seconds) == 3) - return hours * 3600000 + minutes * 60000 + seconds * 1000; + return sign * (hours * 3600000 + minutes * 60000 + seconds * 1000); if (sscanf (string_time, "%d:%lf", &minutes, &seconds) == 2) - return minutes * 60000 + seconds * 1000; + return sign * (minutes * 60000 + seconds * 1000); return 0; } |