diff options
| author | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-21 16:57:44 +0900 |
|---|---|---|
| committer | TheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com> | 2025-12-21 16:57:44 +0900 |
| commit | 5bb312993960adaa663701391a83f76b81edc60a (patch) | |
| tree | 8838656d0000d24a4c44f5a548b0b36477dbee60 /fedora/.local/bin/htop-vim/UsersTable.c | |
| parent | a861a5fb4c3449abd9d43481c24a90fb91345d75 (diff) | |
created htop-vim/
Diffstat (limited to 'fedora/.local/bin/htop-vim/UsersTable.c')
| -rw-r--r-- | fedora/.local/bin/htop-vim/UsersTable.c | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/fedora/.local/bin/htop-vim/UsersTable.c b/fedora/.local/bin/htop-vim/UsersTable.c new file mode 100644 index 0000000..6586a4b --- /dev/null +++ b/fedora/.local/bin/htop-vim/UsersTable.c @@ -0,0 +1,46 @@ +/* +htop - UsersTable.c +(C) 2004-2011 Hisham H. Muhammad +Released under the GNU GPLv2+, see the COPYING file +in the source distribution for its full text. +*/ + +#include "config.h" // IWYU pragma: keep + +#include "UsersTable.h" + +#include <pwd.h> +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> + +#include "XUtils.h" + + +UsersTable* UsersTable_new(void) { + UsersTable* this; + this = xMalloc(sizeof(UsersTable)); + this->users = Hashtable_new(10, true); + return this; +} + +void UsersTable_delete(UsersTable* this) { + Hashtable_delete(this->users); + free(this); +} + +char* UsersTable_getRef(UsersTable* this, unsigned int uid) { + char* name = Hashtable_get(this->users, uid); + if (name == NULL) { + const struct passwd* userData = getpwuid(uid); + if (userData != NULL) { + name = xStrdup(userData->pw_name); + Hashtable_put(this->users, uid, name); + } + } + return name; +} + +inline void UsersTable_foreach(UsersTable* this, Hashtable_PairFunction f, void* userData) { + Hashtable_foreach(this->users, f, userData); +} |
