summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--src/b_sqb_file.c14
-rw-r--r--src/s_init.c4
3 files changed, 14 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 59710b5..64e192b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -128,4 +128,5 @@ minishell_history
vgcore*
qwe
qwe.sh
+noread
.clang_complete \ No newline at end of file
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 <sys/stat.h>
#include <libft.h>
+#include <stdint.h>
#include <fcntl.h>
#include <unistd.h>
-#include <stdint.h>
#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);
}
diff --git a/src/s_init.c b/src/s_init.c
index 2722c4b..7353ed8 100644
--- a/src/s_init.c
+++ b/src/s_init.c
@@ -36,8 +36,8 @@ static void
ft_memcpy(msh->sqb_ref[FT_ID_SQB_F], FT_SQB_F, ft_strlen(FT_SQB_F) + 1);
ft_memcpy(msh->sqb_ref[FT_ID_SQB_H], FT_SQB_H, ft_strlen(FT_SQB_H) + 1);
ft_memcpy(msh->sqb_ref[FT_ID_SQB_N], FT_SQB_N, ft_strlen(FT_SQB_N) + 1);
- ft_memcpy(msh->sqb_ref[FT_ID_SQB_R], FT_SQB_P, ft_strlen(FT_SQB_R) + 1);
- ft_memcpy(msh->sqb_ref[FT_ID_SQB_P], FT_SQB_R, ft_strlen(FT_SQB_P) + 1);
+ ft_memcpy(msh->sqb_ref[FT_ID_SQB_P], FT_SQB_P, ft_strlen(FT_SQB_P) + 1);
+ ft_memcpy(msh->sqb_ref[FT_ID_SQB_R], FT_SQB_R, ft_strlen(FT_SQB_R) + 1);
ft_memcpy(msh->sqb_ref[FT_ID_SQB_S], FT_SQB_S, ft_strlen(FT_SQB_S) + 1);
ft_memcpy(msh->sqb_ref[FT_ID_SQB_W], FT_SQB_W, ft_strlen(FT_SQB_W) + 1);
ft_memcpy(msh->sqb_ref[FT_ID_SQB_X], FT_SQB_X, ft_strlen(FT_SQB_X) + 1);