зеркало из https://github.com/microsoft/git.git
Merge branch 'sb/misc-cleanup'
* sb/misc-cleanup: rm: remove unneeded null pointer check diff: fix a possible null pointer dereference diff: remove ternary operator evaluating always to true
This commit is contained in:
Коммит
2bdd8727d7
40
builtin/rm.c
40
builtin/rm.c
|
@ -277,8 +277,8 @@ static struct option builtin_rm_options[] = {
|
|||
|
||||
int cmd_rm(int argc, const char **argv, const char *prefix)
|
||||
{
|
||||
int i, newfd;
|
||||
const char **pathspec;
|
||||
int i, newfd, seen_any;
|
||||
const char **pathspec, *match;
|
||||
char *seen;
|
||||
|
||||
git_config(git_default_config, NULL);
|
||||
|
@ -314,7 +314,6 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
|
|||
pathspec = get_pathspec(prefix, argv);
|
||||
refresh_index(&the_index, REFRESH_QUIET, pathspec, NULL, NULL);
|
||||
|
||||
seen = NULL;
|
||||
for (i = 0; pathspec[i] ; i++)
|
||||
/* nothing */;
|
||||
seen = xcalloc(i, 1);
|
||||
|
@ -328,27 +327,24 @@ int cmd_rm(int argc, const char **argv, const char *prefix)
|
|||
list.entry[list.nr++].is_submodule = S_ISGITLINK(ce->ce_mode);
|
||||
}
|
||||
|
||||
if (pathspec) {
|
||||
const char *match;
|
||||
int seen_any = 0;
|
||||
for (i = 0; (match = pathspec[i]) != NULL ; i++) {
|
||||
if (!seen[i]) {
|
||||
if (!ignore_unmatch) {
|
||||
die(_("pathspec '%s' did not match any files"),
|
||||
match);
|
||||
}
|
||||
}
|
||||
else {
|
||||
seen_any = 1;
|
||||
}
|
||||
if (!recursive && seen[i] == MATCHED_RECURSIVELY)
|
||||
die(_("not removing '%s' recursively without -r"),
|
||||
*match ? match : ".");
|
||||
}
|
||||
|
||||
if (! seen_any)
|
||||
exit(0);
|
||||
seen_any = 0;
|
||||
for (i = 0; (match = pathspec[i]) != NULL ; i++) {
|
||||
if (!seen[i]) {
|
||||
if (!ignore_unmatch) {
|
||||
die(_("pathspec '%s' did not match any files"),
|
||||
match);
|
||||
}
|
||||
}
|
||||
else {
|
||||
seen_any = 1;
|
||||
}
|
||||
if (!recursive && seen[i] == MATCHED_RECURSIVELY)
|
||||
die(_("not removing '%s' recursively without -r"),
|
||||
*match ? match : ".");
|
||||
}
|
||||
if (!seen_any)
|
||||
exit(0);
|
||||
|
||||
/*
|
||||
* If not forced, the file, the index and the HEAD (if exists)
|
||||
|
|
6
diff.c
6
diff.c
|
@ -669,7 +669,7 @@ static void emit_rewrite_diff(const char *name_a,
|
|||
memset(&ecbdata, 0, sizeof(ecbdata));
|
||||
ecbdata.color_diff = want_color(o->use_color);
|
||||
ecbdata.found_changesp = &o->found_changes;
|
||||
ecbdata.ws_rule = whitespace_rule(name_b ? name_b : name_a);
|
||||
ecbdata.ws_rule = whitespace_rule(name_b);
|
||||
ecbdata.opt = o;
|
||||
if (ecbdata.ws_rule & WS_BLANK_AT_EOF) {
|
||||
mmfile_t mf1, mf2;
|
||||
|
@ -2252,7 +2252,7 @@ static void builtin_diff(const char *name_a,
|
|||
(!two->mode || S_ISGITLINK(two->mode))) {
|
||||
const char *del = diff_get_color_opt(o, DIFF_FILE_OLD);
|
||||
const char *add = diff_get_color_opt(o, DIFF_FILE_NEW);
|
||||
show_submodule_summary(o->file, one ? one->path : two->path,
|
||||
show_submodule_summary(o->file, one->path ? one->path : two->path,
|
||||
line_prefix,
|
||||
one->sha1, two->sha1, two->dirty_submodule,
|
||||
meta, del, add, reset);
|
||||
|
@ -2372,7 +2372,7 @@ static void builtin_diff(const char *name_a,
|
|||
ecbdata.label_path = lbl;
|
||||
ecbdata.color_diff = want_color(o->use_color);
|
||||
ecbdata.found_changesp = &o->found_changes;
|
||||
ecbdata.ws_rule = whitespace_rule(name_b ? name_b : name_a);
|
||||
ecbdata.ws_rule = whitespace_rule(name_b);
|
||||
if (ecbdata.ws_rule & WS_BLANK_AT_EOF)
|
||||
check_blank_at_eof(&mf1, &mf2, &ecbdata);
|
||||
ecbdata.opt = o;
|
||||
|
|
Загрузка…
Ссылка в новой задаче