diff --git a/src/bin/utils.c b/src/bin/utils.c new file mode 100644 index 00000000..34522234 --- /dev/null +++ b/src/bin/utils.c @@ -0,0 +1,23 @@ +#include "private.h" +#include "utils.h" +#include +#include + +Eina_Bool +homedir_get(char *buf, size_t size) +{ + const char *home = getenv("HOME"); + if (!home) + { + uid_t uid = getuid(); + struct passwd *pw = getpwuid(uid); + if (pw) home = pw->pw_dir; + } + if (!home) + { + ERR("Could not get $HOME"); + return EINA_FALSE; + } + return eina_strlcpy(buf, home, size) < size; +} + diff --git a/src/bin/utils.h b/src/bin/utils.h new file mode 100644 index 00000000..c08ec43f --- /dev/null +++ b/src/bin/utils.h @@ -0,0 +1,7 @@ +#ifndef _UTILS_H__ +#define _UTILS_H__ + +#include +Eina_Bool homedir_get(char *buf, size_t size); + +#endif