diff options
-rw-r--r-- | core/save-git.c | 2 | ||||
-rw-r--r-- | core/unix.c | 12 |
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; } |