]> git.ipfire.org Git - thirdparty/newt.git/blobdiff - listbox.c
install python modules to purelib and platlib
[thirdparty/newt.git] / listbox.c
index 1a77e0e64726d5fb9fc96986c5b88144787c6d34..aae4f836f7c108b02ca93de826fe3a1800637c85 100644 (file)
--- a/listbox.c
+++ b/listbox.c
@@ -315,7 +315,8 @@ void newtListboxSetData(newtComponent co, int num, void * data) {
     for(i = 0, item = li->boxItems; item != NULL && i < num;
        i++, item = item->next);
 
-    item->data = data;
+    if (item)
+       item->data = data;
 }
 
 int newtListboxAppendEntry(newtComponent co, const char * text,
@@ -529,16 +530,7 @@ static void listboxDraw(newtComponent co)
        else
            SLsmg_set_color(NEWT_COLORSET_LISTBOX);
 
-       SLsmg_write_nstring(NULL, li->curWidth);
-       newtGotorc(co->top + i + li->bdyAdjust, co->left + li->bdxAdjust);
-       if (wstrlen(item->text, -1) > li->curWidth) {
-           char *tmp;
-           tmp = strdup(item->text);
-           trim_string(tmp, li->curWidth);
-           SLsmg_write_string(tmp);
-           free(tmp);
-       } else
-           SLsmg_write_string(item->text);
+       SLsmg_write_nstring(item->text, li->curWidth);
 
        if (li->flags & NEWT_FLAG_MULTIPLE) {
            newtGotorc(co->top + i + li->bdyAdjust, co->left + li->bdxAdjust);
@@ -678,7 +670,7 @@ static struct eventResult listboxEvent(newtComponent co, struct event ev) {
                         li->currItem > li->startShowItem)
                          li->startShowItem =
                              li->currItem > li->numItems - li->curHeight ?
-                             li->startShowItem = li->numItems - li->curHeight :
+                             li->numItems - li->curHeight :
                              li->currItem;
                      if(li->sb)
                          newtScrollbarSet(li->sb, li->currItem + 1, li->numItems);
@@ -766,7 +758,7 @@ static void listboxDestroy(newtComponent co) {
     struct listbox * li = co->data;
     struct items * item, * nextitem;
 
-    nextitem = item = li->boxItems;
+    item = li->boxItems;
 
     while (item != NULL) {
        nextitem = item->next;