Enlightenment CVS committal Author : lok Project : e17 Module : libs/etk
Dir : e17/libs/etk/src/lib Modified Files: etk_entry.c Log Message: strndup replaced by more common code. =================================================================== RCS file: /cvs/e/e17/libs/etk/src/lib/etk_entry.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -3 -r1.52 -r1.53 --- etk_entry.c 5 May 2008 13:47:04 -0000 1.52 +++ etk_entry.c 6 May 2008 22:17:47 -0000 1.53 @@ -132,17 +132,24 @@ if (!entry) return; - if (!entry->editable_object) + if (!text) + text_tmp = NULL; + else if (entry->text_limit == 0) + text_tmp = strdup(text); + else { - if (entry->text != text) - { - free(entry->text); - entry->text = text ? entry->text_limit == 0 ? strdup(text) : strndup(text, entry->text_limit) : NULL; - } + text_tmp = malloc(entry->text_limit + 1); + text_tmp[entry->text_limit] = '\0'; + strncpy(text_tmp, text, entry->text_limit); + } + + if (!entry->editable_object && entry->text != text) + { + free(entry->text); + entry->text = text_tmp; } else { - text_tmp = !text || entry->text_limit == 0 ? strdup(text) : strndup(text, entry->text_limit); etk_editable_text_set(entry->editable_object, text_tmp); free(text_tmp); } @@ -653,7 +660,14 @@ etk_editable_text_set(entry->editable_object, entry->text); else { - text_tmp = entry->text ? strndup(entry->text, entry->text_limit): NULL; + if (!entry->text) + text_tmp = NULL; + else + { + text_tmp = malloc(entry->text_limit+1); + text_tmp[entry->text_limit] = '\0'; + strncpy(text_tmp, entry->text, entry->text_limit); + } etk_editable_text_set(entry->editable_object, text_tmp); free(text_tmp); } @@ -712,7 +726,6 @@ { Etk_Entry *entry; const char *text; - char *text_tmp; if (!(entry = ETK_ENTRY(etk_object_data_get(object, "_Etk_Entry::Entry")))) return ETK_TRUE; @@ -741,7 +754,11 @@ if (entry->text_limit==0) entry->text = strdup(text); else - entry->text = strndup(text, entry->text_limit); + { + entry->text = malloc(entry->text_limit+1); + entry->text[entry->text_limit] = '\0'; + strncpy(entry->text, text, entry->text_limit); + } } else entry->text = NULL; ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs