Rubén Justo <rjusto@xxxxxxxxx> writes: >> even with "less -F" >> (--quit-if-one-screen). As we know how much output we are throwing >> at the user, we'd want to make this conditional to the size of the >> hunk being shown and the terminal height. > > Are you thinking of something like?: I don't. Your hunk may have overly wide lines in which case counting the number of lines may be insuffucient to measure the necessary display height. Besides, comparison with term_columns() is meaningless unless your window is square ;-) An explicit 'P' might be palatable, though. Thanks. > > diff --git a/add-patch.c b/add-patch.c > index cefa3941a3..495baad3ac 100644 > --- a/add-patch.c > +++ b/add-patch.c > @@ -1449,11 +1449,18 @@ static int patch_update_file(struct add_p_state *s, > strbuf_reset(&s->buf); > if (file_diff->hunk_nr) { > if (rendered_hunk_index != hunk_index) { > - setup_pager(); > + int lines = 0; > render_hunk(s, hunk, 0, colored, &s->buf); > + for(int i = 0; i < s->buf.len; i++) { > + if (s->buf.buf[i] == '\n') > + lines++; > + } > + if (lines > term_columns()) > + setup_pager(); > fputs(s->buf.buf, stdout); > rendered_hunk_index = hunk_index; > - wait_for_pager(); > + if (lines > term_columns()) > + wait_for_pager(); > } > > strbuf_reset(&s->buf); > > This would significantly reduce the blast radius. > > Thanks.