diff options
Diffstat (limited to 'libmailutils/datetime/scantime.c')
-rw-r--r-- | libmailutils/datetime/scantime.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/libmailutils/datetime/scantime.c b/libmailutils/datetime/scantime.c index 0b118b765..8e19a803b 100644 --- a/libmailutils/datetime/scantime.c +++ b/libmailutils/datetime/scantime.c @@ -538,7 +538,31 @@ mu_scan_datetime (const char *input, const char *fmt, } } break; - + + case 'Z': + /* Time-zone in abbreviated form */ + { + char tzs[6]; + p = mu_str_skip_class_comp (input, MU_CTYPE_SPACE); + n = p - input; + if (n > sizeof (tzs) - 1) + { + rc = MU_ERR_PARSE; + break; + } + memcpy (tzs, input, n); + tzs[n] = 0; + if (mu_timezone_offset (tzs, &n)) + { + rc = MU_ERR_PARSE; + break; + } + if (tz) + tz->utc_offset = n; + input = p; + } + break; + case '%': if (*input == '%') input++; |