Merge branch 'nd/i18n'
More message strings marked for i18n. By Nguyễn Thái Ngọc Duy (10) and Jonathan Nieder (1) * nd/i18n: help: replace underlining "help -a" headers using hyphens with a blank line i18n: bundle: mark strings for translation i18n: index-pack: mark strings for translation i18n: apply: update say_patch_name to give translators complete sentence i18n: apply: mark strings for translation i18n: remote: mark strings for translation i18n: make warn_dangling_symref() automatically append \n i18n: help: mark strings for translation i18n: mark relative dates for translation strbuf: convenience format functions with \n automatically appended Makefile: feed all header files to xgettext
This commit is contained in:
206
builtin/apply.c
206
builtin/apply.c
@ -103,7 +103,7 @@ static void parse_whitespace_option(const char *option)
|
||||
ws_error_action = correct_ws_error;
|
||||
return;
|
||||
}
|
||||
die("unrecognized whitespace option '%s'", option);
|
||||
die(_("unrecognized whitespace option '%s'"), option);
|
||||
}
|
||||
|
||||
static void parse_ignorewhitespace_option(const char *option)
|
||||
@ -118,7 +118,7 @@ static void parse_ignorewhitespace_option(const char *option)
|
||||
ws_ignore_action = ignore_ws_change;
|
||||
return;
|
||||
}
|
||||
die("unrecognized whitespace ignore option '%s'", option);
|
||||
die(_("unrecognized whitespace ignore option '%s'"), option);
|
||||
}
|
||||
|
||||
static void set_default_whitespace_mode(const char *whitespace_option)
|
||||
@ -375,22 +375,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, const char *fmt, struct patch *patch)
|
||||
{
|
||||
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);
|
||||
fputc('\n', output);
|
||||
strbuf_release(&sb);
|
||||
}
|
||||
|
||||
#define SLOP (16)
|
||||
@ -809,7 +812,7 @@ static int has_epoch_timestamp(const char *nameline)
|
||||
if (!stamp) {
|
||||
stamp = xmalloc(sizeof(*stamp));
|
||||
if (regcomp(stamp, stamp_regexp, REG_EXTENDED)) {
|
||||
warning("Cannot prepare timestamp regexp %s",
|
||||
warning(_("Cannot prepare timestamp regexp %s"),
|
||||
stamp_regexp);
|
||||
return 0;
|
||||
}
|
||||
@ -818,7 +821,7 @@ static int has_epoch_timestamp(const char *nameline)
|
||||
status = regexec(stamp, timestamp, ARRAY_SIZE(m), m, 0);
|
||||
if (status) {
|
||||
if (status != REG_NOMATCH)
|
||||
warning("regexec returned %d for input: %s",
|
||||
warning(_("regexec returned %d for input: %s"),
|
||||
status, timestamp);
|
||||
return 0;
|
||||
}
|
||||
@ -899,7 +902,7 @@ static void parse_traditional_patch(const char *first, const char *second, struc
|
||||
}
|
||||
}
|
||||
if (!name)
|
||||
die("unable to find filename in patch at line %d", linenr);
|
||||
die(_("unable to find filename in patch at line %d"), linenr);
|
||||
}
|
||||
|
||||
static int gitdiff_hdrend(const char *line, struct patch *patch)
|
||||
@ -928,17 +931,17 @@ static char *gitdiff_verify_name(const char *line, int isnull, char *orig_name,
|
||||
name = orig_name;
|
||||
len = strlen(name);
|
||||
if (isnull)
|
||||
die("git apply: bad git-diff - expected /dev/null, got %s on line %d", name, linenr);
|
||||
die(_("git apply: bad git-diff - expected /dev/null, got %s on line %d"), name, linenr);
|
||||
another = find_name(line, NULL, p_value, TERM_TAB);
|
||||
if (!another || memcmp(another, name, len + 1))
|
||||
die("git apply: bad git-diff - inconsistent %s filename on line %d", oldnew, linenr);
|
||||
die(_("git apply: bad git-diff - inconsistent %s filename on line %d"), oldnew, linenr);
|
||||
free(another);
|
||||
return orig_name;
|
||||
}
|
||||
else {
|
||||
/* expect "/dev/null" */
|
||||
if (memcmp("/dev/null", line, 9) || line[9] != '\n')
|
||||
die("git apply: bad git-diff - expected /dev/null on line %d", linenr);
|
||||
die(_("git apply: bad git-diff - expected /dev/null on line %d"), linenr);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
@ -1381,7 +1384,7 @@ static void recount_diff(const char *line, int size, struct fragment *fragment)
|
||||
break;
|
||||
}
|
||||
if (ret) {
|
||||
warning("recount: unexpected line: %.*s",
|
||||
warning(_("recount: unexpected line: %.*s"),
|
||||
(int)linelen(line, size), line);
|
||||
return;
|
||||
}
|
||||
@ -1438,7 +1441,7 @@ static int find_header(const char *line, unsigned long size, int *hdrsize, struc
|
||||
struct fragment dummy;
|
||||
if (parse_fragment_header(line, len, &dummy) < 0)
|
||||
continue;
|
||||
die("patch fragment without header at line %d: %.*s",
|
||||
die(_("patch fragment without header at line %d: %.*s"),
|
||||
linenr, (int)len-1, line);
|
||||
}
|
||||
|
||||
@ -1455,8 +1458,12 @@ static int find_header(const char *line, unsigned long size, int *hdrsize, struc
|
||||
continue;
|
||||
if (!patch->old_name && !patch->new_name) {
|
||||
if (!patch->def_name)
|
||||
die("git diff header lacks filename information when removing "
|
||||
"%d leading pathname components (line %d)" , p_value, linenr);
|
||||
die(Q_("git diff header lacks filename information when removing "
|
||||
"%d leading pathname component (line %d)",
|
||||
"git diff header lacks filename information when removing "
|
||||
"%d leading pathname components (line %d)",
|
||||
p_value),
|
||||
p_value, linenr);
|
||||
patch->old_name = xstrdup(patch->def_name);
|
||||
patch->new_name = xstrdup(patch->def_name);
|
||||
}
|
||||
@ -1611,9 +1618,9 @@ static int parse_fragment(const char *line, unsigned long size,
|
||||
patch->lines_deleted += deleted;
|
||||
|
||||
if (0 < patch->is_new && oldlines)
|
||||
return error("new file depends on old contents");
|
||||
return error(_("new file depends on old contents"));
|
||||
if (0 < patch->is_delete && newlines)
|
||||
return error("deleted file still has contents");
|
||||
return error(_("deleted file still has contents"));
|
||||
return offset;
|
||||
}
|
||||
|
||||
@ -1639,7 +1646,7 @@ static int parse_single_patch(const char *line, unsigned long size, struct patch
|
||||
fragment->linenr = linenr;
|
||||
len = parse_fragment(line, size, patch, fragment);
|
||||
if (len <= 0)
|
||||
die("corrupt patch at line %d", linenr);
|
||||
die(_("corrupt patch at line %d"), linenr);
|
||||
fragment->patch = line;
|
||||
fragment->size = len;
|
||||
oldlines += fragment->oldlines;
|
||||
@ -1675,12 +1682,14 @@ static int parse_single_patch(const char *line, unsigned long size, struct patch
|
||||
patch->is_delete = 0;
|
||||
|
||||
if (0 < patch->is_new && oldlines)
|
||||
die("new file %s depends on old contents", patch->new_name);
|
||||
die(_("new file %s depends on old contents"), patch->new_name);
|
||||
if (0 < patch->is_delete && newlines)
|
||||
die("deleted file %s still has contents", patch->old_name);
|
||||
die(_("deleted file %s still has contents"), patch->old_name);
|
||||
if (!patch->is_delete && !newlines && context)
|
||||
fprintf(stderr, "** warning: file %s becomes empty but "
|
||||
"is not deleted\n", patch->new_name);
|
||||
fprintf_ln(stderr,
|
||||
_("** warning: "
|
||||
"file %s becomes empty but is not deleted"),
|
||||
patch->new_name);
|
||||
|
||||
return offset;
|
||||
}
|
||||
@ -1824,7 +1833,7 @@ static struct fragment *parse_binary_hunk(char **buf_p,
|
||||
corrupt:
|
||||
free(data);
|
||||
*status_p = -1;
|
||||
error("corrupt binary patch at line %d: %.*s",
|
||||
error(_("corrupt binary patch at line %d: %.*s"),
|
||||
linenr-1, llen-1, buffer);
|
||||
return NULL;
|
||||
}
|
||||
@ -1853,7 +1862,7 @@ static int parse_binary(char *buffer, unsigned long size, struct patch *patch)
|
||||
forward = parse_binary_hunk(&buffer, &size, &status, &used);
|
||||
if (!forward && !status)
|
||||
/* there has to be one hunk (forward hunk) */
|
||||
return error("unrecognized binary patch at line %d", linenr-1);
|
||||
return error(_("unrecognized binary patch at line %d"), linenr-1);
|
||||
if (status)
|
||||
/* otherwise we already gave an error message */
|
||||
return status;
|
||||
@ -1939,7 +1948,7 @@ static int parse_chunk(char *buffer, unsigned long size, struct patch *patch)
|
||||
*/
|
||||
if ((apply || check) &&
|
||||
(!patch->is_binary && !metadata_changes(patch)))
|
||||
die("patch with only garbage at line %d", linenr);
|
||||
die(_("patch with only garbage at line %d"), linenr);
|
||||
}
|
||||
|
||||
return offset + hdrsize + patchsize;
|
||||
@ -2029,11 +2038,11 @@ static int read_old_data(struct stat *st, const char *path, struct strbuf *buf)
|
||||
switch (st->st_mode & S_IFMT) {
|
||||
case S_IFLNK:
|
||||
if (strbuf_readlink(buf, path, st->st_size) < 0)
|
||||
return error("unable to read symlink %s", path);
|
||||
return error(_("unable to read symlink %s"), path);
|
||||
return 0;
|
||||
case S_IFREG:
|
||||
if (strbuf_read_file(buf, path, st->st_size) != st->st_size)
|
||||
return error("unable to open or read %s", path);
|
||||
return error(_("unable to open or read %s"), path);
|
||||
convert_to_git(path, buf->buf, buf->len, buf, 0);
|
||||
return 0;
|
||||
default:
|
||||
@ -2104,7 +2113,7 @@ static void update_pre_post_images(struct image *preimage,
|
||||
ctx++;
|
||||
}
|
||||
if (preimage->nr <= ctx)
|
||||
die("oops");
|
||||
die(_("oops"));
|
||||
|
||||
/* and copy it in, while fixing the line length */
|
||||
len = preimage->line[ctx].len;
|
||||
@ -2626,7 +2635,7 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
|
||||
break;
|
||||
default:
|
||||
if (apply_verbosely)
|
||||
error("invalid start of line: '%c'", first);
|
||||
error(_("invalid start of line: '%c'"), first);
|
||||
return -1;
|
||||
}
|
||||
if (added_blank_line) {
|
||||
@ -2743,9 +2752,11 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
|
||||
int offset = applied_pos - pos;
|
||||
if (apply_in_reverse)
|
||||
offset = 0 - offset;
|
||||
fprintf(stderr,
|
||||
"Hunk #%d succeeded at %d (offset %d lines).\n",
|
||||
nth_fragment, applied_pos + 1, offset);
|
||||
fprintf_ln(stderr,
|
||||
Q_("Hunk #%d succeeded at %d (offset %d line).",
|
||||
"Hunk #%d succeeded at %d (offset %d lines).",
|
||||
offset),
|
||||
nth_fragment, applied_pos + 1, offset);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -2754,13 +2765,13 @@ static int apply_one_fragment(struct image *img, struct fragment *frag,
|
||||
*/
|
||||
if ((leading != frag->leading) ||
|
||||
(trailing != frag->trailing))
|
||||
fprintf(stderr, "Context reduced to (%ld/%ld)"
|
||||
" to apply fragment at %d\n",
|
||||
leading, trailing, applied_pos+1);
|
||||
fprintf_ln(stderr, _("Context reduced to (%ld/%ld)"
|
||||
" to apply fragment at %d"),
|
||||
leading, trailing, applied_pos+1);
|
||||
update_image(img, applied_pos, &preimage, &postimage);
|
||||
} else {
|
||||
if (apply_verbosely)
|
||||
error("while searching for:\n%.*s",
|
||||
error(_("while searching for:\n%.*s"),
|
||||
(int)(old - oldlines), oldlines);
|
||||
}
|
||||
|
||||
@ -2779,7 +2790,7 @@ static int apply_binary_fragment(struct image *img, struct patch *patch)
|
||||
void *dst;
|
||||
|
||||
if (!fragment)
|
||||
return error("missing binary patch data for '%s'",
|
||||
return error(_("missing binary patch data for '%s'"),
|
||||
patch->new_name ?
|
||||
patch->new_name :
|
||||
patch->old_name);
|
||||
@ -2882,13 +2893,13 @@ static int apply_binary(struct image *img, struct patch *patch)
|
||||
* in the patch->fragments->{patch,size}.
|
||||
*/
|
||||
if (apply_binary_fragment(img, patch))
|
||||
return error("binary patch does not apply to '%s'",
|
||||
return error(_("binary patch does not apply to '%s'"),
|
||||
name);
|
||||
|
||||
/* verify that the result matches */
|
||||
hash_sha1_file(img->buf, img->len, blob_type, sha1);
|
||||
if (strcmp(sha1_to_hex(sha1), patch->new_sha1_prefix))
|
||||
return error("binary patch to '%s' creates incorrect result (expecting %s, got %s)",
|
||||
return error(_("binary patch to '%s' creates incorrect result (expecting %s, got %s)"),
|
||||
name, patch->new_sha1_prefix, sha1_to_hex(sha1));
|
||||
}
|
||||
|
||||
@ -2909,7 +2920,7 @@ static int apply_fragments(struct image *img, struct patch *patch)
|
||||
while (frag) {
|
||||
nth++;
|
||||
if (apply_one_fragment(img, frag, inaccurate_eof, ws_rule, nth)) {
|
||||
error("patch failed: %s:%ld", name, frag->oldpos);
|
||||
error(_("patch failed: %s:%ld"), name, frag->oldpos);
|
||||
if (!apply_with_reject)
|
||||
return -1;
|
||||
frag->rejected = 1;
|
||||
@ -3024,14 +3035,14 @@ static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *
|
||||
if (!(patch->is_copy || patch->is_rename) &&
|
||||
(tpatch = in_fn_table(patch->old_name)) != NULL && !to_be_deleted(tpatch)) {
|
||||
if (was_deleted(tpatch)) {
|
||||
return error("patch %s has been renamed/deleted",
|
||||
return error(_("patch %s has been renamed/deleted"),
|
||||
patch->old_name);
|
||||
}
|
||||
/* We have a patched copy in memory; use that. */
|
||||
strbuf_add(&buf, tpatch->result, tpatch->resultsize);
|
||||
} else if (cached) {
|
||||
if (read_file_or_gitlink(ce, &buf))
|
||||
return error("read of %s failed", patch->old_name);
|
||||
return error(_("read of %s failed"), patch->old_name);
|
||||
} else if (patch->old_name) {
|
||||
if (S_ISGITLINK(patch->old_mode)) {
|
||||
if (ce) {
|
||||
@ -3048,7 +3059,7 @@ static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *
|
||||
}
|
||||
} else {
|
||||
if (read_old_data(st, patch->old_name, &buf))
|
||||
return error("read of %s failed", patch->old_name);
|
||||
return error(_("read of %s failed"), patch->old_name);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3063,7 +3074,7 @@ static int apply_data(struct patch *patch, struct stat *st, struct cache_entry *
|
||||
free(image.line_allocated);
|
||||
|
||||
if (0 < patch->is_delete && patch->resultsize)
|
||||
return error("removal patch leaves file contents");
|
||||
return error(_("removal patch leaves file contents"));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -3084,7 +3095,7 @@ static int check_to_create_blob(const char *new_name, int ok_if_exists)
|
||||
if (has_symlink_leading_path(new_name, strlen(new_name)))
|
||||
return 0;
|
||||
|
||||
return error("%s: already exists in working directory", new_name);
|
||||
return error(_("%s: already exists in working directory"), new_name);
|
||||
}
|
||||
else if ((errno != ENOENT) && (errno != ENOTDIR))
|
||||
return error("%s: %s", new_name, strerror(errno));
|
||||
@ -3122,12 +3133,12 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
|
||||
if (!(patch->is_copy || patch->is_rename) &&
|
||||
(tpatch = in_fn_table(old_name)) != NULL && !to_be_deleted(tpatch)) {
|
||||
if (was_deleted(tpatch))
|
||||
return error("%s: has been deleted/renamed", old_name);
|
||||
return error(_("%s: has been deleted/renamed"), old_name);
|
||||
st_mode = tpatch->new_mode;
|
||||
} else if (!cached) {
|
||||
stat_ret = lstat(old_name, st);
|
||||
if (stat_ret && errno != ENOENT)
|
||||
return error("%s: %s", old_name, strerror(errno));
|
||||
return error(_("%s: %s"), old_name, strerror(errno));
|
||||
}
|
||||
|
||||
if (to_be_deleted(tpatch))
|
||||
@ -3138,7 +3149,7 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
|
||||
if (pos < 0) {
|
||||
if (patch->is_new < 0)
|
||||
goto is_new;
|
||||
return error("%s: does not exist in index", old_name);
|
||||
return error(_("%s: does not exist in index"), old_name);
|
||||
}
|
||||
*ce = active_cache[pos];
|
||||
if (stat_ret < 0) {
|
||||
@ -3152,13 +3163,13 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
|
||||
return -1;
|
||||
}
|
||||
if (!cached && verify_index_match(*ce, st))
|
||||
return error("%s: does not match index", old_name);
|
||||
return error(_("%s: does not match index"), old_name);
|
||||
if (cached)
|
||||
st_mode = (*ce)->ce_mode;
|
||||
} else if (stat_ret < 0) {
|
||||
if (patch->is_new < 0)
|
||||
goto is_new;
|
||||
return error("%s: %s", old_name, strerror(errno));
|
||||
return error(_("%s: %s"), old_name, strerror(errno));
|
||||
}
|
||||
|
||||
if (!cached && !tpatch)
|
||||
@ -3169,9 +3180,9 @@ static int check_preimage(struct patch *patch, struct cache_entry **ce, struct s
|
||||
if (!patch->old_mode)
|
||||
patch->old_mode = st_mode;
|
||||
if ((st_mode ^ patch->old_mode) & S_IFMT)
|
||||
return error("%s: wrong type", old_name);
|
||||
return error(_("%s: wrong type"), old_name);
|
||||
if (st_mode != patch->old_mode)
|
||||
warning("%s has type %o, expected %o",
|
||||
warning(_("%s has type %o, expected %o"),
|
||||
old_name, st_mode, patch->old_mode);
|
||||
if (!patch->new_mode && !patch->is_delete)
|
||||
patch->new_mode = st_mode;
|
||||
@ -3226,7 +3237,7 @@ static int check_patch(struct patch *patch)
|
||||
if (check_index &&
|
||||
cache_name_pos(new_name, strlen(new_name)) >= 0 &&
|
||||
!ok_if_exists)
|
||||
return error("%s: already exists in index", new_name);
|
||||
return error(_("%s: already exists in index"), new_name);
|
||||
if (!cached) {
|
||||
int err = check_to_create_blob(new_name, ok_if_exists);
|
||||
if (err)
|
||||
@ -3245,13 +3256,13 @@ static int check_patch(struct patch *patch)
|
||||
if (!patch->new_mode)
|
||||
patch->new_mode = patch->old_mode;
|
||||
if ((patch->old_mode ^ patch->new_mode) & S_IFMT)
|
||||
return error("new mode (%o) of %s does not match old mode (%o)%s%s",
|
||||
return error(_("new mode (%o) of %s does not match old mode (%o)%s%s"),
|
||||
patch->new_mode, new_name, patch->old_mode,
|
||||
same ? "" : " of ", same ? "" : old_name);
|
||||
}
|
||||
|
||||
if (apply_data(patch, &st, ce) < 0)
|
||||
return error("%s: patch does not apply", name);
|
||||
return error(_("%s: patch does not apply"), name);
|
||||
patch->rejected = 0;
|
||||
return 0;
|
||||
}
|
||||
@ -3264,7 +3275,7 @@ static int check_patch_list(struct patch *patch)
|
||||
while (patch) {
|
||||
if (apply_verbosely)
|
||||
say_patch_name(stderr,
|
||||
"Checking patch ", patch, "...\n");
|
||||
_("Checking patch %s..."), patch);
|
||||
err |= check_patch(patch);
|
||||
patch = patch->next;
|
||||
}
|
||||
@ -3319,7 +3330,7 @@ static void build_fake_ancestor(struct patch *list, const char *filename)
|
||||
|
||||
ce = make_cache_entry(patch->old_mode, sha1_ptr, name, 0, 0);
|
||||
if (!ce)
|
||||
die("make_cache_entry failed for path '%s'", name);
|
||||
die(_("make_cache_entry failed for path '%s'"), name);
|
||||
if (add_index_entry(&result, ce, ADD_CACHE_OK_TO_ADD))
|
||||
die ("Could not add %s to temporary index", name);
|
||||
}
|
||||
@ -3462,7 +3473,7 @@ static void remove_file(struct patch *patch, int rmdir_empty)
|
||||
{
|
||||
if (update_index) {
|
||||
if (remove_file_from_cache(patch->old_name) < 0)
|
||||
die("unable to remove %s from index", patch->old_name);
|
||||
die(_("unable to remove %s from index"), patch->old_name);
|
||||
}
|
||||
if (!cached) {
|
||||
if (!remove_or_warn(patch->old_mode, patch->old_name) && rmdir_empty) {
|
||||
@ -3489,19 +3500,19 @@ static void add_index_file(const char *path, unsigned mode, void *buf, unsigned
|
||||
const char *s = buf;
|
||||
|
||||
if (get_sha1_hex(s + strlen("Subproject commit "), ce->sha1))
|
||||
die("corrupt patch for subproject %s", path);
|
||||
die(_("corrupt patch for subproject %s"), path);
|
||||
} else {
|
||||
if (!cached) {
|
||||
if (lstat(path, &st) < 0)
|
||||
die_errno("unable to stat newly created file '%s'",
|
||||
die_errno(_("unable to stat newly created file '%s'"),
|
||||
path);
|
||||
fill_stat_cache_info(ce, &st);
|
||||
}
|
||||
if (write_sha1_file(buf, size, blob_type, ce->sha1) < 0)
|
||||
die("unable to create backing store for newly created file %s", path);
|
||||
die(_("unable to create backing store for newly created file %s"), path);
|
||||
}
|
||||
if (add_cache_entry(ce, ADD_CACHE_OK_TO_ADD) < 0)
|
||||
die("unable to add cache entry for %s", path);
|
||||
die(_("unable to add cache entry for %s"), path);
|
||||
}
|
||||
|
||||
static int try_create_file(const char *path, unsigned int mode, const char *buf, unsigned long size)
|
||||
@ -3534,7 +3545,7 @@ static int try_create_file(const char *path, unsigned int mode, const char *buf,
|
||||
strbuf_release(&nbuf);
|
||||
|
||||
if (close(fd) < 0)
|
||||
die_errno("closing file '%s'", path);
|
||||
die_errno(_("closing file '%s'"), path);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3583,7 +3594,7 @@ static void create_one_file(char *path, unsigned mode, const char *buf, unsigned
|
||||
++nr;
|
||||
}
|
||||
}
|
||||
die_errno("unable to write file '%s' mode %o", path, mode);
|
||||
die_errno(_("unable to write file '%s' mode %o"), path, mode);
|
||||
}
|
||||
|
||||
static void create_file(struct patch *patch)
|
||||
@ -3628,6 +3639,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)
|
||||
@ -3638,7 +3650,7 @@ static int write_out_one_reject(struct patch *patch)
|
||||
if (!cnt) {
|
||||
if (apply_verbosely)
|
||||
say_patch_name(stderr,
|
||||
"Applied patch ", patch, " cleanly.\n");
|
||||
_("Applied patch %s cleanly."), patch);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3646,16 +3658,20 @@ static int write_out_one_reject(struct patch *patch)
|
||||
* contents are marked "rejected" at the patch level.
|
||||
*/
|
||||
if (!patch->new_name)
|
||||
die("internal error");
|
||||
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, Q_("Applying patch %%s with %d reject...",
|
||||
"Applying patch %%s with %d rejects...",
|
||||
cnt),
|
||||
cnt);
|
||||
say_patch_name(stderr, sb.buf, patch);
|
||||
strbuf_release(&sb);
|
||||
|
||||
cnt = strlen(patch->new_name);
|
||||
if (ARRAY_SIZE(namebuf) <= cnt + 5) {
|
||||
cnt = ARRAY_SIZE(namebuf) - 5;
|
||||
warning("truncating .rej filename to %.*s.rej",
|
||||
warning(_("truncating .rej filename to %.*s.rej"),
|
||||
cnt - 1, patch->new_name);
|
||||
}
|
||||
memcpy(namebuf, patch->new_name, cnt);
|
||||
@ -3663,7 +3679,7 @@ static int write_out_one_reject(struct patch *patch)
|
||||
|
||||
rej = fopen(namebuf, "w");
|
||||
if (!rej)
|
||||
return error("cannot open %s: %s", namebuf, strerror(errno));
|
||||
return error(_("cannot open %s: %s"), namebuf, strerror(errno));
|
||||
|
||||
/* Normal git tools never deal with .rej, so do not pretend
|
||||
* this is a git patch by saying --git nor give extended
|
||||
@ -3676,10 +3692,10 @@ static int write_out_one_reject(struct patch *patch)
|
||||
frag;
|
||||
cnt++, frag = frag->next) {
|
||||
if (!frag->rejected) {
|
||||
fprintf(stderr, "Hunk #%d applied cleanly.\n", cnt);
|
||||
fprintf_ln(stderr, _("Hunk #%d applied cleanly."), cnt);
|
||||
continue;
|
||||
}
|
||||
fprintf(stderr, "Rejected hunk #%d.\n", cnt);
|
||||
fprintf_ln(stderr, _("Rejected hunk #%d."), cnt);
|
||||
fprintf(rej, "%.*s", frag->size, frag->patch);
|
||||
if (frag->patch[frag->size-1] != '\n')
|
||||
fputc('\n', rej);
|
||||
@ -3810,7 +3826,7 @@ static int apply_patch(int fd, const char *filename, int options)
|
||||
}
|
||||
|
||||
if (!list && !skipped_patch)
|
||||
die("unrecognized input");
|
||||
die(_("unrecognized input"));
|
||||
|
||||
if (whitespace_error && (ws_error_action == die_on_ws_error))
|
||||
apply = 0;
|
||||
@ -3821,7 +3837,7 @@ static int apply_patch(int fd, const char *filename, int options)
|
||||
|
||||
if (check_index) {
|
||||
if (read_cache() < 0)
|
||||
die("unable to read index file");
|
||||
die(_("unable to read index file"));
|
||||
}
|
||||
|
||||
if ((check || apply) &&
|
||||
@ -4016,10 +4032,10 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
|
||||
if (!force_apply && (diffstat || numstat || summary || check || fake_ancestor))
|
||||
apply = 0;
|
||||
if (check_index && is_not_gitdir)
|
||||
die("--index outside a repository");
|
||||
die(_("--index outside a repository"));
|
||||
if (cached) {
|
||||
if (is_not_gitdir)
|
||||
die("--cached outside a repository");
|
||||
die(_("--cached outside a repository"));
|
||||
check_index = 1;
|
||||
}
|
||||
for (i = 0; i < argc; i++) {
|
||||
@ -4035,7 +4051,7 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
|
||||
|
||||
fd = open(arg, O_RDONLY);
|
||||
if (fd < 0)
|
||||
die_errno("can't open patch '%s'", arg);
|
||||
die_errno(_("can't open patch '%s'"), arg);
|
||||
read_stdin = 0;
|
||||
set_default_whitespace_mode(whitespace_option);
|
||||
errs |= apply_patch(fd, arg, options);
|
||||
@ -4049,32 +4065,32 @@ int cmd_apply(int argc, const char **argv, const char *prefix_)
|
||||
squelch_whitespace_errors < whitespace_error) {
|
||||
int squelched =
|
||||
whitespace_error - squelch_whitespace_errors;
|
||||
warning("squelched %d "
|
||||
"whitespace error%s",
|
||||
squelched,
|
||||
squelched == 1 ? "" : "s");
|
||||
warning(Q_("squelched %d whitespace error",
|
||||
"squelched %d whitespace errors",
|
||||
squelched),
|
||||
squelched);
|
||||
}
|
||||
if (ws_error_action == die_on_ws_error)
|
||||
die("%d line%s add%s whitespace errors.",
|
||||
whitespace_error,
|
||||
whitespace_error == 1 ? "" : "s",
|
||||
whitespace_error == 1 ? "s" : "");
|
||||
die(Q_("%d line adds whitespace errors.",
|
||||
"%d lines add whitespace errors.",
|
||||
whitespace_error),
|
||||
whitespace_error);
|
||||
if (applied_after_fixing_ws && apply)
|
||||
warning("%d line%s applied after"
|
||||
" fixing whitespace errors.",
|
||||
applied_after_fixing_ws,
|
||||
applied_after_fixing_ws == 1 ? "" : "s");
|
||||
else if (whitespace_error)
|
||||
warning("%d line%s add%s whitespace errors.",
|
||||
whitespace_error,
|
||||
whitespace_error == 1 ? "" : "s",
|
||||
whitespace_error == 1 ? "s" : "");
|
||||
warning(Q_("%d line adds whitespace errors.",
|
||||
"%d lines add whitespace errors.",
|
||||
whitespace_error),
|
||||
whitespace_error);
|
||||
}
|
||||
|
||||
if (update_index) {
|
||||
if (write_cache(newfd, active_cache, active_nr) ||
|
||||
commit_locked_index(&lock_file))
|
||||
die("Unable to write new index file");
|
||||
die(_("Unable to write new index file"));
|
||||
}
|
||||
|
||||
return !!errs;
|
||||
|
||||
Reference in New Issue
Block a user