diff --git a/legacy/elementary/src/lib/elm_util.c b/legacy/elementary/src/lib/elm_util.c index 6ace55e5dd..3ed96f2693 100644 --- a/legacy/elementary/src/lib/elm_util.c +++ b/legacy/elementary/src/lib/elm_util.c @@ -36,129 +36,7 @@ _str_append(char *str, const char *txt, int *len, int *alloc) char * _elm_util_mkup_to_text(const char *mkup) { - char *str = NULL; - int str_len = 0, str_alloc = 0; - char *s, *p; - char *tag_start, *tag_end, *esc_start, *esc_end, *ts; - - if (!mkup) return NULL; - tag_start = tag_end = esc_start = esc_end = NULL; - p = (char *)mkup; - s = p; - for (;;) - { - if ((!*p) || - (tag_end) || (esc_end) || - (tag_start) || (esc_start)) - { - if (tag_end) - { - char *ttag; - - ttag = malloc(tag_end - tag_start); - if (ttag) - { - _str_ncpy(ttag, tag_start + 1, tag_end - tag_start - 1); - ttag[tag_end - tag_start - 1] = 0; - if ((!strcmp(ttag, "br")) || - (!strcmp(ttag, "\n")) || - (!strcmp(ttag, "\\n"))) - str = _str_append(str, "\n", &str_len, &str_alloc); - else if ((!strcmp(ttag, "tab")) || - (!strcmp(ttag, "\t")) || - (!strcmp(ttag, "\\t"))) - str = _str_append(str, "\t", &str_len, &str_alloc); - else if (!strcmp(ttag, "ps")) /* Unicode paragraph separator */ - str = _str_append(str, "\xE2\x80\xA9", &str_len, &str_alloc); - free(ttag); - } - tag_start = tag_end = NULL; - } - else if (esc_end) - { - ts = malloc(esc_end - esc_start + 1); - if (ts) - { - const char *esc; - _str_ncpy(ts, esc_start, esc_end - esc_start); - ts[esc_end - esc_start] = 0; - esc = evas_textblock_escape_string_get(ts); - if (esc) - str = _str_append(str, esc, &str_len, &str_alloc); - free(ts); - } - esc_start = esc_end = NULL; - } - else if ((!*p) && (s)) - { - ts = malloc(p - s + 1); - if (ts) - { - _str_ncpy(ts, s, p - s); - ts[p - s] = 0; - str = _str_append(str, ts, &str_len, &str_alloc); - free(ts); - } - } - - if (!*p) break; - } - if (*p == '<') - { - if ((s) && (!esc_start)) - { - tag_start = p; - tag_end = NULL; - ts = malloc(p - s + 1); - if (ts) - { - _str_ncpy(ts, s, p - s); - ts[p - s] = 0; - str = _str_append(str, ts, &str_len, &str_alloc); - free(ts); - } - s = NULL; - } - } - else if (*p == '>') - { - if (tag_start) - { - tag_end = p; - /*
*/ - /* ^^^ */ - if ((p - mkup > 1) && (p[-1] == '/')) p--; - s = p + 1; - } - } - else if (*p == '&') - { - if ((s) && (!tag_start)) - { - esc_start = p; - esc_end = NULL; - ts = malloc(p - s + 1); - if (ts) - { - _str_ncpy(ts, s, p - s); - ts[p - s] = 0; - str = _str_append(str, ts, &str_len, &str_alloc); - free(ts); - } - s = NULL; - } - } - else if (*p == ';') - { - if (esc_start) - { - esc_end = p + 1; - s = p + 1; - } - } - p++; - } - return str; + return evas_textblock_text_markup_to_utf8(NULL, mkup); } char *