This also removes you.where_are_you() so as not to require lua scripts to know the value of C++ enums. This change also fixes stricmp incorrectly falling through to strcmp on non-MSVC platforms.
QAZNQSLHE4QJC3DFI3XXAMFNVRJPCHOYCFGXENAOSKWYFTL2B3YQC
KPV3FB5OV2AYSOWNO5KWNSGVI7RMIWCRH6AQWIRTMODV6AR33R2QC
GXSKBPS2YL7D55TD6UN7DV6W2HNYZZCRV5VJQYN2AYMQJEAHUQPAC
OEZE4RQJAPTNNPB3IRHBP2CTLKASHHDADGJIQGP6WJ2ERSEHGNUAC
WW6THKR7JN447YC23YYHYYNH7ABMCFFSECNUFTIJBZX6JHX6W7TAC
GQL5SIGBHLU3FMCE54XVGLRY5AZHRM6DUEB722REA2DPLGJSN6EQC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
QOYITYZZM3BXITPZGSQGAVUM4T5H6ZL4QYRG5H5W7PSELOF2PO2QC
Q3B3UVMYEVC4YJUPYVSNTR4DJH4E6J4JJDHZNT5LNOCHCPPMEMXAC
25CH7HH4LKXFIZ75YNMXS3TSXO6O27DYSOPLOD45K4OCNFWLS4LQC
HVAXGXQIGESHOLDQDNVP42XMEKVXFKXJ63IHXVBVSSZUJYHLR7FQC
WNC5SY6P2PBCU62Q2DB5J2M4HPDS5EJY76ZEPHRGGCLJ4BSLBSSQC
LPTP6ZL7U4OVXLZ56TJKJ6HENDHE7ITFMFBXC5BKEBVXEGXPW44AC
MQBPIR2ALV2KSE3YLXPBFEGYJBXFOTMGCRYBOEVNPHYGZD5OHAZQC
T53JH5GFABPQXENOAMN2C2FAMALAMUAMWNEMGKRSO2YEYALLB3TAC
IJHYMJBOPNFORSDVM4RBZ5ZPLGSFSG6JRTPPYOD4YYWPT4YXNRLQC
}
#ifdef UNIX
extern "C" int stricmp(const char *str1, const char *str2)
{
int ret = 0;
// No need to check for *str1. If str1 ends, then tolower(*str1) will be
// 0, ret will be -1, and the loop will break.
while (!ret && *str2)
{
unsigned char c1 = tolower(*str1);
unsigned char c2 = tolower(*str2);
ret = c1 - c2;
str1++;
str2++;
}
if (ret < 0)
ret = -1;
else if (ret > 0)
ret = 1;
return (ret);
int stricmp(const char *str1, const char *str2)
{
return (strcmp(str1, str2));
}
LUARET1(you_where_are_you, number, you.where_are_you)
for (int i = 0; i < NUM_BRANCHES; i++)
{
if (stricmp(name, branches[i].shortname) == 0
|| stricmp(name, branches[i].longname) == 0
|| stricmp(name, branches[i].abbrevname) == 0)
{
if (br != NUM_BRANCHES)
{
std::string err = make_stringf(
"'%s' matches both branch '%s' and '%s'",
name, branches[br].abbrevname,
branches[i].abbrevname);
return (luaL_argerror(ls, 1, err.c_str()));
}
br = i;
}
}
if (br == NUM_BRANCHES)
{
std::string err = make_stringf("'%s' matches no branches.", name);
return (luaL_argerror(ls, 1, err.c_str()));
}