X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/1d4977afe4282d300f0f34e68974f4ef211ac769..07dbafdaf673d7f20d7f93ab4e8e42c6c7f00a2d:/sbr/ruserpass.c?ds=inline diff --git a/sbr/ruserpass.c b/sbr/ruserpass.c index bc24f520..610f32a5 100644 --- a/sbr/ruserpass.c +++ b/sbr/ruserpass.c @@ -59,7 +59,7 @@ static int token(char *); void -ruserpass(char *host, char **aname, char **apass) +ruserpass(const char *host, char **aname, char **apass, int flags) { int t, usedefault = 0; struct stat stb; @@ -133,7 +133,7 @@ ruserpass(char *host, char **aname, char **apass) } } - if (!*aname) { + if (!*aname && ! (flags & RUSERPASS_NO_PROMPT_USER)) { char tmp[80]; char *myname; @@ -148,7 +148,7 @@ ruserpass(char *host, char **aname, char **apass) if (fgets(tmp, sizeof(tmp) - 1, stdin) == NULL) { advise ("tmp", "fgets"); } - tmp[strlen(tmp) - 1] = '\0'; + TrimSuffixC(tmp, '\n'); if (*tmp != '\0' || myname == NULL) { myname = tmp; } @@ -156,7 +156,7 @@ ruserpass(char *host, char **aname, char **apass) *aname = mh_xstrdup(myname); } - if (!*apass) { + if (!*apass && ! (flags & RUSERPASS_NO_PROMPT_PASSWORD)) { char prompt[256]; char *mypass;