git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@6580 c06c8d41-db1a-0410-9941-cceddc491573
GIDTM5YI3WHSH6CNS2MIQSQ3YZSNO3SZWNI4FUGSFDORFY6UDUAQC
O7S3ILRELHICJXXTDGMF7KPPZWYHPYCNDPV2I77FZXXH4I454B4QC
CQ2PQIN6JJWUDKW46Z6S4ZD5HZYFUEBSCG7LTRYQZXAW5YNUWYJQC
45FTVJJ5FMXBXQ2GVUZVJZU6Y6NUYG2JZIHWVMONA7QYYCZQSM2QC
SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC
HIPFIMUOA7DFOFV3DQ55YZJVGNU2GNDYFUCB4MRPUR5DTYDO5YMAC
C55G5JGGSVWMU7XVEJL6YZZLDXQZGRN7JQOAALS6WIKFPX3L2U6QC
K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC
QXQE7C5XDYNF4JSHGDAVMS7HYLOC6YEZFOVFJ3RD7RB6U4AJSFIQC
QEEJFAETO6B2J4IWDIDCJ5UNIFNNHHG22IWF2CUJRTJJBNE47CWQC
RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC
DWSABP6YFM2CCMO7NVGGBWVCPAXOXOT5VQ6SADR4M66LHW66AP6QC
CKY7MRFWMNHXIPJD5ZUAJN5T2YHUIEAYBNYYV5GN74LBZJRDJMEQC
XXUOHQJZC3ODB7UMS5FMYAOXEAJK5TRYPVFRQYHK4OZ2DZVP6ARAC
YH23OR26YDA6C5K74QRWHROMTPGRNZHTHE4HJGPC3JVNAJ62CHGAC
65CM2EZCAFFBWLAYZ7ALBV3BQKNZCYOHYIFY46KU7BZL3LHV36JAC
RC6L3CIBLJEH4GWRFD7UQNGI6PZT74FRUVOYHSAN2XCC74NZUASQC
LAMIVDKY7LO5ONX5Z273ZCCEA5UBENOJD5VWNE4AK2EXGFED6BFQC
}
#if defined(DOS)
// Abbreviates a given file name to DOS style "xxxxxx~1.txt".
// Does not take into account files with differing suffixes or files
// with a prepended path with more than one separator.
// (It does handle all files included with the distribution except
// changes.stone_soup.)
bool get_dos_compatible_file_name(std::string *fname)
{
std::string::size_type pos1 = fname->find("\\");
if (pos1 == std::string::npos)
pos1 = 0;
const std::string::size_type pos2 = fname->find(".txt");
// Name already fits DOS requirements, nothing to be done.
if (fname->substr(pos1, pos2).length() <= 8)
return (false);
*fname = fname->substr(0,pos1) + fname->substr(pos1, pos1 + 6) + "~1.txt";
return (true);
FILE* fp = fopen(datafile_path("034_changes.txt", false).c_str(), "r");
FILE* fp = fopen(datafile_path(fname, false).c_str(), "r");
#if defined(DOS)
if (!fp)
{
#ifdef DEBUG_FILES
mprf(MSGCH_DIAGNOSTICS, "File '%s' could not be opened.",
fname.c_str());
#endif
if (get_dos_compatible_file_name(&fname))
{
#ifdef DEBUG_FILES
mprf(MSGCH_DIAGNOSTICS,
"Attempting to open file '%s'", fname.c_str());
#endif
fp = fopen(datafile_path(fname, false).c_str(), "r");
}
}
#endif
FILE* fp =
fopen(datafile_path(help_files[i].name, false).c_str(), "r");
std::string fname = canonicalise_file_separator(help_files[i].name);
FILE* fp = fopen(datafile_path(fname, false).c_str(), "r");
#if defined(DOS)
if (!fp)
{
#ifdef DEBUG_FILES
mprf(MSGCH_DIAGNOSTICS, "File '%s' could not be opened.",
help_files[i].name);
#endif
if (get_dos_compatible_file_name(&fname))
{
#ifdef DEBUG_FILES
mprf(MSGCH_DIAGNOSTICS,
"Attempting to open file '%s'", fname.c_str());
#endif
fp = fopen(datafile_path(fname, false).c_str(), "r");
}
}
#endif