Display the full name instead (if available)

This commit is contained in:
Pierre Pronchery 2015-12-11 00:53:26 +01:00
parent 153909b557
commit 1f8a1e191e

View File

@ -56,21 +56,22 @@ PanelAppletDefinition applet =
/* private */
/* functions */
/* user_init */
static String * _init_user(void);
static User * _user_init(PanelAppletHelper * helper, GtkWidget ** widget)
{
User * user;
struct passwd * pw;
PangoFontDescription * desc;
String * name;
if((pw = getpwuid(getuid())) == NULL)
{
error_set("%s: %s", applet.name, strerror(errno));
return NULL;
}
if((user = object_new(sizeof(*user))) == NULL)
return NULL;
user->helper = helper;
user->widget = gtk_label_new(pw->pw_name);
if((name = _init_user()) != NULL)
user->widget = gtk_label_new(name);
else
user->widget = gtk_label_new("Unknown user");
string_delete(name);
desc = pango_font_description_new();
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
#if GTK_CHECK_VERSION(3, 0, 0)
@ -84,6 +85,26 @@ static User * _user_init(PanelAppletHelper * helper, GtkWidget ** widget)
return user;
}
static String * _init_user(void)
{
struct passwd * pw;
ssize_t len;
if((pw = getpwuid(getuid())) == NULL)
{
error_set("%s: %s", applet.name, strerror(errno));
return NULL;
}
if(pw->pw_gecos != NULL && strlen(pw->pw_gecos) > 0)
{
if((len = string_index(pw->pw_gecos, ",")) > 0)
return string_new_length(pw->pw_gecos, len);
else if(len != 0)
return string_new(pw->pw_gecos);
}
return string_new(pw->pw_name);
}
/* user_destroy */
static void _user_destroy(User * user)