From 8fd2d1b6e15861ab3a3f3b2e0213b626c196a2bb Mon Sep 17 00:00:00 2001 From: tsauerbeck Date: Sat, 30 Oct 2004 19:18:32 +0000 Subject: [PATCH] even more splitting SVN revision: 12097 --- legacy/edje/src/lib/edje_text.c | 56 ++++++++++++++++++++------------- 1 file changed, 35 insertions(+), 21 deletions(-) diff --git a/legacy/edje/src/lib/edje_text.c b/legacy/edje/src/lib/edje_text.c index e83a025b57..7194651062 100644 --- a/legacy/edje/src/lib/edje_text.c +++ b/legacy/edje/src/lib/edje_text.c @@ -287,6 +287,39 @@ _edje_text_real_part_on_del(Edje *ed, Edje_Real_Part *ep) } } +static void +_edje_text_fit_set(char *buf, char *text, int c1, int c2) +{ + /* helper function called from _edje_text_fit_x(). + * note that we can use strcpy()/strcat() safely, the buffer lengths + * are checked in the caller. + */ + + if (c1 >= 0) + { + strcpy(buf, "..."); + + if (c2 >= 0) + { + strncat(buf, text + c1, c2 - c1); + strcat(buf, "..."); + } + else + strcat(buf, text + c1); + } + else + { + if (c2 >= 0) + { + strncpy(buf, text, c2); + buf[c2] = 0; + strcat(buf, "..."); + } + else + strcpy(buf, text); + } +} + static char * _edje_text_fit_x(Edje *ed, Edje_Real_Part *ep, Edje_Calc_Params *params, @@ -397,27 +430,8 @@ _edje_text_fit_x(Edje *ed, Edje_Real_Part *ep, buf[0] = 0; - if (c1 >= 0) - { - strcpy(buf, "..."); - if (c2 >= 0) - { - strncat(buf, text + c1, c2 - c1); - strcat(buf, "..."); - } - else - strcat(buf, text + c1); - } - else - { - if (c2 >= 0) - { - strncpy(buf, text, c2); - buf[c2] = 0; - strcat(buf, "..."); - } - else strcpy(buf, text); - } + _edje_text_fit_set(buf, text, c1, c2); + evas_object_text_text_set(ep->object, buf); evas_object_geometry_get(ep->object, NULL, NULL, &tw, &th); }