aboutsummaryrefslogtreecommitdiff
path: root/src/fs.c
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-06-22 19:48:39 +0200
committerCharles <sircharlesaze@gmail.com>2020-06-22 19:48:39 +0200
commitd99f14c2a908b9db8d24180c9681009a4d1c0207 (patch)
tree935d334b242e38f70ef1e503446a35f0b66e104c /src/fs.c
parent88ab5a5273e13066ce3f496a690f10d20a278bb4 (diff)
downloadtar-d99f14c2a908b9db8d24180c9681009a4d1c0207.tar.gz
tar-d99f14c2a908b9db8d24180c9681009a4d1c0207.tar.bz2
tar-d99f14c2a908b9db8d24180c9681009a4d1c0207.zip
Added list option and verbose mode
Diffstat (limited to 'src/fs.c')
-rw-r--r--src/fs.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/fs.c b/src/fs.c
index 24de763..df201b4 100644
--- a/src/fs.c
+++ b/src/fs.c
@@ -23,12 +23,13 @@ int file_content_write(int fd, int file_fd, struct stat *statbuf)
return (ret);
}
-int file_write(int fd, char file_name[PATH_MAX])
+int file_write(int fd, char file_name[PATH_MAX], bool verbose)
{
int file_fd;
struct stat statbuf;
- /* fprintf(stderr, "|%s|\n", file_name); */
+ if (verbose)
+ put_file_name(file_name);
if (stat(file_name, &statbuf) == -1)
{
perror("file_write stat");
@@ -40,7 +41,7 @@ int file_write(int fd, char file_name[PATH_MAX])
switch (statbuf.st_mode & S_IFMT)
{
case S_IFDIR:
- return directory_write(fd, file_name);
+ return directory_write(fd, file_name, verbose);
default:
if ((file_fd = open(file_name, O_RDONLY)) == -1)
{
@@ -52,7 +53,7 @@ int file_write(int fd, char file_name[PATH_MAX])
return (0);
}
-int directory_write(int fd, char dir_name[PATH_MAX])
+int directory_write(int fd, char dir_name[PATH_MAX], bool verbose)
{
DIR *dir;
struct dirent *entry;
@@ -72,7 +73,7 @@ int directory_write(int fd, char dir_name[PATH_MAX])
strcmp(entry->d_name, "..") == 0)
continue;
strcat(dir_name, entry->d_name);
- if (file_write(fd, dir_name) == -1)
+ if (file_write(fd, dir_name, verbose) == -1)
{
closedir(dir);
return -1;