diff options
| -rw-r--r-- | nncmpp.c | 18 | 
1 files changed, 7 insertions, 11 deletions
| @@ -663,6 +663,9 @@ row_buffer_space (struct row_buffer *self, int width, chtype attrs)  static void  row_buffer_ellipsis (struct row_buffer *self, int target, chtype attrs)  { +	if (self->total_width <= target) +		return; +  	// TODO: get "attrs" from the last eaten item  	row_buffer_pop_cells (self, self->total_width - target); @@ -738,11 +741,8 @@ app_write_line (const char *str, chtype attrs)  	struct row_buffer buf;  	row_buffer_init (&buf);  	row_buffer_append (&buf, str, attrs); - -	if (buf.total_width > COLS) -		row_buffer_ellipsis (&buf, COLS, attrs); +	row_buffer_ellipsis (&buf, COLS, attrs);  	row_buffer_space (&buf, COLS - buf.total_width, attrs); -  	row_buffer_flush (&buf);  	row_buffer_free (&buf);  } @@ -758,10 +758,8 @@ app_next_row (chtype attrs)  static void  app_flush_buffer (struct row_buffer *buf, chtype attrs)  { -	if (buf->total_width > COLS) -		row_buffer_ellipsis (buf, COLS, attrs); -  	app_next_row (attrs); +	row_buffer_ellipsis (buf, COLS, attrs);  	row_buffer_flush (buf);  	row_buffer_free (buf);  } @@ -1083,10 +1081,9 @@ app_draw_view (void)  			else  				*attrs |=  row_attrs;  		} -		if (buf.total_width > view_width) -			row_buffer_ellipsis (&buf, view_width, row_attrs);  		mvwhline (stdscr, g_ctx.header_height + row, 0, ' ' | row_attrs, COLS); +		row_buffer_ellipsis (&buf, view_width, row_attrs);  		row_buffer_flush (&buf);  		row_buffer_free (&buf);  	} @@ -1696,8 +1693,7 @@ debug_tab_on_item_draw (size_t item_index, struct row_buffer *buffer, int width)  	row_buffer_append (buffer, item->text, item->attrs);  	// We override the formatting including colors -- do it for the whole line -	if (buffer->total_width > width) -		row_buffer_ellipsis (buffer, width, item->attrs); +	row_buffer_ellipsis (buffer, width, item->attrs);  	row_buffer_space (buffer, width - buffer->total_width, item->attrs);  } | 
