Thumbnail

rani/cscroll.git

Clone URL: https://git.buni.party/rani/cscroll.git

commit 80196d323396259e58237f02944630803efafbae Author: rani <clagv.randomgames@gmail.com> Date: Tue Jun 28 16:35:38 2022 +0000 fix uid and gid function results decaying diff --git a/include/dir.h b/include/dir.h index 3f671fb..f8879a2 100644 --- a/include/dir.h +++ b/include/dir.h @@ -498 +498 @@ struct dir_entry_t {     uint16_t mode;   time_t mtime; - char * owner; - char * group; + long owner; + long group;   int size;   enum f_size u_size;  }; diff --git a/src/dir.c b/src/dir.c index 6eddb16..131b2ad 100644 --- a/src/dir.c +++ b/src/dir.c @@ -15011 +15011 @@ int list_dir(char * dir_path) {   dir_entry->mtime = buf->st_mtim.tv_sec;  #endif   size_t n; - dir_entry->owner = getpwuid(buf->st_uid)->pw_name; - if ((n = strlen(dir_entry->owner)) > dir_longest_owner) + dir_entry->owner = buf->st_uid; + if ((n = strlen(getpwuid(buf->st_uid)->pw_name)) > dir_longest_owner)   dir_longest_owner = n; - dir_entry->group = getgrgid(buf->st_gid)->gr_name; - if ((n = strlen(dir_entry->group)) > dir_longest_group) + dir_entry->group = buf->st_gid; + if ((n = strlen(getgrgid(buf->st_gid)->gr_name)) > dir_longest_group)   dir_longest_group = n;     dir_entry->size = buf->st_size; diff --git a/src/io.c b/src/io.c index 4a9ac3b..639f24d 100644 --- a/src/io.c +++ b/src/io.c @@ -76 +78 @@  #include <locale.h>  #include <fcntl.h>  #include <time.h> +#include <pwd.h> +#include <grp.h>    #if ICONS  #include "type.h" @@ -1078 +1098 @@ void curses_write_file(struct dir_entry_t * dir_entry, bool highlight) {   char * icon = NULL;  #endif   char * smode = NULL; - char * owner = dir_entry->owner; - char * group = dir_entry->group; + char * owner = getpwuid(dir_entry->owner)->pw_name; + char * group = getgrgid(dir_entry->group)->gr_name;   char * size = NULL;   char time[128];