mirror of
https://github.com/weechat/weechat.git
synced 2026-06-27 13:26:38 +02:00
irc: fix string comparison when CASEMAPPING is set to "ascii"
This commit is contained in:
@@ -40,6 +40,7 @@ Bug fixes::
|
||||
* fset: remove extra spaces between min and max values when second format is used
|
||||
* fset: fix mouse actions when second format is used
|
||||
* fset: apply option fset.color.help_description (issue #1988)
|
||||
* irc: fix string comparison when CASEMAPPING is set to "ascii"
|
||||
* irc: fix display of country code in message 344 received as whois geo info (issue #1736)
|
||||
* irc: add missing "account-tag" in list of supported capabilities
|
||||
* irc: add channel in "autojoin" server option only when the channel is actually joined (issue #1990)
|
||||
|
||||
@@ -132,6 +132,8 @@ char *irc_server_options[IRC_SERVER_NUM_OPTIONS][2] =
|
||||
|
||||
char *irc_server_casemapping_string[IRC_SERVER_NUM_CASEMAPPING] =
|
||||
{ "rfc1459", "strict-rfc1459", "ascii" };
|
||||
int irc_server_casemapping_range[IRC_SERVER_NUM_CASEMAPPING] =
|
||||
{ 30, 29, 26 };
|
||||
|
||||
char *irc_server_utf8mapping_string[IRC_SERVER_NUM_UTF8MAPPING] =
|
||||
{ "none", "rfc8265" };
|
||||
@@ -295,25 +297,15 @@ int
|
||||
irc_server_strcasecmp (struct t_irc_server *server,
|
||||
const char *string1, const char *string2)
|
||||
{
|
||||
int casemapping, rc;
|
||||
int casemapping, range;
|
||||
|
||||
casemapping = (server) ? server->casemapping : IRC_SERVER_CASEMAPPING_RFC1459;
|
||||
switch (casemapping)
|
||||
{
|
||||
case IRC_SERVER_CASEMAPPING_RFC1459:
|
||||
rc = weechat_strcasecmp_range (string1, string2, 30);
|
||||
break;
|
||||
case IRC_SERVER_CASEMAPPING_STRICT_RFC1459:
|
||||
rc = weechat_strcasecmp_range (string1, string2, 29);
|
||||
break;
|
||||
case IRC_SERVER_CASEMAPPING_ASCII:
|
||||
rc = weechat_strcasecmp (string1, string2);
|
||||
break;
|
||||
default:
|
||||
rc = weechat_strcasecmp_range (string1, string2, 30);
|
||||
break;
|
||||
}
|
||||
return rc;
|
||||
casemapping = (server) ? server->casemapping : -1;
|
||||
if ((casemapping < 0) || (casemapping >= IRC_SERVER_NUM_CASEMAPPING))
|
||||
casemapping = IRC_SERVER_CASEMAPPING_RFC1459;
|
||||
|
||||
range = irc_server_casemapping_range[casemapping];
|
||||
|
||||
return weechat_strcasecmp_range (string1, string2, range);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -330,25 +322,15 @@ int
|
||||
irc_server_strncasecmp (struct t_irc_server *server,
|
||||
const char *string1, const char *string2, int max)
|
||||
{
|
||||
int casemapping, rc;
|
||||
int casemapping, range;
|
||||
|
||||
casemapping = (server) ? server->casemapping : IRC_SERVER_CASEMAPPING_RFC1459;
|
||||
switch (casemapping)
|
||||
{
|
||||
case IRC_SERVER_CASEMAPPING_RFC1459:
|
||||
rc = weechat_strncasecmp_range (string1, string2, max, 30);
|
||||
break;
|
||||
case IRC_SERVER_CASEMAPPING_STRICT_RFC1459:
|
||||
rc = weechat_strncasecmp_range (string1, string2, max, 29);
|
||||
break;
|
||||
case IRC_SERVER_CASEMAPPING_ASCII:
|
||||
rc = weechat_strncasecmp (string1, string2, max);
|
||||
break;
|
||||
default:
|
||||
rc = weechat_strncasecmp_range (string1, string2, max, 30);
|
||||
break;
|
||||
}
|
||||
return rc;
|
||||
casemapping = (server) ? server->casemapping : -1;
|
||||
if ((casemapping < 0) || (casemapping >= IRC_SERVER_NUM_CASEMAPPING))
|
||||
casemapping = IRC_SERVER_CASEMAPPING_RFC1459;
|
||||
|
||||
range = irc_server_casemapping_range[casemapping];
|
||||
|
||||
return weechat_strncasecmp_range (string1, string2, max, range);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user