[i18ninfo] Add version flag 77/162777/2
authorHyunjee Kim <hj0426.kim@samsung.com>
Tue, 5 Dec 2017 06:58:25 +0000 (15:58 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Thu, 7 Dec 2017 08:20:57 +0000 (17:20 +0900)
Change-Id: I765d838294e31d840b02454718c29935c793ddd4
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
i18ninfo/i18ninfo.cpp
i18ninfo/i18ninfo_argp.h

index 1e7e17f..2ba443e 100644 (file)
@@ -220,12 +220,14 @@ char *__print_i18n_type_string(const char *type, int num)
                case 11:
                        COPY_STR(str, "I18N_UNUMBER_CURRENCY_PLURAL", strlen("I18N_UNUMBER_CURRENCY_PLURAL"));
                        break;
+#if (__TIZEN_VER > 4)
                case 12:
                        COPY_STR(str, "I18N_UNUMBER_CURRENCY_ACCOUNTING", strlen("I18N_UNUMBER_CURRENCY_ACCOUNTING"));
                        break;
                case 13:
                        COPY_STR(str, "I18N_UNUMBER_CASH_CURRENCY", strlen("I18N_UNUMBER_CASH_CURRENCY"));
                        break;
+#endif
                case 14:
                        COPY_STR(str, "I18N_UNUMBER_FORMAT_STYLE_COUNT", strlen("I18N_UNUMBER_FORMAT_STYLE_COUNT"));
                        break;
@@ -593,118 +595,6 @@ static int __get_number_format(const char *input_number)
        return 0;
 }
 
-int32_t _ustring_append_n(i18n_uchar *dest, int32_t dest_length, const i18n_uchar *src, int32_t src_length)
-{
-       for (int32_t i = 0; i < src_length; ++i) {
-               dest[dest_length] = src[i];
-               ++dest_length;
-       }
-       return dest_length;
-}
-
-i18n_uchar *_convert_unicode_numeric_values(const i18n_uchar *input, int32_t length)
-{
-       if (length <= 0)
-               return NULL;
-       int32_t output_length = 0;
-
-       double *values = (double *) malloc(length * sizeof(double));
-       int max_value_length = 0;
-
-       /* Count output length */
-       for (int32_t i = 0; i < length; ++i) {
-               double value = 0;
-               i18n_uchar_get_numeric_value(input[i], &value);
-               values[i] = value;
-               if (value != I18N_U_NO_NUMERIC_VALUE) {
-                       int value_length = snprintf(NULL, 0, "%g", value);
-                       if (value_length > max_value_length)
-                               max_value_length = value_length;
-                       output_length += value_length;
-               } else {
-                       output_length += 1;
-               }
-       }
-
-       /* +1 NULL terminator */
-       max_value_length += 1;
-
-       i18n_uchar *output = (i18n_uchar *) malloc((output_length + 1) * sizeof(input[0]));
-       i18n_ustring_mem_set(output, '\0', output_length + 1);
-       char *tmp = (char *) malloc((max_value_length) * sizeof(input[0]));
-       i18n_uchar *c = (i18n_uchar *) malloc((max_value_length) * sizeof(input[0]));
-
-       int32_t current_length = 0;
-       for (int32_t i = 0; i < length; ++i) {
-               double value = values[i];
-               if (value != I18N_U_NO_NUMERIC_VALUE) {
-                       /* Convert double to i18n_uchar */
-                       if (NULL == tmp) {
-                               free(values);
-                               free(c);
-                               free(tmp);
-                               free(output);
-                               return NULL;
-                       }
-                       snprintf(tmp, max_value_length, "%g", value);
-                       i18n_ustring_copy_ua_n(c, tmp, max_value_length);
-                       /* Append converted number to output string */
-                       int32_t src_length = i18n_ustring_get_length(c);
-                       current_length = _ustring_append_n(output, current_length, c, src_length);
-               } else {
-                       current_length = _ustring_append_n(output, current_length, input + i, 1);
-               }
-       }
-       free(values);
-       free(c);
-       free(tmp);
-
-       return output;
-}
-
-static int __convert_number(char *custom_number)
-{
-       printf(" - To convert the number\n");
-       printf("****************************************\n");
-
-       i18n_uchar *number_to_convert;
-
-       if (!custom_number) {
-               const char *input_number = "abc০১২৩def四五六ⅦⅧⅨ";
-               printf(" Input number : %s\n", input_number);
-               number_to_convert =
-                   (i18n_uchar *) malloc(sizeof(i18n_uchar) * (strlen(input_number) + 1));
-               if (NULL == number_to_convert) {
-                       free(number_to_convert);
-                       return I18N_ERROR_OUT_OF_MEMORY;
-               }
-               i18n_ustring_copy_ua_n(number_to_convert, input_number, BUF_SIZE);
-
-               i18n_uchar *str = _convert_unicode_numeric_values(number_to_convert, i18n_ustring_get_length(number_to_convert));
-               char p_string[BUF_SIZE];
-               i18n_ustring_copy_au_n(p_string, str, BUF_SIZE);
-               printf(" Convert number : %s\n", p_string);
-               free(str);
-               PRINT_ASCIIDOC_LOG("|===\n");
-
-       } else {
-               char *input_number = custom_number;
-               printf(" Input number : %s\n", input_number);
-               number_to_convert =
-                   (i18n_uchar *) malloc(sizeof(i18n_uchar) * (strlen(input_number) + 1));
-               i18n_ustring_copy_ua(number_to_convert, input_number);
-
-               i18n_uchar *str = _convert_unicode_numeric_values(number_to_convert, i18n_ustring_get_length(number_to_convert));
-               char p_string[BUF_SIZE];
-               i18n_ustring_copy_au_n(p_string, str, BUF_SIZE);
-               printf(" Convert number : %s\n", p_string);
-               free(str);
-               PRINT_ASCIIDOC_LOG("|===\n");
-       }
-       free(number_to_convert);
-       return 0;
-}
-
 static int __get_symbol()
 {
        printf(" - To get various number symbol\n");
@@ -1129,6 +1019,119 @@ static int __show_ubidi(char *input_text)
        return 0;
 }
 
+#if (__TIZEN_VER > 4)
+int32_t _ustring_append_n(i18n_uchar *dest, int32_t dest_length, const i18n_uchar *src, int32_t src_length)
+{
+       for (int32_t i = 0; i < src_length; ++i) {
+               dest[dest_length] = src[i];
+               ++dest_length;
+       }
+       return dest_length;
+}
+
+i18n_uchar *_convert_unicode_numeric_values(const i18n_uchar *input, int32_t length)
+{
+       if (length <= 0)
+               return NULL;
+       int32_t output_length = 0;
+
+       double *values = (double *) malloc(length * sizeof(double));
+       int max_value_length = 0;
+
+       /* Count output length */
+       for (int32_t i = 0; i < length; ++i) {
+               double value = 0;
+               i18n_uchar_get_numeric_value(input[i], &value);
+               values[i] = value;
+               if (value != I18N_U_NO_NUMERIC_VALUE) {
+                       int value_length = snprintf(NULL, 0, "%g", value);
+                       if (value_length > max_value_length)
+                               max_value_length = value_length;
+                       output_length += value_length;
+               } else {
+                       output_length += 1;
+               }
+       }
+
+       /* +1 NULL terminator */
+       max_value_length += 1;
+
+       i18n_uchar *output = (i18n_uchar *) malloc((output_length + 1) * sizeof(input[0]));
+       i18n_ustring_mem_set(output, '\0', output_length + 1);
+       char *tmp = (char *) malloc((max_value_length) * sizeof(input[0]));
+       i18n_uchar *c = (i18n_uchar *) malloc((max_value_length) * sizeof(input[0]));
+
+       int32_t current_length = 0;
+       for (int32_t i = 0; i < length; ++i) {
+               double value = values[i];
+               if (value != I18N_U_NO_NUMERIC_VALUE) {
+                       /* Convert double to i18n_uchar */
+                       if (NULL == tmp) {
+                               free(values);
+                               free(c);
+                               free(tmp);
+                               free(output);
+                               return NULL;
+                       }
+                       snprintf(tmp, max_value_length, "%g", value);
+                       i18n_ustring_copy_ua_n(c, tmp, max_value_length);
+                       /* Append converted number to output string */
+                       int32_t src_length = i18n_ustring_get_length(c);
+                       current_length = _ustring_append_n(output, current_length, c, src_length);
+               } else {
+                       current_length = _ustring_append_n(output, current_length, input + i, 1);
+               }
+       }
+       free(values);
+       free(c);
+       free(tmp);
+
+       return output;
+}
+
+static int __convert_number(char *custom_number)
+{
+       printf(" - To convert the number\n");
+       printf("****************************************\n");
+
+       i18n_uchar *number_to_convert;
+
+       if (!custom_number) {
+               const char *input_number = "abc০১২৩def四五六ⅦⅧⅨ";
+               printf(" Input number : %s\n", input_number);
+               number_to_convert =
+                   (i18n_uchar *) malloc(sizeof(i18n_uchar) * (strlen(input_number) + 1));
+               if (NULL == number_to_convert) {
+                       free(number_to_convert);
+                       return I18N_ERROR_OUT_OF_MEMORY;
+               }
+               i18n_ustring_copy_ua_n(number_to_convert, input_number, BUF_SIZE);
+
+               i18n_uchar *str = _convert_unicode_numeric_values(number_to_convert, i18n_ustring_get_length(number_to_convert));
+               char p_string[BUF_SIZE];
+               i18n_ustring_copy_au_n(p_string, str, BUF_SIZE);
+               printf(" Convert number : %s\n", p_string);
+               free(str);
+               PRINT_ASCIIDOC_LOG("|===\n");
+
+       } else {
+               char *input_number = custom_number;
+               printf(" Input number : %s\n", input_number);
+               number_to_convert =
+                   (i18n_uchar *) malloc(sizeof(i18n_uchar) * (strlen(input_number) + 1));
+               i18n_ustring_copy_ua(number_to_convert, input_number);
+
+               i18n_uchar *str = _convert_unicode_numeric_values(number_to_convert, i18n_ustring_get_length(number_to_convert));
+               char p_string[BUF_SIZE];
+               i18n_ustring_copy_au_n(p_string, str, BUF_SIZE);
+               printf(" Convert number : %s\n", p_string);
+               free(str);
+               PRINT_ASCIIDOC_LOG("|===\n");
+       }
+       free(number_to_convert);
+       return 0;
+}
+
 struct create_mu {
        const char* unit_type;
        const char* unit_subtype;
@@ -1339,6 +1342,7 @@ static int __show_measure_unit(char *input_number)
 
        return 0;
 }
+#endif
 
 void allTest()
 {
@@ -1444,20 +1448,34 @@ void showTzdataVersion()
        __get_tzdata_version();
 }
 
-void showMeasureUnit(char *input)
+void showUbidi(char *input)
 {
-       printf("\n== Show Measure Unit");
+       printf("\n== Show Ubidi");
        printf("\n****************************************\n");
-       __show_measure_unit(input);
+       __show_ubidi(input);
 }
 
-void showUbidi(char *input)
+#if (__TIZEN_VER > 4)
+void testNumberConvert(char *input)
 {
-       printf("\n== Show Ubidi");
+       int ret = 0;
+
+       printf("\n== Number Converting Test");
        printf("\n****************************************\n");
-       __show_ubidi(input);
+       ret = __convert_number(input);
+       if (ret == -1) {
+               printf("number converting failed\n");
+       }
 }
 
+void showMeasureUnit(char *input)
+{
+       printf("\n== Show Measure Unit");
+       printf("\n****************************************\n");
+       __show_measure_unit(input);
+}
+#endif
+
 void showDatentimeFormat(char *locale)
 {
        int ret = 0, i = 0;
@@ -1577,18 +1595,6 @@ void testNumberSymbol(char *locale)
        }
 }
 
-void testNumberConvert(char *input)
-{
-       int ret = 0;
-
-       printf("\n== Number Converting Test");
-       printf("\n****************************************\n");
-       ret = __convert_number(input);
-       if (ret == -1) {
-               printf("number converting failed\n");
-       }
-}
-
 void testString(char *input)
 {
        int ret = 0;
@@ -1653,10 +1659,6 @@ int main(int argc, char *argv[])
                testNumberSymbol(arguments.setLocale);
        }
 
-       if (arguments.testNumberConvert) {
-               testNumberConvert(arguments.testNumberConvertArg);
-       }
-
        if (arguments.testString) {
                testString(arguments.testStringArg);
        }
@@ -1677,9 +1679,15 @@ int main(int argc, char *argv[])
                showUbidi(arguments.testTextArg);
        }
 
+#if (__TIZEN_VER > 4)
+       if (arguments.testNumberConvert) {
+               testNumberConvert(arguments.testNumberConvertArg);
+       }
+
        if (arguments.showMeasureUnit) {
                showMeasureUnit(arguments.testInputNumArg);
        }
+#endif
 
        return 0;
 }
index ff30d50..5f1f224 100644 (file)
@@ -2,7 +2,7 @@
 #include <error.h>
 #include <argp.h>
 
-
+#define __TIZEN_VER 5
 
 const char *argp_program_version = "i18ninfo 1.0";
 const char *argp_program_bug_address = "<hj0426.kim@samsung.com>";
@@ -22,13 +22,15 @@ static struct argp_option options[] = {
        {"test-datentime",                      'd', "DateTime",          OPTION_ARG_OPTIONAL,  "Date and time format test", 0  },
        {"test-number-format",          'n', "Number",            0,                                    "Number format test", 0 },
        {"test-number-symbol",          'N', 0,                           0,                                    "Number symbol test", 0 },
-       {"test-number-converting",      'c', "Convert",           OPTION_ARG_OPTIONAL,  "Number converting test", 0     },
        {"test-string",                         's', "Word",              OPTION_ARG_OPTIONAL,  "String test", 0  },
        {"test-string-iter",            'S', "Type",              OPTION_ARG_OPTIONAL,  "String iteration test", 0       },
        {"set-locale",                          'l', "locale",            0,                                    "Set specific locale", 0         },
-       {"show-ubidi",                          'b', 0,                           OPTION_ARG_OPTIONAL,  "Show examples of the Unicode Bidirectional Algorithm", 0        },
        {"print-ASCII",                         'p', 0,                           0,                                    "Print results as the ASCIIDoc Format", 0        },
+       {"show-ubidi",                          'b', 0,                           OPTION_ARG_OPTIONAL,  "Show examples of the Unicode Bidirectional Algorithm", 0        },
+#if (__TIZEN_VER > 4)
+       {"test-number-converting",      'c', "Convert",           OPTION_ARG_OPTIONAL,  "Number converting test", 0     },
        {"show-measure-unit",           'm', "Number",            OPTION_ARG_OPTIONAL,  "Show measure unit", 0   },
+#endif
        { 0 }
 };
 
@@ -43,24 +45,28 @@ struct arguments {
        int testDatentime;
        int testNumberFormat;
        int testNumberSymbol;
-       int testNumberConvert;
        int testString;
        int testStringIter;
-       int showUbidi;
        int printASCII;
+       int showUbidi;
+#if (__TIZEN_VER > 4)
+       int testNumberConvert;
        int showMeasureUnit;
+#endif
 
        char *arg1;                                       /* arg1 */
        char **strings;                           /* [string…] */
 
        char *testTimeArg;
        char *testNumberFormatArg;
-       char *testNumberConvertArg;
        char *testStringArg;
        char *testStringIterArg;
+       char *setLocale;
        char *testTextArg;
+#if (__TIZEN_VER > 4)
+       char *testNumberConvertArg;
        char *testInputNumArg;
-       char *setLocale;
+#endif
 };
 
 /* Parse a single option. */
@@ -119,18 +125,8 @@ parse_opt(int key, char *arg, struct argp_state *state)
                arguments->arg_flag = 9;
                arguments->testNumberSymbol = 1;
                break;
-       case 'c':
-               arguments->arg_flag = 10;
-               arguments->testNumberConvert = 1;
-
-               nextArg = state->argv[state->next];
-               if (nextArg && *nextArg != '-') {
-                       arguments->testNumberConvertArg = nextArg;
-                       state->next++;
-               }
-               break;
        case 's':
-               arguments->arg_flag = 11;
+               arguments->arg_flag = 10;
                arguments->testString = 1;
 
                nextArg = state->argv[state->next];
@@ -140,7 +136,7 @@ parse_opt(int key, char *arg, struct argp_state *state)
                }
                break;
        case 'S':
-               arguments->arg_flag = 12;
+               arguments->arg_flag = 11;
                arguments->testStringIter = 1;
 
                nextArg = state->argv[state->next];
@@ -150,11 +146,15 @@ parse_opt(int key, char *arg, struct argp_state *state)
                }
                break;
        case 'l':
-               arguments->arg_flag = 13;
+               arguments->arg_flag = 12;
                arguments->setLocale = arg;
                break;
+       case 'p':
+               arguments->arg_flag = 13;
+               arguments->printASCII = 1;
+               break;
        case 'b':
-               arguments->arg_flag = 14;
+               arguments->arg_flag = 15;
                arguments->showUbidi = 1;
 
                nextArg = state->argv[state->next];
@@ -163,10 +163,8 @@ parse_opt(int key, char *arg, struct argp_state *state)
                        state->next++;
                }
                break;
-       case 'p':
-               arguments->arg_flag = 15;
-               arguments->printASCII = 1;
-               break;
+
+#if (__TIZEN_VER > 4)
        case 'm':
                arguments->arg_flag = 16;
                arguments->showMeasureUnit = 1;
@@ -177,6 +175,20 @@ parse_opt(int key, char *arg, struct argp_state *state)
                        state->next++;
                }
                break;
+
+       case 'c':
+               arguments->arg_flag = 14;
+               arguments->testNumberConvert = 1;
+
+               nextArg = state->argv[state->next];
+               if (nextArg && *nextArg != '-') {
+                       arguments->testNumberConvertArg = nextArg;
+                       state->next++;
+               }
+               break;
+
+#endif
+
        case ARGP_KEY_NO_ARGS:
                if (arguments->arg_flag == 0) {
                        argp_usage(state);