From 808aeafbbf3d49f6232b6132b789ceabc656e079 Mon Sep 17 00:00:00 2001 From: Jonas Fonseca Date: Thu, 10 Apr 2008 23:51:57 +0200 Subject: [PATCH] Fix regression from "Improve staging of diff chunks" In commit 234918423a4fac44375317e6c9e7ee54ea09379c the change to stage_update reads: static bool stage_update(struct view *view, struct line *line) { - if (!opt_no_head && stage_line_type != LINE_STAT_UNTRACKED && - (line->type == LINE_DIFF_CHUNK || !stage_status.status)) { - if (!stage_update_chunk(view, line)) { where the !stage_status.status part was meant to match whole sections. Reinstate this behavior so that pressing 'u' when in the stage view for a section of changes it will stage all changed files in that section. --- tig.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tig.c b/tig.c index 83523de..2fa9018 100644 --- a/tig.c +++ b/tig.c @@ -4548,6 +4548,18 @@ stage_update(struct view *view, struct line *line) return FALSE; } + } else if (!stage_status.status) { + view = VIEW(REQ_VIEW_STATUS); + + for (line = view->line; line < view->line + view->lines; line++) + if (line->type == stage_line_type) + break; + + if (!status_update_files(view, line + 1)) { + report("Failed to update files"); + return FALSE; + } + } else if (!status_update_file(&stage_status, stage_line_type)) { report("Failed to update file"); return FALSE; -- 2.30.2