From 6dc10043338bbb29ffd7f8fc431f37b0fed08ae6 Mon Sep 17 00:00:00 2001 From: Victoria Dye Date: Mon, 9 Oct 2023 21:58:54 +0000 Subject: dir.[ch]: expose 'get_dtype' Move 'get_dtype()' from 'diagnose.c' to 'dir.c' and add its declaration to 'dir.h' so that it is accessible to callers in other files. The function and its documentation are moved verbatim except for a small addition to the description clarifying what the 'path' arg represents. Signed-off-by: Victoria Dye Signed-off-by: Junio C Hamano --- dir.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'dir.h') diff --git a/dir.h b/dir.h index ad06682fd5..28c630ce80 100644 --- a/dir.h +++ b/dir.h @@ -363,6 +363,17 @@ struct dir_struct { struct dirent *readdir_skip_dot_and_dotdot(DIR *dirp); +/* + * Get the d_type of a dirent. If the d_type is unknown, derive it from + * stat.st_mode using the path to the dirent's containing directory (path) and + * the name of the dirent itself. + * + * Note that 'path' is assumed to have a trailing slash. It is also modified + * in-place during the execution of the function, but is then reverted to its + * original value before returning. + */ +unsigned char get_dtype(struct dirent *e, struct strbuf *path); + /*Count the number of slashes for string s*/ int count_slashes(const char *s); -- cgit v1.3