Correctly handle case when a nick comes between a -s flag and a server name on the command line

The -s flag resets after the next server on the command line, but it was also incorrectly resetting
if a nickname was seen as well. This meant that a command line like this failed to use SSL:

BitchX -s -p 9999 gauze irc.choopa.net

Also update the help text to correctly reflect the operation of the -s flag.

Reported by gauze.
This commit is contained in:
Kevin Easton
2017-12-01 23:00:11 +11:00
parent a4ef0798ac
commit 973ae0e4da
2 changed files with 11 additions and 5 deletions

View File

@@ -1,5 +1,8 @@
[Changes 1.2.2]
* Correctly handle case when a nick comes between a -s flag and a server name
on the command line (reported by gauze). (caf)
* Show correct count of matching commands in /HELP. (caf)
* Simplify rsindex() and strsearch() exported functions. (caf)

View File

@@ -240,13 +240,13 @@ static char *switch_help[] = {
" -n nickname\tnickname to use\n",
" -a\t\tadds default servers and command line servers to server list\n",
" -x\t\truns BitchX in \"debug\" mode\n",
" -Z\t\tuse NAT address when doing dcc.\n",
" -P\t\ttoggle check pid.nickname for running program.\n",
" -Z\t\tuse NAT address when doing DCC\n",
" -P\t\ttoggle check pid.nickname for running program\n",
" -v\t\ttells you about the client's version\n",
#ifdef HAVE_LIBSSL
" -s\t\tservers specified are SSL.\n",
" -s\t\tnext server specified is SSL (may be used multiple times)\n",
#endif
" -i\t\tignores the autojoin list entries.\n",
" -i\t\tignores the autojoin list entries\n",
#if defined(WINNT) || defined(__EMX__)
" -l <file>\tloads <file> in place of your irc-rc\n\
-L <file>\tloads <file> in place of your irc-rc and expands $ expandos\n",
@@ -948,10 +948,13 @@ static char *parse_args (char *argv[], int argc, char **envp)
if (!strchr(argv[ac], '.') && !strchr(argv[ac], ',') && !*nickname)
strlcpy(nickname, argv[ac], sizeof nickname);
else
{
build_server_list(argv[ac]);
#ifdef HAVE_LIBSSL
do_use_ssl = 0;
/* -s flag only applies to next server specified */
do_use_ssl = 0;
#endif
}
}
}