commit - 67c0cb403ba1e661f6ea1f1a6e02077d0aa2b06a
commit + 028fff5774c0d94d4a1aad1a18ba0efa7aa429d3
blob - 48638c81dd69c3990a39403314a7501e8e8e5e10
blob + c4e4801a051319e8e36bdd92f8b4c5b8909460e9
--- cmd.c
+++ cmd.c
{
struct vline *vl;
- if (buffer->top_line == NULL)
- return;
+ for (;;) {
+ if (buffer->top_line == NULL)
+ return;
- if ((vl = TAILQ_PREV(buffer->top_line, vhead, vlines))
- == NULL)
- return;
+ if ((vl = TAILQ_PREV(buffer->top_line, vhead, vlines))
+ == NULL)
+ return;
- forward_line(buffer, -1);
+ buffer->top_line = vl;
+
+ if (vl->parent->flags & L_HIDDEN)
+ continue;
+
+ break;
+ }
+
buffer->line_off--;
- buffer->top_line = vl;
+
+ forward_line(buffer, -1);
}
void
if (!forward_line(buffer, +1))
return;
- buffer->top_line = TAILQ_NEXT(buffer->top_line, vlines);
+ for (;;) {
+ if (buffer->top_line == NULL)
+ return;
+
+ buffer->top_line = TAILQ_NEXT(buffer->top_line, vlines);
+ if (buffer->top_line->parent->flags & L_HIDDEN)
+ continue;
+ break;
+ }
+
buffer->line_off++;
}