static int main_add(SaveBlock & save, int argc, char ** argv) { if(!save.open(true)) { return 2; } for(int i = 0; i < argc; i++) { size_t size; char * data = fs::read_file(argv[i], size); if(!data) { cerr << "error loading " << argv[i]; } else { string name = argv[i]; size_t pos = name.find_last_of("/\\"); if(pos != string::npos) { name = name.substr(pos + 1); } if(!save.save(name, data, size)) { cerr << "error writing " << name << " to save"; } delete[] data; } } save.flush("pld"); return 0; }