From 4e5cc7a04b26bc8a16dd35a318cbe6221a126924 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Mon, 20 Dec 2010 06:05:59 +0000 Subject: [PATCH] and use new util calls from entry too and remove old code. SVN revision: 55650 --- src/lib/elm_entry.c | 198 ++-------------------------------------------------- 1 file changed, 4 insertions(+), 194 deletions(-) diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 0ed1835..2ddc36d 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -940,196 +940,6 @@ _getbase(Evas_Object *obj) return "base"; } -static char * -_str_append(char *str, const char *txt, int *len, int *alloc) -{ - int txt_len = strlen(txt); - - if (txt_len <= 0) return str; - if ((*len + txt_len) >= *alloc) - { - char *str2; - int alloc2; - - alloc2 = *alloc + txt_len + 128; - str2 = realloc(str, alloc2); - if (!str2) return str; - *alloc = alloc2; - str = str2; - } - strcpy(str + *len, txt); - *len += txt_len; - return str; -} - -/*FIXME: Sholud be implemented somewhere else, it really depends on the context - * because some markups can be implemented otherwise according to style. - * probably doing it in textblock and making it translate according to it's - * style is correct. */ -static char * -_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) - { - strncpy(ttag, tag_start + 1, tag_end - tag_start - 1); - ttag[tag_end - tag_start - 1] = 0; - if (!strcmp(ttag, "br")) - str = _str_append(str, "\n", &str_len, &str_alloc); - else if (!strcmp(ttag, "\n")) - str = _str_append(str, "\n", &str_len, &str_alloc); - else if (!strcmp(ttag, "\\n")) - str = _str_append(str, "\n", &str_len, &str_alloc); - else if (!strcmp(ttag, "\t")) - str = _str_append(str, "\t", &str_len, &str_alloc); - else if (!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; - strncpy(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) - { - strncpy(ts, s, p - s); - ts[p - s] = 0; - str = _str_append(str, ts, &str_len, &str_alloc); - free(ts); - } - break; - } - } - if (*p == '<') - { - if ((s) && (!esc_start)) - { - tag_start = p; - tag_end = NULL; - ts = malloc(p - s + 1); - if (ts) - { - strncpy(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; - s = p + 1; - } - } - else if (*p == '&') - { - if ((s) && (!tag_start)) - { - esc_start = p; - esc_end = NULL; - ts = malloc(p - s + 1); - if (ts) - { - strncpy(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; - s = p + 1; - } - } - p++; - } - return str; -} - - -static char * -_text_to_mkup(const char *text) -{ - char *str = NULL; - int str_len = 0, str_alloc = 0; - int ch, pos = 0, pos2 = 0; - - if (!text) return NULL; - for (;;) - { - pos = pos2; - pos2 = evas_string_char_next_get((char *)(text), pos2, &ch); - if ((ch <= 0) || (pos2 <= 0)) break; - if (ch == '\n') - str = _str_append(str, "
", &str_len, &str_alloc); - else if (ch == '\t') - str = _str_append(str, "<\t>", &str_len, &str_alloc); - else if (ch == '<') - str = _str_append(str, "<", &str_len, &str_alloc); - else if (ch == '>') - str = _str_append(str, ">", &str_len, &str_alloc); - else if (ch == '&') - str = _str_append(str, "&", &str_len, &str_alloc); - else if (ch == 0x2029) /* PS */ - str = _str_append(str, "", &str_len, &str_alloc); - else - { - char tstr[16]; - - strncpy(tstr, text + pos, pos2 - pos); - tstr[pos2 - pos] = 0; - str = _str_append(str, tstr, &str_len, &str_alloc); - } - } - return str; -} - static void _signal_entry_changed(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__) { @@ -1422,7 +1232,7 @@ _event_selection_notify(void *data, int type __UNUSED__, void *event) { if (text_data->text) { - char *txt = _text_to_mkup(text_data->text); + char *txt = _elm_util_text_to_mkup(text_data->text); if (txt) { @@ -1442,7 +1252,7 @@ _event_selection_notify(void *data, int type __UNUSED__, void *event) { if (text_data->text) { - char *txt = _text_to_mkup(text_data->text); + char *txt = _elm_util_text_to_mkup(text_data->text); if (txt) { @@ -2578,7 +2388,7 @@ elm_entry_text_filter_remove(Evas_Object *obj, void (*func) (void *data, Evas_Ob EAPI char * elm_entry_markup_to_utf8(const char *s) { - char *ss = _mkup_to_text(s); + char *ss = _elm_util_mkup_to_text(s); if (!ss) ss = strdup(""); return ss; } @@ -2594,7 +2404,7 @@ elm_entry_markup_to_utf8(const char *s) EAPI char * elm_entry_utf8_to_markup(const char *s) { - char *ss = _text_to_mkup(s); + char *ss = _elm_util_text_to_mkup(s); if (!ss) ss = strdup(""); return ss; } -- 2.7.4