/*--------------------------------------------------------------------------------*/ bool XMLADMData::ReadXMLFromFile(const std::string& filename, bool finalise) { EnhancedFile fp; bool success = false; if (fp.fopen(filename.c_str())) { fp.fseek(0, SEEK_END); off_t len = fp.ftell(); fp.rewind(); char *buffer; if ((buffer = new char[len + 1]) != NULL) { len = fp.fread(buffer, sizeof(char), len); buffer[len] = 0; success = SetAxml(buffer, finalise); delete[] buffer; } else BBCERROR("Failed to allocate %s chars for file '%s'", StringFrom(len + 1).c_str(), filename.c_str()); fp.fclose(); } else BBCERROR("Failed to open file '%s' for reading", filename.c_str()); return success; }