]> git.ipfire.org Git - pakfire.git/commitdiff
file: Keep type in mode_t and remove file type check functions
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 8 Mar 2021 22:21:23 +0000 (22:21 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 8 Mar 2021 22:21:23 +0000 (22:21 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/file.c
src/libpakfire/filelist.c
src/libpakfire/include/pakfire/file.h
src/libpakfire/libpakfire.sym
src/libpakfire/packager.c

index 8138ac5921f0184d827c10dcbe4d4d86dfed6675..c7b92fe685269fc5599f8a5d3d62373965aece3f 100644 (file)
@@ -76,33 +76,6 @@ PAKFIRE_EXPORT int pakfire_file_copy_stat(PakfireFile file, struct stat* stat) {
        if (!stat)
                return EINVAL;
 
-       // Set type
-       switch (stat->st_mode & S_IFMT) {
-               case S_IFREG:
-                       pakfire_file_set_type(file, REGTYPE);
-                       break;
-
-               case S_IFDIR:
-                       pakfire_file_set_type(file, DIRTYPE);
-                       break;
-
-               case S_IFLNK:
-                       pakfire_file_set_type(file, SYMTYPE);
-                       break;
-
-               case S_IFBLK:
-                       pakfire_file_set_type(file, BLKTYPE);
-                       break;
-
-               case S_IFCHR:
-                       pakfire_file_set_type(file, CHRTYPE);
-                       break;
-
-               case S_IFIFO:
-                       pakfire_file_set_type(file, FIFOTYPE);
-                       break;
-       }
-
        // Set mode
        pakfire_file_set_mode(file, stat->st_mode);
 
@@ -172,67 +145,6 @@ PAKFIRE_EXPORT int pakfire_file_cmp(PakfireFile file1, PakfireFile file2) {
        return strcmp(path1, path2);
 }
 
-static char pakfire_file_sprintf_type(PakfireFile file) {
-       if (pakfire_file_is_dir(file))
-               return 'd';
-
-       if (pakfire_file_is_symlink(file))
-               return 'l';
-
-       if (pakfire_file_is_char(file))
-               return 'c';
-
-       return '-';
-}
-
-static char* pakfire_file_format_perms(PakfireFile file) {
-       char buffer[11];
-
-       mode_t mode = pakfire_file_get_mode(file);
-
-       buffer[0] = pakfire_file_sprintf_type(file);
-       buffer[1] = (S_IRUSR & mode) ? 'r' : '-';
-       buffer[2] = (S_IWUSR & mode) ? 'w' : '-';
-       buffer[3] = (S_IXUSR & mode) ? 'x' : '-';
-       buffer[4] = (S_IRGRP & mode) ? 'r' : '-';
-       buffer[5] = (S_IWGRP & mode) ? 'w' : '-';
-       buffer[6] = (S_IXGRP & mode) ? 'x' : '-';
-       buffer[7] = (S_IROTH & mode) ? 'r' : '-';
-       buffer[8] = (S_IWOTH & mode) ? 'w' : '-';
-       buffer[9] = (S_IXOTH & mode) ? 'x' : '-';
-       buffer[10] = '\0';
-
-       #warning TODO SUID bits, etc...
-
-       return strdup(buffer);
-}
-
-static char* pakfire_file_format_mtime(PakfireFile file) {
-       struct tm* timer = gmtime((time_t *)&file->time);
-
-       char buffer[STRING_SIZE];
-       strftime(buffer, sizeof(buffer), "%d %b %Y %T", timer);
-
-       return strdup(buffer);
-}
-
-PAKFIRE_EXPORT void pakfire_file_sprintf(PakfireFile file, char* str, size_t len) {
-       const char* path = pakfire_file_get_path(file);
-       ssize_t size = pakfire_file_get_size(file);
-
-       const char* user  = pakfire_file_get_user(file);
-       const char* group = pakfire_file_get_group(file);
-
-       char* perms = pakfire_file_format_perms(file);
-       char* mtime = pakfire_file_format_mtime(file);
-
-       snprintf(str, len, "%s %-8s %-8s %8d %s %s", perms, user, group,
-               (int)size, mtime, path);
-
-       free(perms);
-       free(mtime);
-}
-
 PAKFIRE_EXPORT const char* pakfire_file_get_path(PakfireFile file) {
        return file->path;
 }
@@ -252,36 +164,8 @@ PAKFIRE_EXPORT int pakfire_file_set_path(PakfireFile file, const char* path) {
        return 0;
 }
 
-PAKFIRE_EXPORT char pakfire_file_get_type(PakfireFile file) {
-       return file->type;
-}
-
-PAKFIRE_EXPORT void pakfire_file_set_type(PakfireFile file, char type) {
-       file->type = type;
-}
-
-PAKFIRE_EXPORT int pakfire_file_is_file(PakfireFile file) {
-       return (file->type == REGTYPE) || (file->type == AREGTYPE);
-}
-
-PAKFIRE_EXPORT int pakfire_file_is_link(PakfireFile file) {
-       return (file->type == LNKTYPE);
-}
-
-PAKFIRE_EXPORT int pakfire_file_is_symlink(PakfireFile file) {
-       return (file->type == SYMTYPE);
-}
-
-PAKFIRE_EXPORT int pakfire_file_is_char(PakfireFile file) {
-       return (file->type == CHRTYPE);
-}
-
-PAKFIRE_EXPORT int pakfire_file_is_block(PakfireFile file) {
-       return (file->type == BLKTYPE);
-}
-
-PAKFIRE_EXPORT int pakfire_file_is_dir(PakfireFile file) {
-       return (file->type == DIRTYPE);
+PAKFIRE_EXPORT int pakfire_file_get_type(PakfireFile file) {
+       return file->mode & S_IFMT;
 }
 
 PAKFIRE_EXPORT ssize_t pakfire_file_get_size(PakfireFile file) {
index df2014bb6f36dd486da4efafa2ae9ef92f75cd76..05ded01235bdd84f0bd4a9e858164eac61f721c7 100644 (file)
@@ -163,7 +163,6 @@ static int pakfire_filelist_parse_line(PakfireFile* file, Pakfire pakfire,
                        switch (i) {
                                // type
                                case 0:
-                                       pakfire_file_set_type(*file, *word);
                                        break;
 
                                // size
@@ -215,7 +214,6 @@ static int pakfire_filelist_parse_line(PakfireFile* file, Pakfire pakfire,
 
                                // type
                                case 1:
-                                       pakfire_file_set_type(*file, *word);
                                        break;
 
                                // size
index 764068d141d1d765e88891cf0d11a98d5dc97184..b608ef8442cef774fa12347d88b5f601479ddf06 100644 (file)
@@ -34,22 +34,13 @@ PakfireFile pakfire_file_ref(PakfireFile file);
 PakfireFile pakfire_file_unref(PakfireFile file);
 
 int pakfire_file_cmp(PakfireFile file1, PakfireFile file2);
-void pakfire_file_sprintf(PakfireFile file, char* str, size_t len);
 
 int pakfire_file_copy_stat(PakfireFile file, struct stat* stat);
 
 const char* pakfire_file_get_path(PakfireFile file);
 int pakfire_file_set_path(PakfireFile file, const char* path);
 
-char pakfire_file_get_type(PakfireFile file);
-void pakfire_file_set_type(PakfireFile file, char type);
-
-int pakfire_file_is_file(PakfireFile file);
-int pakfire_file_is_link(PakfireFile file);
-int pakfire_file_is_symlink(PakfireFile file);
-int pakfire_file_is_char(PakfireFile file);
-int pakfire_file_is_block(PakfireFile file);
-int pakfire_file_is_dir(PakfireFile file);
+int pakfire_file_get_type(PakfireFile file);
 
 ssize_t pakfire_file_get_size(PakfireFile file);
 void pakfire_file_set_size(PakfireFile file, ssize_t size);
index 2534ae7c288f41c28fac93ea46fe32362e404c1d..2d67e3ff62a47f33af85e23dd134eb0473ade52a 100644 (file)
@@ -99,18 +99,11 @@ global:
        pakfire_file_get_path;
        pakfire_file_get_time;
        pakfire_file_get_user;
-       pakfire_file_is_file;
-       pakfire_file_is_link;
-       pakfire_file_is_symlink;
-       pakfire_file_is_char;
-       pakfire_file_is_block;
-       pakfire_file_is_dir;
        pakfire_file_set_group;
        pakfire_file_set_mode;
        pakfire_file_set_path;
        pakfire_file_set_time;
        pakfire_file_set_user;
-       pakfire_file_sprintf;
        pakfire_file_ref;
        pakfire_file_unref;
 
index d73b6c74236980a222d77f7538a99c0a2f825e53..248d2ec7ad68bd11e49a9fdcdb19df9c872ea0e2 100644 (file)
@@ -253,23 +253,12 @@ static int pakfire_packager_write_filelist(struct pakfire_packager* packager,
        for (unsigned int i = 0; i < pakfire_filelist_size(packager->filelist); i++) {
                PakfireFile file = pakfire_filelist_get(packager->filelist, i);
 
-               char type = '-';
-
-               if (pakfire_file_is_dir(file))
-                       type = 'd';
-
-               if (pakfire_file_is_symlink(file))
-                       type = 'l';
-
-               if (pakfire_file_is_char(file))
-                       type = 'c';
-
                const char* chksum = pakfire_file_get_chksum(file);
 
                asprintf(&buffer,
                        "%s%c %-10zu %-10s %-10s %-6d %-12ld %s %s %s\n",
                        (buffer) ? buffer : "",
-                       type,
+                       '-',
                        pakfire_file_get_size(file),
                        pakfire_file_get_user(file),
                        pakfire_file_get_group(file),