From: Nguyễn Thái Ngọc Duy Date: Tue, 09 Dec 2014 13:53:23 GMT Subject: [PATCH 2/4] attr.c: split path processing code out of collect_all_attrs() Message-ID: <1418133205-18213-3-git-send-email-pclouds@gmail.com> In-Reply-To: <1418133205-18213-1-git-send-email-pclouds@gmail.com> Signed-off-by: Nguyễn Thái Ngọc Duy --- attr.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/attr.c b/attr.c index 583d36a..def09c7 100644 --- a/attr.c +++ b/attr.c @@ -705,14 +705,9 @@ static int macroexpand_one(int attr_nr, int rem) return rem; } -/* - * Collect all attributes for path into the array pointed to by - * check_all_attr. - */ -static void collect_all_attrs(const char *path) +static int split_path(const char *path, int *dirlen_p, int *basename_offset_p) { - struct attr_stack *stk; - int i, pathlen, rem, dirlen; + int pathlen, dirlen; const char *cp, *last_slash = NULL; int basename_offset; @@ -728,7 +723,22 @@ static void collect_all_attrs(const char *path) basename_offset = 0; dirlen = 0; } + *dirlen_p = dirlen; + *basename_offset_p = basename_offset; + return pathlen; +} + +/* + * Collect all attributes for path into the array pointed to by + * check_all_attr. + */ +static void collect_all_attrs(const char *path) +{ + struct attr_stack *stk; + int i, pathlen, rem, dirlen; + int basename_offset; + pathlen = split_path(path, &dirlen, &basename_offset); prepare_attr_stack(path, dirlen); for (i = 0; i < git_attr_nr; i++) check_all_attr[i].value = ATTR__UNKNOWN; -- 2.2.0.84.ge9c7a8a