efl_ui_clock: Add 'O' character to ignore POSIX alternative format in format.
authorWoochan Lee <wc0917.lee@samsung.com>
Thu, 31 Aug 2017 05:16:26 +0000 (14:16 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Thu, 31 Aug 2017 05:16:26 +0000 (14:16 +0900)
Summary:
_parse_format() function filtering "_/-/0/^/*" to filter POSIX alternatvie/extension formats,
But the Datetime do not appear in some locale(fa_IR, lzh_TW, my_MM, or_IN) with 'O'.

+ improve code. (not compare with all of the characters. instead of that using strchr)

https://lh.2xlibre.net/values/d_t_fmt/

@fix

Test Plan: Set locale as fa_IR and create DateTime. and see fields, not appears.

Reviewers: jpeg, cedric

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5020

src/lib/elementary/efl_ui_clock.c

index adb904e..77aed38 100644 (file)
@@ -66,6 +66,7 @@ static Format_Map mapping[EFL_UI_CLOCK_TYPE_COUNT] = {
 
 static const char *multifield_formats = "cxXrRTDF";
 static const char *ignore_separators = "()";
+static const char *ignore_extensions = "E0_-O^#";
 static Clock_Mod_Api *dt_mod = NULL;
 
 static const char SIG_CHANGED[] = "changed";
@@ -285,7 +286,7 @@ _parse_format(Evas_Object *obj,
      {
         if (fmt_parsing)
           {
-             if (cur == '_' || cur == '-' || cur == '0' || cur == '^' || cur == '#')
+             if (strchr(ignore_extensions, cur))
                {
                   fmt_ptr++;
                   continue;