Merge pull request #3 from stibi/whoami

getting current user with whoami like function rather than from env variable
pull/5/head
Michael Stapelberg 2015-01-06 08:34:35 +01:00
commit 3898f75672
1 changed files with 7 additions and 2 deletions

View File

@ -8,6 +8,8 @@
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <pwd.h>
#include <sys/types.h>
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#include <stdbool.h> #include <stdbool.h>
@ -659,6 +661,7 @@ static void raise_loop(xcb_window_t window) {
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
struct passwd *pw;
char *username; char *username;
char *image_path = NULL; char *image_path = NULL;
int ret; int ret;
@ -684,8 +687,10 @@ int main(int argc, char *argv[]) {
{NULL, no_argument, NULL, 0} {NULL, no_argument, NULL, 0}
}; };
if ((username = getenv("USER")) == NULL) if ((pw = getpwuid(getuid())) == NULL)
errx(EXIT_FAILURE, "USER environment variable not set, please set it.\n"); err(EXIT_FAILURE, "getpwuid() failed");
if ((username = pw->pw_name) == NULL)
errx(EXIT_FAILURE, "pw->pw_name is NULL.\n");
char *optstring = "hvnbdc:p:ui:teI:f"; char *optstring = "hvnbdc:p:ui:teI:f";
while ((o = getopt_long(argc, argv, optstring, longopts, &optind)) != -1) { while ((o = getopt_long(argc, argv, optstring, longopts, &optind)) != -1) {