int get_file(exword_t *d, char *filename) { int rsp, len; char *buffer = NULL, *fname_copy = NULL; fname_copy = strdup(filename); rsp = exword_get_file(d, basename(fname_copy), &buffer, &len); if (rsp != 0x20) goto fail; rsp = write_file(filename, buffer, len); fail: free(fname_copy); free(buffer); return rsp; }
void Exword::ReadAdmini(wxMemoryBuffer& buffer) { int rsp, length; char *data; exword_setpath(m_device, (uint8_t*)GetStoragePath().utf8_str().data(), 0); for (int i = 0; admini_list[i] != NULL; i++) { rsp = exword_get_file(m_device, (char*)admini_list[i], &data, &length); if (rsp == EXWORD_SUCCESS && length > 0) { buffer.AppendData(data, length); free(data); break; } free(data); } }