diff --git a/src/list_window.c b/src/list_window.c
index 3c7c29adbcf0007d8a73b9860a54ce1e744bb327..c3ecc72751e7fe65da4934b06f17eda7e433a4dd 100644 (file)
--- a/src/list_window.c
+++ b/src/list_window.c
char *second_column = NULL;
highlight = false;
- label = callback(lw->start + i, &highlight, &second_column, callback_data);
wmove(lw->w, i, 0);
- if (label) {
- list_window_paint_row(lw->w, i, lw->cols,
- show_cursor &&
- lw->start + i >= lw->selected_start &&
- lw->start + i <= lw->selected_end,
- highlight,
- label, second_column);
-
- if (second_column != NULL)
- g_free(second_column);
- } else
- wclrtoeol(lw->w);
+ if (lw->start + i >= lw->length) {
+ wclrtobot(lw->w);
+ break;
+ }
+
+ label = callback(lw->start + i, &highlight, &second_column, callback_data);
+ assert(label != NULL);
+
+ list_window_paint_row(lw->w, i, lw->cols,
+ show_cursor &&
+ lw->start + i >= lw->selected_start &&
+ lw->start + i <= lw->selected_end,
+ highlight,
+ label, second_column);
+
+ if (second_column != NULL)
+ g_free(second_column);
}
if (options.hardware_cursor && lw->selected >= lw->start &&
const char *label;
do {
- while ((label = callback(i,&h,NULL,callback_data))) {
+ while (i < lw->length) {
+ label = callback(i, &h, NULL, callback_data);
+ assert(label != NULL);
+
if (str && label && match_line(label, str)) {
lw->selected = i;
if(!lw->range_selection || i > lw->selected_end)
return false;
do {
- while (i >= 0 && (label = callback(i,&h,NULL,callback_data))) {
+ while (i >= 0) {
+ label = callback(i, &h, NULL, callback_data);
+ assert(label != NULL);
+
if( str && label && match_line(label, str) ) {
lw->selected = i;
if(!lw->range_selection || i > (int)lw->selected_end)
const char *str)
{
bool h;
- unsigned i = 0;
const char *label;
- while ((label = callback(i,&h,NULL,callback_data))) {
- if (label && label[0] == '[')
+ for (unsigned i = 0; i < lw->length; ++i) {
+ label = callback(i, &h, NULL, callback_data);
+ assert(label != NULL);
+
+ if (label[0] == '[')
label++;
#ifndef NCMPC_MINI
if (str && label &&
lw->selected_start = i;
return true;
}
- i++;
}
return false;
}