- ConfigReader conf;
- charset = conf.ReadValue("nationalchars", "file", 0);
- casemapping = conf.ReadValue("nationalchars", "casemapping", charset, 0, false);
- charset.insert(0, "../locales/");
+ memcpy(m_lower, rfc_case_insensitive_map, 256);
+ national_case_insensitive_map = m_lower;
+
+ ServerInstance->IsNick = &lwbNickHandler::Call;
+ }
+
+ void ReadConfig(ConfigStatus& status) CXX11_OVERRIDE
+ {
+ ConfigTag* tag = ServerInstance->Config->ConfValue("nationalchars");
+ charset = tag->getString("file");
+ std::string casemapping = tag->getString("casemapping", FileSystem::GetFileName(charset));
+ if (casemapping.find(' ') != std::string::npos)
+ throw ModuleException("<nationalchars:casemapping> must not contain any spaces!");
+ ServerInstance->Config->CaseMapping = casemapping;
+#if defined _WIN32
+ if (!FileSystem::StartsWithWindowsDriveLetter(charset))
+ charset.insert(0, "./locales/");
+#else
+ if(charset[0] != '/')
+ charset.insert(0, "../locales/");
+#endif