Alternatively, here the patch is enclosed as a git format-patch file, with some indentation correction (sorry, my editor substituted spaces for tabs.)
On Mon, Aug 28, 2017 at 12:20 PM, Tore Sinding Bekkedal <tore...@gmail.com> wrote: > Hello - long time user, first time contributor. > > The screen lock message does not present GECOS data correctly if it - > as is tradition - is a comma-separated string; so rather than: > > screen used by Tore Sinding Bekkedal <toresbe> on pascal. > > I get: > > screen used by Tore Sinding Bekkedal,,, <toresbe> on pascal. > > Here's a patch which should fix that. I hope it's been formatted > correctly, sent to the right place, and meets the appropriate > standards - if not, please let me know. > > diff --git a/src/socket.c b/src/socket.c > index 804592e..4402016 100644 > --- a/src/socket.c > +++ b/src/socket.c > @@ -1105,8 +1105,19 @@ static void AskPassword(Message *m) > D_processinputdata = (char *)pwdata; > D_processinput = PasswordProcessInput; > > - snprintf(prompt, sizeof(prompt), "\ascreen used by %s%s<%s> on > %s.\r\nPassword: ", ppp->pw_gecos, > + char * gecos_comma = strchr(ppp->pw_gecos, ','); > + char * realname = 0; > + > + if (gecos_comma) { > + realname = malloc(gecos_comma - ppp->pw_gecos); > + memcpy(realname, ppp->pw_gecos, gecos_comma - ppp->pw_gecos); > + } > + > + snprintf(prompt, sizeof(prompt), "\ascreen used by %s%s<%s> on > %s.\r\nPassword: ", > + gecos_comma ? realname : ppp->pw_gecos, > ppp->pw_gecos[0] ? " " : "", ppp->pw_name, HostName); > + > + free(realname); > AddStr(prompt); > } > > regards, > -- > Tore Sinding Bekkedal | http://gunkies.org/ | Mob: +47 91 85 95 08 > "I never let my schooling interfere with my education." - Mark Twain -- Tore Sinding Bekkedal | http://gunkies.org/ | Mob: +47 91 85 95 08 "I never let my schooling interfere with my education." - Mark Twain
From cf4cf3b646a86941cc7f402950e606c131599639 Mon Sep 17 00:00:00 2001 From: Tore Sinding Bekkedal <tore...@gmail.com> Date: Mon, 28 Aug 2017 13:42:40 +0200 Subject: [PATCH] Fix unlock prompt when GECOS is CSVs To: screen-devel@gnu.org --- src/socket.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/socket.c b/src/socket.c index 804592e..3938fa0 100644 --- a/src/socket.c +++ b/src/socket.c @@ -1105,8 +1105,19 @@ static void AskPassword(Message *m) D_processinputdata = (char *)pwdata; D_processinput = PasswordProcessInput; - snprintf(prompt, sizeof(prompt), "\ascreen used by %s%s<%s> on %s.\r\nPassword: ", ppp->pw_gecos, + char * gecos_comma = strchr(ppp->pw_gecos, ','); + char * realname = 0; + + if (gecos_comma) { + realname = malloc(gecos_comma - ppp->pw_gecos); + memcpy(realname, ppp->pw_gecos, gecos_comma - ppp->pw_gecos); + } + + snprintf(prompt, sizeof(prompt), "\ascreen used by %s%s<%s> on %s.\r\nPassword: ", + gecos_comma ? realname : ppp->pw_gecos, ppp->pw_gecos[0] ? " " : "", ppp->pw_name, HostName); + + free(realname); AddStr(prompt); } -- 2.11.0