summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/save-git.c2
-rw-r--r--core/unix.c12
2 files changed, 12 insertions, 2 deletions
diff --git a/core/save-git.c b/core/save-git.c
index 33c01ab83..67a9cb55b 100644
--- a/core/save-git.c
+++ b/core/save-git.c
@@ -1034,7 +1034,7 @@ static int get_authorship(git_repository *repo, git_signature **authorp)
/* try to fetch the user info from the OS, otherwise use default values. */
struct user_info user = { .name = NULL, .email = NULL };
subsurface_user_info(&user);
- if (!user.name)
+ if (!user.name || !*user.name)
user.name = strdup("Subsurface");
if (!user.email)
user.email = strdup("subsurface-app-account@subsurface-divelog.org");
diff --git a/core/unix.c b/core/unix.c
index 1d92a1ad3..5b1cc3720 100644
--- a/core/unix.c
+++ b/core/unix.c
@@ -38,8 +38,18 @@ void subsurface_user_info(struct user_info *user)
const char *username = getenv("USER");
if (pwd) {
- if (!empty_string(pwd->pw_gecos))
+ if (!empty_string(pwd->pw_gecos)) {
user->name = strdup(pwd->pw_gecos);
+ // We only want the name, not the office or phone number
+ char *c = user->name;
+ while (*c) {
+ if (*c == ',') {
+ *c = '\0';
+ break;
+ }
+ ++c;
+ }
+ }
if (!username)
username = pwd->pw_name;
}