aboutsummaryrefslogtreecommitdiff
path: root/slstatusf/components/user.c
diff options
context:
space:
mode:
Diffstat (limited to 'slstatusf/components/user.c')
-rwxr-xr-xslstatusf/components/user.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/slstatusf/components/user.c b/slstatusf/components/user.c
new file mode 100755
index 0000000..3517495
--- /dev/null
+++ b/slstatusf/components/user.c
@@ -0,0 +1,33 @@
+/* See LICENSE file for copyright and license details. */
+#include <pwd.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "../slstatus.h"
+#include "../util.h"
+
+const char *
+gid(const char *unused)
+{
+ return bprintf("%d", getgid());
+}
+
+const char *
+username(const char *unused)
+{
+ struct passwd *pw;
+
+ if (!(pw = getpwuid(geteuid()))) {
+ warn("getpwuid '%d':", geteuid());
+ return NULL;
+ }
+
+ return bprintf("%s", pw->pw_name);
+}
+
+const char *
+uid(const char *unused)
+{
+ return bprintf("%d", geteuid());
+}