commit 6e6c6afb3ab80111a7b6a873834659c0df8cf7a1 from: Omar Polo date: Wed Jul 14 20:35:00 2021 UTC fix (some) offset mis-calculations commit - 87f7918db232f45516ff314a7e30b4009196fc1a commit + 6e6c6afb3ab80111a7b6a873834659c0df8cf7a1 blob - 74b0f596b190da9014ca05d7eb6fe63bdd0aa8cb blob + 62558fb313faf3888287a234a1e10431bfa815b1 --- cmd.c +++ cmd.c @@ -52,8 +52,10 @@ forward_line(struct buffer *buffer, int n) return did; if (vl->parent->flags & L_HIDDEN) continue; - if (buffer->current_line == buffer->top_line) + if (buffer->current_line == buffer->top_line) { + buffer->line_off--; buffer->top_line = vl; + } buffer->current_line = vl; n++; } @@ -152,7 +154,6 @@ cmd_scroll_line_up(struct buffer *buffer) forward_line(buffer, -1); - buffer->line_off--; buffer->top_line = vl; } @@ -218,6 +219,10 @@ cmd_push_button(struct buffer *buffer) if (l->type == LINE_PRE_END) break; l->flags ^= L_HIDDEN; + if (l->flags & L_HIDDEN) + buffer->line_max--; + else + buffer->line_max++; } break; default: blob - cf6d51f34bd83d0c7f24647f255e03c028f98c6c blob + 6b0c182475640190da132d9a8c0e6a30fb88d278 --- wrap.c +++ wrap.c @@ -82,7 +82,8 @@ push_line(struct buffer *buffer, struct line *l, const { struct vline *vl; - buffer->line_max++; + if (!(l->flags & L_HIDDEN)) + buffer->line_max++; if ((vl = calloc(1, sizeof(*vl))) == NULL) return 0;