summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJari Vetoniemi <mailroxas@gmail.com>2014-04-12 14:15:37 +0300
committerJari Vetoniemi <mailroxas@gmail.com>2014-04-12 14:15:37 +0300
commitf2608c3c64cb72e1e315142076a7c356facad7de (patch)
tree33e5ec98589bb8223d0ae7eedac394b11ae7a8a6
parent9d867bea0c0fdd620d258ecf30e30b40e5dbe3b1 (diff)
downloadbemenu-f2608c3c64cb72e1e315142076a7c356facad7de.tar.gz
bemenu-f2608c3c64cb72e1e315142076a7c356facad7de.tar.bz2
bemenu-f2608c3c64cb72e1e315142076a7c356facad7de.zip
Handle empty items.
-rw-r--r--client/client.c6
-rw-r--r--lib/draw/curses.c2
2 files changed, 5 insertions, 3 deletions
diff --git a/client/client.c b/client/client.c
index ecaed25..ff32d1b 100644
--- a/client/client.c
+++ b/client/client.c
@@ -103,8 +103,10 @@ int main(int argc, char **argv)
if (status == BM_RUN_RESULT_SELECTED) {
unsigned int i, count;
bmItem **items = bmMenuGetSelectedItems(menu, &count);
- for (i = 0; i < count; ++i)
- printf("%s\n", bmItemGetText(items[i]));
+ for (i = 0; i < count; ++i) {
+ const char *text = bmItemGetText(items[i]);
+ printf("%s\n", (text ? text : ""));
+ }
}
bmMenuFree(menu);
diff --git a/lib/draw/curses.c b/lib/draw/curses.c
index cb1d204..653a07d 100644
--- a/lib/draw/curses.c
+++ b/lib/draw/curses.c
@@ -190,7 +190,7 @@ static void _bmDrawCursesRender(const bmMenu *menu)
for (i = (menu->index / (lines - 1)) * (lines - 1); i < itemsCount && cl < lines; ++i) {
int highlighted = (items[i] == bmMenuGetHighlightedItem(menu));
int color = (highlighted ? 2 : (_bmMenuItemIsSelected(menu, items[i]) ? 1 : 0));
- _bmDrawCursesDrawLine(color, cl++, "%s%s", (highlighted ? ">> " : " "), items[i]->text);
+ _bmDrawCursesDrawLine(color, cl++, "%s%s", (highlighted ? ">> " : " "), (items[i]->text ? items[i]->text : "(null)"));
}
unsigned int ncols = curses.getmaxx(curses.stdscr) - titleLen - 1;