Mercurial > ~mikael > mcabber > hg
comparison mcabber/mcabber/utils.c @ 2168:87244845fd9c
Handle fractional seconds with more (or less) than 3 digits in timestamps
According to XEP-0082, the "fractional second addendum to Time MAY contain
any number of digits".
Reported by Holger.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 11 Dec 2014 20:19:37 +0100 |
parents | 361603828d9e |
children | 189abf03ef24 |
comparison
equal
deleted
inserted
replaced
2167:634cc23e8c1c | 2168:87244845fd9c |
---|---|
427 | 427 |
428 if (hms_succ) { | 428 if (hms_succ) { |
429 int tzhrs, tzmins; | 429 int tzhrs, tzmins; |
430 | 430 |
431 if (*c == '.') /* dealing with precision we don't care about */ | 431 if (*c == '.') /* dealing with precision we don't care about */ |
432 c += 4; | 432 while (isdigit(*++c)) |
433 ; | |
433 | 434 |
434 if ((*c == '+' || *c == '-') && | 435 if ((*c == '+' || *c == '-') && |
435 sscanf(c+1, "%02d:%02d", &tzhrs, &tzmins)) { | 436 sscanf(c+1, "%02d:%02d", &tzhrs, &tzmins)) { |
436 tzoff = tzhrs*60*60 + tzmins*60; | 437 tzoff = tzhrs*60*60 + tzmins*60; |
437 if (*c == '+') | 438 if (*c == '+') |