Subject: Re: [PATCH i18n 09/11] i18n: apply: update say_patch_name to give translators complete sentence

From: Zbigniew Jędrzejewski-Szmek <[email-masked]>
Date: Sun, 22 Apr 2012 18:42:25 +0200

On 04/16/2012 02:50 PM, Nguyễn Thái Ngọc Duy wrote:
> ---
>  builtin/apply.c |   33 +++++++++++++++++++--------------
>  1 files changed, 19 insertions(+), 14 deletions(-)
> 
> diff --git a/builtin/apply.c b/builtin/apply.c
> index 6e9a02e..87922cf 100644
> --- a/builtin/apply.c
> +++ b/builtin/apply.c
> @@ -335,22 +335,25 @@ static void clear_image(struct image *image)
>  	image->len = 0;
>  }
>  
> -static void say_patch_name(FILE *output, const char *pre,
> -			   struct patch *patch, const char *post)
> +/* fmt must contain _one_ %s and no other substitution */
> +static void say_patch_name(FILE *output, struct patch *patch, const char *fmt)
>  {
> -	fputs(pre, output);
> +	struct strbuf sb = STRBUF_INIT;
> +
>  	if (patch->old_name && patch->new_name &&
>  	    strcmp(patch->old_name, patch->new_name)) {
> -		quote_c_style(patch->old_name, NULL, output, 0);
> -		fputs(" => ", output);
> -		quote_c_style(patch->new_name, NULL, output, 0);
> +		quote_c_style(patch->old_name, &sb, NULL, 0);
> +		strbuf_addstr(&sb, " => ");
> +		quote_c_style(patch->new_name, &sb, NULL, 0);
>  	} else {
>  		const char *n = patch->new_name;
>  		if (!n)
>  			n = patch->old_name;
> -		quote_c_style(n, NULL, output, 0);
> +		quote_c_style(n, &sb, NULL, 0);
>  	}
> -	fputs(post, output);
> +	fprintf(output, fmt, sb.buf);
> +	fprintf(output, "\n");
> +	strbuf_release(&sb);
>  }
>  
>  #define CHUNKSIZE (8192)
> @@ -3165,8 +3168,8 @@ static int check_patch_list(struct patch *patch)
>  	prepare_fn_table(patch);
>  	while (patch) {
>  		if (apply_verbosely)
> -			say_patch_name(stderr,
> -				       "Checking patch ", patch, "...\n");
> +			say_patch_name(stderr, patch,
> +				       _("Checking patch %s..."));
>  		err |= check_patch(patch);
>  		patch = patch->next;
>  	}
> @@ -3530,6 +3533,7 @@ static int write_out_one_reject(struct patch *patch)
>  	char namebuf[PATH_MAX];
>  	struct fragment *frag;
>  	int cnt = 0;
> +	struct strbuf sb = STRBUF_INIT;
>  
>  	for (cnt = 0, frag = patch->fragments; frag; frag = frag->next) {
>  		if (!frag->rejected)
> @@ -3539,8 +3543,8 @@ static int write_out_one_reject(struct patch *patch)
>  
>  	if (!cnt) {
>  		if (apply_verbosely)
> -			say_patch_name(stderr,
> -				       "Applied patch ", patch, " cleanly.\n");
> +			say_patch_name(stderr, patch,
> +				       _("Applied patch %s cleanly."));
>  		return 0;
>  	}
>  
> @@ -3551,8 +3555,9 @@ static int write_out_one_reject(struct patch *patch)
>  		die(_("internal error"));
>  
>  	/* Say this even without --verbose */
> -	say_patch_name(stderr, "Applying patch ", patch, " with");
> -	fprintf(stderr, " %d rejects...\n", cnt);
> +	strbuf_addf(&sb, _("Applying patch %%s with %d rejects..."), cnt);
Shouldn't this part be:
        strbuf_addf(&sb, Q_("Applying patch %%s with one reject...",
                            "Applying patch %%s with %d rejects...",
                            cnt), cnt);
?

-
Zbyszek