commit - ac66afb8fb3969b18a36010bfb8d8a90a54685e7
commit + 2246482eaf5f2c63df9af5b3436312be16907a56
blob - 1a425faf447bc2565598eab69be83532393fee3a
blob + 691ab915f783045757051241faacca38bd22898f
--- lib/object.c
+++ lib/object.c
if (len == 0)
break;
buf = got_object_blob_get_read_buf(blob);
- for (i = 0; i < len; i++) {
+ for (i = hdrlen; i < len; i++) {
if (buf[i] != '\n')
continue;
if (nlines)
}
if (line_offsets && nlines && total_len) {
(*line_offsets)[*nlines - 1] = off;
- off = *total_len + i + 1;
+ off = *total_len + i + 1 - got_object_blob_get_hdrlen(blob);
}
}
if (total_len)
blob - 8268cae07e60377775edbec94b0fc5e5607397e1
blob + 77aba92b932766d94d94f684e5085155417a8a6f
--- tog/tog.c
+++ tog/tog.c
static const struct got_error *
search_next_blame_view(struct tog_view *view)
{
- const struct got_error *err = NULL;
struct tog_blame_view_state *s = &view->state.blame;
int lineno;
if (s->matched_line) {
if (view->searching == TOG_SEARCH_FORWARD)
- lineno = s->first_displayed_line - 1 + s->selected_line + 1;
+ lineno = s->matched_line + 1;
else
- lineno = s->first_displayed_line - 1 + s->selected_line - 1;
+ lineno = s->matched_line - 1;
} else {
if (view->searching == TOG_SEARCH_FORWARD)
lineno = 1;
free(line);
break;
}
+
if (view->searching == TOG_SEARCH_FORWARD)
lineno = 1;
else
}
free(line);
line = parse_next_line(s->blame.f, &len);
- if (line == NULL)
- break;
- if (match_line(line, &view->regex)) {
+ if (line && match_line(line, &view->regex)) {
view->search_next_done = 1;
s->matched_line = lineno;
free(line);
break;
}
free(line);
- line = NULL;
if (view->searching == TOG_SEARCH_FORWARD)
lineno++;
else
}
if (s->matched_line) {
- int cur = s->first_displayed_line - 1 + s->selected_line;
- while (cur < s->matched_line) {
- err = input_blame_view(NULL, NULL, NULL, view, KEY_DOWN);
- if (err)
- return err;
- cur++;
- }
- while (cur > s->matched_line) {
- err = input_blame_view(NULL, NULL, NULL, view, KEY_UP);
- if (err)
- return err;
- cur--;
- }
s->first_displayed_line = s->matched_line;
s->selected_line = 1;
}