|
|
|
@ -245,7 +245,7 @@ static void start_threads(struct grep_opt *opt)
@@ -245,7 +245,7 @@ static void start_threads(struct grep_opt *opt)
|
|
|
|
|
err = pthread_create(&threads[i], NULL, run, o); |
|
|
|
|
|
|
|
|
|
if (err) |
|
|
|
|
die("grep: failed to create thread: %s", |
|
|
|
|
die(_("grep: failed to create thread: %s"), |
|
|
|
|
strerror(err)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -450,7 +450,7 @@ static void *load_sha1(const unsigned char *sha1, unsigned long *size,
@@ -450,7 +450,7 @@ static void *load_sha1(const unsigned char *sha1, unsigned long *size,
|
|
|
|
|
void *data = lock_and_read_sha1_file(sha1, &type, size); |
|
|
|
|
|
|
|
|
|
if (!data) |
|
|
|
|
error("'%s': unable to read %s", name, sha1_to_hex(sha1)); |
|
|
|
|
error(_("'%s': unable to read %s"), name, sha1_to_hex(sha1)); |
|
|
|
|
|
|
|
|
|
return data; |
|
|
|
|
} |
|
|
|
@ -501,7 +501,7 @@ static void *load_file(const char *filename, size_t *sz)
@@ -501,7 +501,7 @@ static void *load_file(const char *filename, size_t *sz)
|
|
|
|
|
if (lstat(filename, &st) < 0) { |
|
|
|
|
err_ret: |
|
|
|
|
if (errno != ENOENT) |
|
|
|
|
error("'%s': %s", filename, strerror(errno)); |
|
|
|
|
error(_("'%s': %s"), filename, strerror(errno)); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
if (!S_ISREG(st.st_mode)) |
|
|
|
@ -512,7 +512,7 @@ static void *load_file(const char *filename, size_t *sz)
@@ -512,7 +512,7 @@ static void *load_file(const char *filename, size_t *sz)
|
|
|
|
|
goto err_ret; |
|
|
|
|
data = xmalloc(*sz + 1); |
|
|
|
|
if (st.st_size != read_in_full(i, data, *sz)) { |
|
|
|
|
error("'%s': short read %s", filename, strerror(errno)); |
|
|
|
|
error(_("'%s': short read %s"), filename, strerror(errno)); |
|
|
|
|
close(i); |
|
|
|
|
free(data); |
|
|
|
|
return 0; |
|
|
|
@ -574,7 +574,7 @@ static void run_pager(struct grep_opt *opt, const char *prefix)
@@ -574,7 +574,7 @@ static void run_pager(struct grep_opt *opt, const char *prefix)
|
|
|
|
|
argv[path_list->nr] = NULL; |
|
|
|
|
|
|
|
|
|
if (prefix && chdir(prefix)) |
|
|
|
|
die("Failed to chdir: %s", prefix); |
|
|
|
|
die(_("Failed to chdir: %s"), prefix); |
|
|
|
|
status = run_command_v_opt(argv, RUN_USING_SHELL); |
|
|
|
|
if (status) |
|
|
|
|
exit(status); |
|
|
|
@ -664,7 +664,7 @@ static int grep_tree(struct grep_opt *opt, const char **paths,
@@ -664,7 +664,7 @@ static int grep_tree(struct grep_opt *opt, const char **paths,
|
|
|
|
|
|
|
|
|
|
data = lock_and_read_sha1_file(entry.sha1, &type, &size); |
|
|
|
|
if (!data) |
|
|
|
|
die("unable to read tree (%s)", |
|
|
|
|
die(_("unable to read tree (%s)"), |
|
|
|
|
sha1_to_hex(entry.sha1)); |
|
|
|
|
init_tree_desc(&sub, data, size); |
|
|
|
|
hit |= grep_tree(opt, paths, &sub, tree_name, down); |
|
|
|
@ -690,13 +690,13 @@ static int grep_object(struct grep_opt *opt, const char **paths,
@@ -690,13 +690,13 @@ static int grep_object(struct grep_opt *opt, const char **paths,
|
|
|
|
|
data = read_object_with_reference(obj->sha1, tree_type, |
|
|
|
|
&size, NULL); |
|
|
|
|
if (!data) |
|
|
|
|
die("unable to read tree (%s)", sha1_to_hex(obj->sha1)); |
|
|
|
|
die(_("unable to read tree (%s)"), sha1_to_hex(obj->sha1)); |
|
|
|
|
init_tree_desc(&tree, data, size); |
|
|
|
|
hit = grep_tree(opt, paths, &tree, name, ""); |
|
|
|
|
free(data); |
|
|
|
|
return hit; |
|
|
|
|
} |
|
|
|
|
die("unable to grep from object of type %s", typename(obj->type)); |
|
|
|
|
die(_("unable to grep from object of type %s"), typename(obj->type)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static int grep_objects(struct grep_opt *opt, const char **paths, |
|
|
|
@ -748,7 +748,7 @@ static int context_callback(const struct option *opt, const char *arg,
@@ -748,7 +748,7 @@ static int context_callback(const struct option *opt, const char *arg,
|
|
|
|
|
} |
|
|
|
|
value = strtol(arg, (char **)&endp, 10); |
|
|
|
|
if (*endp) { |
|
|
|
|
return error("switch `%c' expects a numerical value", |
|
|
|
|
return error(_("switch `%c' expects a numerical value"), |
|
|
|
|
opt->short_name); |
|
|
|
|
} |
|
|
|
|
grep_opt->pre_context = grep_opt->post_context = value; |
|
|
|
@ -764,7 +764,7 @@ static int file_callback(const struct option *opt, const char *arg, int unset)
@@ -764,7 +764,7 @@ static int file_callback(const struct option *opt, const char *arg, int unset)
|
|
|
|
|
|
|
|
|
|
patterns = fopen(arg, "r"); |
|
|
|
|
if (!patterns) |
|
|
|
|
die_errno("cannot open '%s'", arg); |
|
|
|
|
die_errno(_("cannot open '%s'"), arg); |
|
|
|
|
while (strbuf_getline(&sb, patterns, '\n') == 0) { |
|
|
|
|
char *s; |
|
|
|
|
size_t len; |
|
|
|
@ -1005,11 +1005,11 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
@@ -1005,11 +1005,11 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!opt.pattern_list) |
|
|
|
|
die("no pattern given."); |
|
|
|
|
die(_("no pattern given.")); |
|
|
|
|
if (!opt.fixed && opt.ignore_case) |
|
|
|
|
opt.regflags |= REG_ICASE; |
|
|
|
|
if ((opt.regflags != REG_NEWLINE) && opt.fixed) |
|
|
|
|
die("cannot mix --fixed-strings and regexp"); |
|
|
|
|
die(_("cannot mix --fixed-strings and regexp")); |
|
|
|
|
|
|
|
|
|
#ifndef NO_PTHREADS |
|
|
|
|
if (online_cpus() == 1 || !grep_threads_ok(&opt)) |
|
|
|
@ -1034,7 +1034,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
@@ -1034,7 +1034,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
|
|
|
|
if (!get_sha1(arg, sha1)) { |
|
|
|
|
struct object *object = parse_object(sha1); |
|
|
|
|
if (!object) |
|
|
|
|
die("bad object %s", arg); |
|
|
|
|
die(_("bad object %s"), arg); |
|
|
|
|
add_object_array(object, arg, &list); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
@ -1086,9 +1086,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
@@ -1086,9 +1086,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
|
|
|
|
|
|
|
|
|
if (!use_index) { |
|
|
|
|
if (cached) |
|
|
|
|
die("--cached cannot be used with --no-index."); |
|
|
|
|
die(_("--cached cannot be used with --no-index.")); |
|
|
|
|
if (list.nr) |
|
|
|
|
die("--no-index cannot be used with revs."); |
|
|
|
|
die(_("--no-index cannot be used with revs.")); |
|
|
|
|
hit = grep_directory(&opt, paths); |
|
|
|
|
} else if (!list.nr) { |
|
|
|
|
if (!cached) |
|
|
|
@ -1097,7 +1097,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
@@ -1097,7 +1097,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
|
|
|
|
hit = grep_cache(&opt, paths, cached); |
|
|
|
|
} else { |
|
|
|
|
if (cached) |
|
|
|
|
die("both --cached and trees are given."); |
|
|
|
|
die(_("both --cached and trees are given.")); |
|
|
|
|
hit = grep_objects(&opt, paths, &list); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|