#include "ips.h" int main(int argc, char** argv) { int8_t err; char *ipsName, *inName, *outName; struct IPSPatch ips; if(argc < 3) { fprintf(stderr, "Error : too few arguments\n" "Usage : %s ipsfile inputrom [outputrom]\n", argv[0]); return 0; } ipsName = argv[1]; inName = argv[2]; outName = (argc == 4) ? argv[3] : inName; err = IPSOpen(&ips, ipsName, inName, outName); if(err != IPS_OK) { fprintf(stderr, "Error : can not open one of the following file\n: %s %s %s\n", ipsName, inName, outName); return 0; } while(1) { err = IPSReadRecord(&ips); if(err == IPS_PATCH_END) { break; } else if(err != IPS_OK) { fprintf(stderr, "Error : an unexpected error occured during ips record read\n"); IPSClose(&ips); return 0; } err = IPSProcessRecord (&ips); if(err != IPS_OK) { fprintf(stderr, "Error : an unexpected error occured while processing ips record\n"); IPSClose(&ips); return 0; } } fprintf(stdout, "%s was successfully patched!\n", inName); IPSClose(&ips); return 1; }