std::string, since as soon as the function returns, the std::string goes
out of scope, and the c_str() becomes a dangling pointer, which usually
points to the same area as before, but occasionally points to garbage.
Instead, make them return std::string's, and call c_str() on the return
value outside the functions. Among other things, this should fix
[1999515].
Note that I've only fixed direct c_str() returns for now. There might be some indirect ones that I missed.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6139 c06c8d41-db1a-0410-9941-cceddc491573
TPO6FNMPNUSWH4NCKO3VLYNAADEPSAXLUITCCACLZZSY53PKA62QC
XQAES2BAALAPG7RLJ5Q4H6LPODWO5QMFONJ7E4IXXCCEDQERAUGQC
UEI5JAVCMN7Y2SACTEZPZSNFJWOJTC55G24Q6LKQCT4XNDH5ZQIAC
L6ZDC34R3PLXM4UIEOVIAX3X4JIFFTMURK45JECVA5R72H5Q6D4QC
KVTA7IUBD2O7ZEUU5T5VP7D3XVLFLYICXUPP5WCPAODBXKK4DNNQC
IJWSDYX5S7GIBDDZO3X4IRKY4XBC6IF3DEWKKVFEZA53GUWKMVHAC
RMPMIONAOIYDZ5GWRUT65OVWAIQX7NWQ5QAPU6FSIODAGBAI5BIAC
CQE2PS6RJI7QIP5YWGJKM6227HSIP7ZB2CBCJH5S2FN3PUDMLXUQC
5CPP63H7WJ3GLSHJM4Z2YSU2NISLVESEJ3OYMO4MFZEXVOCV4NIAC
LQH6T3DTCDOS5LAJ4PIPHMQY6UYRFWMVVUX32YJAELGIVR5RZTGQC
DP6XLMKLDC42SWISM7WKLJFTJTRZ3BKTRS7DWUQWLLP3DR4UUGZAC
3NSJT3P2ZCTI3M4IKKL34KKEK7AFFBDWG5YB3OPR5COJWC2MYVJQC
5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC
KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC
NMZFCCM6O3KO2GJWKOSULN27B3QIZKWPBOB62PAILXMRQD4JMIMAC
QQEPPD34BJH7DHNHSAVOST6DRTWCZ3I6ETY4BVSG62AM3O6QZQ2AC
UPPUAHXHWKGQWDKOCVLR7RG3SHEUVKOUC5GRYCEUDGD6RNCOU5LAC
GYOKKBVTZ6HRW2NYC3EMGSB6ULBX24L5DLDZNEP2F6UTA4KPU3CAC
5MGUZD2UACJCSG74TEZHI3Z4YL5KL6ZVUCQ3XVZKDOLKM7EMGWJAC
LUD5XPFLSYPJOYZG6DDV4C5WIQUGZPE7YV6AR75ENCAIISD3LZWQC
NYURIMPCM2RADLMIQSN76OPKXQSK4XBLFNXD2OO53KGZI3MA6AQAC
WPWQO7BWPJHMAWU7FUJE5VZDZV66365DLBLLK64T557E7NDEMKXQC
CRTFR6EHKBI6W4BAO4QQNXKEWRXJGP4MI4UT445JOUUKIIHHMRKAC
VO5CYD7Z4FYFDT6DGVBX6RT3PHLRSUJA6TWV3GPYVE7QCSJ3JEAAC
2HG3XZSSPWPPEAPBGO7PBXSJOGJWXIU6UIGEWZZAG54OMM5HQXUQC
EXYOAOND4VQ76OFAAGCPVIFGIZIF6BQH6S263QZRQIWAZWEDAYNAC
GXXYPBFEWKRZQ6OBGYNS2EXZN52NGNV3UU3WM6S5R74CMJBAKGTAC
XDB2YEWS2WYH4FQZG3CIQ7P5JNS47MDYII2MV2IQ6BCAEPBYO5EQC
22YVHM74WBJNJE4PA5CBEUTDWM6FAGGGILI26A4LXAURX55TNRKAC
2RW7ANB4PPWJC2MP2XCBAWBDGMHJUNNWKMXR74JONERE4X522CNQC
UHL7ECQOTO3SHFAPV4T6ODJ2HLSMUKVHQJQF3CXM3IUNICR7LACAC
NVSFIV2ZKP44XHCSCXG6OZVGL67OIFINC34J2EMKTA4KULCERUEAC
VOXLOCDUHOAFIKRTSISYMOA2QFY3TSHQGR7BKGGQ2VZ5BUUKUQYAC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
UET576SVCGS2TXEDRTO7BUTOTLJ77MYHIVZJCDWGH2BAXYMKG6DAC
ZPYW5XKEOCWWBR2RSIKRLKAHI3KQJNYWM4PBV5LFYWSL4RWL2HOQC
JJULXW764V5C2HJKZNWQAEWB6QM5YZADD7ZCE35LYTBFEM6PMYCAC
LM764EO6YIFOKMRXWZ5S4GYZB4BHZQDTEFP7MEVYO4NN4EDOFGNQC
RRNEVUYOK5S4M4QH77N34IXSSNUXVQAIZQLXAQKQCRITMPUKGP6AC
XMX2Y7QSEXGV2SPDOFDNM2BQJH3S3WTMYLJYUREYV72NWTURHMSQC
QSRRV725GCNDOMIDS36NYAA65MOLDMAZSENVSZ3PNOLBFSGHH7BQC
TUKBRR44ONNRAUYHTQTQIYIQPFK752EGWEZ5A5PULTTQDEDD7DRAC
7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
YATODO2EN3AW7IXW5PL25HHK34YHF6Y32QBMOUZXEATZZ4YQQWZQC
K2MLPJIAXXZRWEWZCNSGICCBNIU2WAAPT7SPIMOH7FLLTOB4QFRAC
43ZTEB57FU7KE5EVMYWZONNVJBZCGF3JEAJZIY25LC4LGE65PG5QC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
2P3IJKK547AOEFWKXEAL73QFKW423GGAZEZHW6OZ6QB7YUSDNC3AC
SYHNAIAJCQHYMVDZWBZC2AUP5F4B5MXL5OY753KGNVH2CLRFSBSAC
VS3WVE6ORJ76O3TRRJCR4JJVFVRKKFK5YHZ6AA4AU63DWM3KR3UAC
23PFLB2E4QHL5SF3Q2YV5FXRH6MFHENEU2ACVC572ZCYDXCBZVQAC
int str_to_colour( const std::string &str, int default_colour = -1,
bool accept_number = true );
const char* colour_to_str( unsigned char colour );
int str_to_colour(const std::string &str, int default_colour = -1,
bool accept_number = true);
const std::string colour_to_str(unsigned char colour);