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 == '+')