From 711138bc07284620979621340d97aecc00b9f520 Mon Sep 17 00:00:00 2001 From: JozanLeClerc Date: Wed, 26 Aug 2020 02:54:05 +0200 Subject: In progress, .gitignore update --- src/b_sqb_file.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'src/b_sqb_file.c') diff --git a/src/b_sqb_file.c b/src/b_sqb_file.c index b69f160..c371d50 100644 --- a/src/b_sqb_file.c +++ b/src/b_sqb_file.c @@ -12,14 +12,15 @@ #include #include +#include #include #include -#include #include "d_define.h" static t_bool b_file_tests_one(uint8_t id, + const char path[], struct stat *st) { if (id == FT_ID_SQB_B && S_ISBLK(st->st_mode) == 1) @@ -35,6 +36,10 @@ static t_bool return (TRUE); else if (id == FT_ID_SQB_P && S_ISFIFO(st->st_mode) == 1) return (TRUE); + else if (id == FT_ID_SQB_R && access(path, R_OK) == 0) + return (TRUE); + else if (id == FT_ID_SQB_S && st->st_size != 0) + return (TRUE); return (FALSE); } @@ -52,9 +57,12 @@ uint8_t close(fd); return (0); } - fstat(fd, &st); close(fd); - if (b_file_tests_one(id, &st) == TRUE) + if (id == FT_ID_SQB_H || id == FT_ID_SQB_L_MAJ) + lstat(argv[1], &st); + else + stat(argv[1], &st); + if (b_file_tests_one(id, argv[1], &st) == TRUE) return (0); return (1); } -- cgit v1.2.3