diff options
| author | jhurst <jhurst@cinecert.com> | 2014-09-21 13:27:43 +0000 |
|---|---|---|
| committer | jhurst <> | 2014-09-21 13:27:43 +0000 |
| commit | ab3e3df49a9d4a44a3bf11211e31bdeac3ef7bcf (patch) | |
| tree | 52023c92807dde6cb56835e957349327f1b9df0b /src/KM_util.cpp | |
| parent | 8d24b6effb0377fc3041c2e024e7c5593caecc52 (diff) | |
imf bugs
date parse bug
timed-text transform removed
Diffstat (limited to 'src/KM_util.cpp')
| -rwxr-xr-x | src/KM_util.cpp | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/src/KM_util.cpp b/src/KM_util.cpp index 333b00a..8f8107f 100755 --- a/src/KM_util.cpp +++ b/src/KM_util.cpp @@ -829,9 +829,9 @@ Kumu::Timestamp::DecodeString(const char* datestr) YMDhms.minute = 0; YMDhms.second = 0; YMDhms.offset = 0; - YMDhms.date.year = atoi(datestr); - YMDhms.date.month = atoi(datestr + 5); - YMDhms.date.day = atoi(datestr + 8); + YMDhms.date.year = strtol(datestr, 0, 10); + YMDhms.date.month = strtol(datestr + 5, 0, 10); + YMDhms.date.day = strtol(datestr + 8, 0, 10); if ( datestr[10] == 'T' ) { @@ -841,8 +841,8 @@ Kumu::Timestamp::DecodeString(const char* datestr) return false; char_count += 6; - YMDhms.hour = atoi(datestr + 11); - YMDhms.minute = atoi(datestr + 14); + YMDhms.hour = strtol(datestr + 11, 0, 10); + YMDhms.minute = strtol(datestr + 14, 0, 10); if ( datestr[16] == ':' ) { @@ -850,16 +850,23 @@ Kumu::Timestamp::DecodeString(const char* datestr) return false; char_count += 3; - YMDhms.second = atoi(datestr + 17); + YMDhms.second = strtol(datestr + 17, 0, 10); } if ( datestr[19] == '.' ) { - if ( ! ( isdigit(datestr[20]) && isdigit(datestr[21]) && isdigit(datestr[22]) ) ) - return false; - + if ( ! isdigit(datestr[20]) ) + { + return false; + } + // we don't carry the ms value - datestr += 4; + while ( isdigit(datestr[20]) ) + { + ++datestr; + } + + ++datestr; } if ( datestr[19] == '-' || datestr[19] == '+' ) @@ -871,8 +878,8 @@ Kumu::Timestamp::DecodeString(const char* datestr) char_count += 6; - ui32_t TZ_hh = atoi(datestr + 20); - ui32_t TZ_mm = atoi(datestr + 23); + ui32_t TZ_hh = strtol(datestr + 20, 0, 10); + ui32_t TZ_mm = strtol(datestr + 23, 0, 10); if ((TZ_hh > 14) || (TZ_mm > 59) || ((TZ_hh == 14) && (TZ_mm > 0))) return false; @@ -1182,8 +1189,10 @@ Kumu::km_token_split(const std::string& str, const std::string& separator) r = strstr(pstr, separator.c_str()); } - if( strlen(pstr) > 0 ) - components.push_back(std::string(pstr)); + if ( strlen(pstr) > 0 ) + { + components.push_back(std::string(pstr)); + } return components; } |
