std::ifstream& in, const char *fname, bool is_text
const char *fname, const char *mode
void U7open	(	std::ifstream& in,			// Input stream to open.	const char *fname,			// May be converted to upper-case.	bool is_text				// Should the file be opened in text mode	){#if defined(MACOS) || (__GNUG__ > 2)	std::ios_base::openmode mode = std::ios::in;	if (!is_text) mode |= std::ios::binary;#elif defined(XWIN)	int mode = std::ios::in;#else	int mode = std::ios::in;	if (!is_text) mode |= std::ios::binary;#endif	string name = get_system_path(fname);		// We first "clear" the stream object. This is done to prevent	// problems when re-using stream objects	in.clear();	int uppercasecount = 0;	do {		in.open(name.c_str(), mode);		// Try to open		if (in.good())			return; // found it!		in.clear();	// Must do this again	} while (base_to_uppercase(name, ++uppercasecount));	// file not found.	throw file_open_exception(get_system_path(fname));}