diff --git a/src/supported.c b/src/supported.c index abe1d506..3a4ed074 100644 --- a/src/supported.c +++ b/src/supported.c @@ -288,16 +288,22 @@ isupport_extban(const void *ptr) return result; } +static const char * +isupport_nicklen(const void *ptr) +{ + static char result[200]; + + rb_snprintf(result, sizeof result, "%u", ConfigFileEntry.nicklen - 1); + return result; +} + void init_isupport(void) { static int maxmodes = MAXMODEPARAMS; static int channellen = LOC_CHANNELLEN; static int topiclen = TOPICLEN; - static int nicklen = NICKLEN - 1; - static int nicklen_usable; - - nicklen_usable = ConfigFileEntry.nicklen - 1; + static int maxnicklen = NICKLEN - 1; add_isupport("CHANTYPES", isupport_chantypes, NULL); add_isupport("EXCEPTS", isupport_boolean, &ConfigChannel.use_except); @@ -313,8 +319,8 @@ init_isupport(void) add_isupport("CALLERID", isupport_string, "g"); add_isupport("CASEMAPPING", isupport_string, "rfc1459"); add_isupport("CHARSET", isupport_string, "ascii"); - add_isupport("NICKLEN", isupport_intptr, &nicklen); - add_isupport("NICKLEN_USABLE", isupport_intptr, &nicklen_usable); + add_isupport("NICKLEN", isupport_nicklen, NULL); + add_isupport("MAXNICKLEN", isupport_intptr, &maxnicklen); add_isupport("CHANNELLEN", isupport_intptr, &channellen); add_isupport("TOPICLEN", isupport_intptr, &topiclen); add_isupport("ETRACE", isupport_string, "");