- /* Depending on what's bigger, determine start point in window or text. */
- uint16_t start_y = 0;
- if (y < win->frame_size.y)
- {
- start_y = win->frame_size.y - y;
- }
- else if (y > win->frame_size.y)
+
+
+static void add_line_compact(struct Win * win, char * line, attr_t attri,
+ uint16_t * offset, uint8_t last)
+{
+ uint16_t y_start = win->winmap_size.y - (win->winmap_size.y > 0);
+ try_resize_winmap(win, y_start + 1, win->frame_size.x);
+ uint16_t len_line = strlen(line);
+ char * separator = last ? "" : " / ";
+ uint32_t len_line_new = len_line + strlen(separator);
+ char * line_new = try_malloc(len_line_new + 1, __func__);
+ int test = sprintf(line_new, "%s%s", line, separator);
+ exit_trouble(test < 0, __func__, "sprintf");
+ uint16_t x = 0;
+ uint16_t y;
+ uint32_t z;
+ for (z = 0, y = y_start; z < len_line_new; y++)