dataio.c: Modification by zero only reads the current credit

Signed-off-by: Cestmir Houska <czestmyr@gmail.com>
This commit is contained in:
Cestmir Houska 2011-04-22 04:28:37 +02:00
parent 948d2630a4
commit d8f8458dee

View file

@ -18,20 +18,23 @@ int modify_credit(name, price)
person_data = fopen(filename, "r"); person_data = fopen(filename, "r");
if (person_data == NULL) { if (person_data == NULL) {
printf("Warning: Filename %s does not exist! Creating...\n", filename); printf("Warning: Filename %s does not exist!\n", filename);
credit = 0; credit = 0;
} else { } else {
fscanf(person_data, "%i", &credit); fscanf(person_data, "%i", &credit);
fclose(person_data); fclose(person_data);
} }
credit += price; // Write only if the price would change credit
person_data = fopen(filename, "w"); if (price != 0) {
if (person_data == NULL) { credit += price;
printf("ERROR: Filename %s could not be created or overwritten!\nCheck system integrity!\n", filename); person_data = fopen(filename, "w");
} else { if (person_data == NULL) {
fprintf(person_data, "%i", credit); printf("ERROR: Filename %s could not be created or overwritten!\nCheck system integrity!\n", filename);
fclose(person_data); } else {
fprintf(person_data, "%i", credit);
fclose(person_data);
}
} }
return credit; return credit;