Commit f4784b3e authored by Junio C Hamano's avatar Junio C Hamano

Merge branch 'jn/status-translatable'

* jn/status-translatable:
  commit, status: use status_printf{,_ln,_more} helpers
  commit: refer to commit template as s->fp
  wt-status: add helpers for printing wt-status lines

Conflicts:
	builtin/commit.c
parents 0d7f2421 b926c0d1
......@@ -612,7 +612,6 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
int commitable, saved_color_setting;
struct strbuf sb = STRBUF_INIT;
char *buffer;
FILE *fp;
const char *hook_arg1 = NULL;
const char *hook_arg2 = NULL;
int ident_shown = 0;
......@@ -705,8 +704,8 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
hook_arg2 = "";
}
fp = fopen(git_path(commit_editmsg), "w");
if (fp == NULL)
s->fp = fopen(git_path(commit_editmsg), "w");
if (s->fp == NULL)
die_errno("could not open '%s'", git_path(commit_editmsg));
if (cleanup_mode != CLEANUP_NONE)
......@@ -730,7 +729,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
strbuf_release(&sob);
}
if (fwrite(sb.buf, 1, sb.len, fp) < sb.len)
if (fwrite(sb.buf, 1, sb.len, s->fp) < sb.len)
die_errno("could not write commit template");
strbuf_release(&sb);
......@@ -743,56 +742,58 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
if (use_editor && include_status) {
char *ai_tmp, *ci_tmp;
if (whence != FROM_COMMIT)
fprintf(fp,
"#\n"
"# It looks like you may be committing a %s.\n"
"# If this is not correct, please remove the file\n"
"# %s\n"
"# and try again.\n"
"#\n",
status_printf_ln(s, GIT_COLOR_NORMAL,
"\n"
"It looks like you may be committing a %s.\n"
"If this is not correct, please remove the file\n"
" %s\n"
"and try again.\n"
"",
whence_s(),
git_path(whence == FROM_MERGE
? "MERGE_HEAD"
: "CHERRY_PICK_HEAD"));
fprintf(fp,
"\n"
"# Please enter the commit message for your changes.");
fprintf(s->fp, "\n");
status_printf(s, GIT_COLOR_NORMAL,
"Please enter the commit message for your changes.");
if (cleanup_mode == CLEANUP_ALL)
fprintf(fp,
status_printf_more(s, GIT_COLOR_NORMAL,
" Lines starting\n"
"# with '#' will be ignored, and an empty"
"with '#' will be ignored, and an empty"
" message aborts the commit.\n");
else /* CLEANUP_SPACE, that is. */
fprintf(fp,
status_printf_more(s, GIT_COLOR_NORMAL,
" Lines starting\n"
"# with '#' will be kept; you may remove them"
"with '#' will be kept; you may remove them"
" yourself if you want to.\n"
"# An empty message aborts the commit.\n");
"An empty message aborts the commit.\n");
if (only_include_assumed)
fprintf(fp, "# %s\n", only_include_assumed);
status_printf_ln(s, GIT_COLOR_NORMAL,
"%s", only_include_assumed);
ai_tmp = cut_ident_timestamp_part(author_ident->buf);
ci_tmp = cut_ident_timestamp_part(committer_ident.buf);
if (strcmp(author_ident->buf, committer_ident.buf))
fprintf(fp,
status_printf_ln(s, GIT_COLOR_NORMAL,
"%s"
"# Author: %s\n",
ident_shown++ ? "" : "#\n",
"Author: %s",
ident_shown++ ? "" : "\n",
author_ident->buf);
if (!user_ident_sufficiently_given())
fprintf(fp,
status_printf_ln(s, GIT_COLOR_NORMAL,
"%s"
"# Committer: %s\n",
ident_shown++ ? "" : "#\n",
"Committer: %s",
ident_shown++ ? "" : "\n",
committer_ident.buf);
if (ident_shown)
fprintf(fp, "#\n");
status_printf_ln(s, GIT_COLOR_NORMAL, "");
saved_color_setting = s->use_color;
s->use_color = 0;
commitable = run_status(fp, index_file, prefix, 1, s);
commitable = run_status(s->fp, index_file, prefix, 1, s);
s->use_color = saved_color_setting;
*ai_tmp = ' ';
......@@ -814,7 +815,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
}
strbuf_release(&committer_ident);
fclose(fp);
fclose(s->fp);
/*
* Reject an attempt to record a non-merge empty commit without
......
......@@ -175,6 +175,15 @@ int git_color_default_config(const char *var, const char *value, void *cb)
return git_default_config(var, value, cb);
}
void color_print_strbuf(FILE *fp, const char *color, const struct strbuf *sb)
{
if (*color)
fprintf(fp, "%s", color);
fprintf(fp, "%s", sb->buf);
if (*color)
fprintf(fp, "%s", GIT_COLOR_RESET);
}
static int color_vfprintf(FILE *fp, const char *color, const char *fmt,
va_list args, const char *trail)
{
......
#ifndef COLOR_H
#define COLOR_H
struct strbuf;
/* 2 + (2 * num_attrs) + 8 + 1 + 8 + 'm' + NUL */
/* "\033[1;2;4;5;7;38;5;2xx;48;5;2xxm\0" */
/*
......@@ -64,6 +66,7 @@ __attribute__((format (printf, 3, 4)))
int color_fprintf(FILE *fp, const char *color, const char *fmt, ...);
__attribute__((format (printf, 3, 4)))
int color_fprintf_ln(FILE *fp, const char *color, const char *fmt, ...);
void color_print_strbuf(FILE *fp, const char *color, const struct strbuf *sb);
int color_is_nil(const char *color);
......
This diff is collapsed.
......@@ -75,4 +75,11 @@ void wt_status_collect(struct wt_status *s);
void wt_shortstatus_print(struct wt_status *s, int null_termination, int show_branch);
void wt_porcelain_print(struct wt_status *s, int null_termination);
void status_printf_ln(struct wt_status *s, const char *color, const char *fmt, ...)
;
void status_printf(struct wt_status *s, const char *color, const char *fmt, ...)
;
void status_printf_more(struct wt_status *s, const char *color, const char *fmt, ...)
__attribute__((format(printf, 3, 4)));
#endif /* STATUS_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment