From: Stefan Sperling Subject: Re: tog: trim draw_file function To: Christian Weisgerber Cc: gameoftrees@openbsd.org Date: Tue, 1 Dec 2020 23:33:21 +0100 On Tue, Dec 01, 2020 at 10:56:44PM +0100, Christian Weisgerber wrote: > trim redundant parameters from draw_file() > > ok? ok > diff 96a8f9905bb7d639228a7d1b7f2a70f861dcac4e ec8cce79ebf39769b27a2e330d28675dbd9715fd > blob - a01c6e1e86a6f30106b9b37c6436e8348b51faa6 > blob + 9e8f37800c19a09e0e0e5dedd96f8a6cca3c59e1 > --- tog/tog.c > +++ tog/tog.c > @@ -2887,11 +2887,10 @@ add_matched_line(int *wtotal, const char *line, int wl > } > > static const struct got_error * > -draw_file(struct tog_view *view, FILE *f, int first_displayed_line, int nlines, > - off_t *line_offsets, int selected_line, int max_lines, > - int *last_displayed_line, int *eof, const char *header, > - struct tog_colors *colors, int matched_line, regmatch_t *regmatch) > +draw_file(struct tog_view *view, const char *header) > { > + struct tog_diff_view_state *s = &view->state.diff; > + regmatch_t *regmatch = &view->regmatch; > const struct got_error *err; > int nprinted = 0; > char *line; > @@ -2899,17 +2898,19 @@ draw_file(struct tog_view *view, FILE *f, int first_di > size_t len; > wchar_t *wline; > int width; > + int max_lines = view->nlines; > + int nlines = s->nlines; > off_t line_offset; > > - line_offset = line_offsets[first_displayed_line - 1]; > - if (fseeko(f, line_offset, SEEK_SET) == -1) > + line_offset = s->line_offsets[s->first_displayed_line - 1]; > + if (fseeko(s->f, line_offset, SEEK_SET) == -1) > return got_error_from_errno("fseek"); > > werase(view->window); > > if (header) { > if (asprintf(&line, "[%d/%d] %s", > - first_displayed_line - 1 + selected_line, nlines, > + s->first_displayed_line - 1 + s->selected_line, nlines, > header) == -1) > return got_error_from_errno("asprintf"); > err = format_line(&wline, &width, line, view->ncols, 0); > @@ -2932,19 +2933,19 @@ draw_file(struct tog_view *view, FILE *f, int first_di > max_lines--; > } > > - *eof = 0; > + s->eof = 0; > while (max_lines > 0 && nprinted < max_lines) { > - line = parse_next_line(f, &len); > + line = parse_next_line(s->f, &len); > if (line == NULL) { > - *eof = 1; > + s->eof = 1; > break; > } > > - tc = match_color(colors, line); > + tc = match_color(&s->colors, line); > if (tc) > wattr_on(view->window, > COLOR_PAIR(tc->colorpair), NULL); > - if (first_displayed_line + nprinted == matched_line && > + if (s->first_displayed_line + nprinted == s->matched_line && > regmatch->rm_so >= 0 && regmatch->rm_so < regmatch->rm_eo) { > err = add_matched_line(&width, line, view->ncols, 0, > view->window, regmatch); > @@ -2971,13 +2972,14 @@ draw_file(struct tog_view *view, FILE *f, int first_di > free(line); > } > if (nprinted >= 1) > - *last_displayed_line = first_displayed_line + (nprinted - 1); > + s->last_displayed_line = s->first_displayed_line + > + (nprinted - 1); > else > - *last_displayed_line = first_displayed_line; > + s->last_displayed_line = s->first_displayed_line; > > view_vborder(view); > > - if (*eof) { > + if (s->eof) { > while (nprinted < view->nlines) { > waddch(view->window, '\n'); > nprinted++; > @@ -3574,10 +3576,7 @@ show_diff_view(struct tog_view *view) > free(id_str1); > free(id_str2); > > - return draw_file(view, s->f, s->first_displayed_line, s->nlines, > - s->line_offsets, s->selected_line, view->nlines, > - &s->last_displayed_line, &s->eof, header, &s->colors, > - s->matched_line, &view->regmatch); > + return draw_file(view, header); > } > > static const struct got_error * > -- > Christian "naddy" Weisgerber naddy@mips.inka.de > >