tUse login first name as default user name - vaccinewars - be a doctor and try to vaccinate the world (HTM) git clone git://src.adamsgaard.dk/vaccinewars (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 68f6a78f348c8ef5968af44946d45e1c7dbd7305 (DIR) parent 6860dd12a2d0843875ee263bdd381822580a061d (HTM) Author: Ben Webb <ben@salilab.org> Date: Tue, 1 Dec 2020 22:58:09 -0800 Use login first name as default user name Use the first word of the user's full login name as the default player name for the GUI client. Diffstat: M src/gui_client/newgamedia.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) --- (DIR) diff --git a/src/gui_client/newgamedia.c b/src/gui_client/newgamedia.c t@@ -454,6 +454,26 @@ static GtkWidget *create_metaserver_view(GtkWidget **pack_widg) } #endif +static void set_initial_player_name(GtkEntry *entry, Player *play) +{ + char *name = GetPlayerName(play); + if (*name) { + gtk_entry_set_text(entry, name); + } else { + /* If name is blank, use the first word from the user's full login name */ + char *firstspace; + name = g_strdup(g_get_real_name()); + g_strstrip(name); + firstspace = strchr(name, ' '); + if (firstspace) { + *firstspace = '\0'; + } + /* "Unknown" is returned from g_get_real_name() on error */ + gtk_entry_set_text(entry, strcmp(name, "Unknown") == 0 ? "" : name); + g_free(name); + } +} + #ifdef NETWORKING void NewGameDialog(Player *play, NBCallBack sockstat, CurlConnection *MetaConn) #else t@@ -520,7 +540,7 @@ void NewGameDialog(Player *play) #else gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); #endif - gtk_entry_set_text(GTK_ENTRY(entry), GetPlayerName(stgam.play)); + set_initial_player_name(GTK_ENTRY(entry), stgam.play); gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);