diff options
Diffstat (limited to 'wt-status.c')
| -rw-r--r-- | wt-status.c | 28 | 
1 files changed, 24 insertions, 4 deletions
diff --git a/wt-status.c b/wt-status.c index b54eac5af6..7036fa28dc 100644 --- a/wt-status.c +++ b/wt-status.c @@ -849,6 +849,8 @@ static void wt_status_print_verbose(struct wt_status *s)  {  	struct rev_info rev;  	struct setup_revision_opt opt; +	int dirty_submodules; +	const char *c = color(WT_STATUS_HEADER, s);  	init_revisions(&rev, NULL);  	DIFF_OPT_SET(&rev.diffopt, ALLOW_TEXTCONV); @@ -873,7 +875,25 @@ static void wt_status_print_verbose(struct wt_status *s)  		rev.diffopt.use_color = 0;  		wt_status_add_cut_line(s->fp);  	} +	if (s->verbose > 1 && s->commitable) { +		/* print_updated() printed a header, so do we */ +		if (s->fp != stdout) +			wt_status_print_trailer(s); +		status_printf_ln(s, c, _("Changes to be committed:")); +		rev.diffopt.a_prefix = "c/"; +		rev.diffopt.b_prefix = "i/"; +	} /* else use prefix as per user config */  	run_diff_index(&rev, 1); +	if (s->verbose > 1 && +	    wt_status_check_worktree_changes(s, &dirty_submodules)) { +		status_printf_ln(s, c, +			"--------------------------------------------------"); +		status_printf_ln(s, c, _("Changes not staged for commit:")); +		setup_work_tree(); +		rev.diffopt.a_prefix = "i/"; +		rev.diffopt.b_prefix = "w/"; +		run_diff_files(&rev, 0); +	}  }  static void wt_status_print_tracking(struct wt_status *s) @@ -1140,7 +1160,7 @@ static char *read_and_strip_branch(const char *path)  	if (strbuf_read_file(&sb, git_path("%s", path), 0) <= 0)  		goto got_nothing; -	while (&sb.len && sb.buf[sb.len - 1] == '\n') +	while (sb.len && sb.buf[sb.len - 1] == '\n')  		strbuf_setlen(&sb, sb.len - 1);  	if (!sb.len)  		goto got_nothing; @@ -1222,6 +1242,8 @@ static void wt_status_get_detached_from(struct wt_status_state *state)  		state->detached_from =  			xstrdup(find_unique_abbrev(cb.nsha1, DEFAULT_ABBREV));  	hashcpy(state->detached_sha1, cb.nsha1); +	state->detached_at = !get_sha1("HEAD", sha1) && +			     !hashcmp(sha1, state->detached_sha1);  	free(ref);  	strbuf_release(&cb.buf); @@ -1310,10 +1332,8 @@ void wt_status_print(struct wt_status *s)  				on_what = _("rebase in progress; onto ");  				branch_name = state.onto;  			} else if (state.detached_from) { -				unsigned char sha1[20];  				branch_name = state.detached_from; -				if (!get_sha1("HEAD", sha1) && -				    !hashcmp(sha1, state.detached_sha1)) +				if (state.detached_at)  					on_what = _("HEAD detached at ");  				else  					on_what = _("HEAD detached from ");  | 
