[PATCH v2 3/3][GSOC] fsck: replace if-statements to logical expressions
From: Hiroyuki Sano <hidden>
Date: 2016-06-15 23:00:22
Subsystem:
the rest · Maintainer:
Linus Torvalds
There were two different ways to check flag values, one way is using if-statement, and the other way is using logical expression. To make sensible, replace if-statements to logical expressions in fsck_tree(). When checking "has_dot" and "has_dotdot", use is_dot_or_dotdot() instead of strcmp() to avoid hard coding. The is_dot_or_dotdot() is used to check if the string is either "." or "..". Include the "dir.h" header file to use is_dot_or_dotdot(). Signed-off-by: Hiroyuki Sano <redacted> --- fsck.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-)
diff --git a/fsck.c b/fsck.c
index b3022ad..08f613d 100644
--- a/fsck.c
+++ b/fsck.c@@ -6,6 +6,7 @@ #include "commit.h" #include "tag.h" #include "fsck.h" +#include "dir.h" static int fsck_walk_tree(struct tree *tree, fsck_walk_func walk, void *data) {
@@ -165,18 +166,12 @@ static int fsck_tree(struct tree *item, int strict, fsck_error error_func) sha1 = tree_entry_extract(&desc, &name, &mode); - if (is_null_sha1(sha1)) - has_null_sha1 = 1; - if (strchr(name, '/')) - has_full_path = 1; - if (!*name) - has_empty_name = 1; - if (!strcmp(name, ".")) - has_dot = 1; - if (!strcmp(name, "..")) - has_dotdot = 1; - if (!strcmp(name, ".git")) - has_dotgit = 1; + has_null_sha1 |= is_null_sha1(sha1); + has_full_path |= !!strchr(name, '/'); + has_empty_name |= !*name; + has_dot |= is_dot_or_dotdot(name) && !name[1]; + has_dotdot |= is_dot_or_dotdot(name) && name[1]; + has_dotgit |= !strcmp(name, ".git"); has_zero_pad |= *(char *)desc.buffer == '0'; update_tree_entry(&desc);
--
1.9.0