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");
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;
} else {
fscanf(person_data, "%i", &credit);
fclose(person_data);
}
credit += price;
person_data = fopen(filename, "w");
if (person_data == NULL) {
printf("ERROR: Filename %s could not be created or overwritten!\nCheck system integrity!\n", filename);
} else {
fprintf(person_data, "%i", credit);
fclose(person_data);
// Write only if the price would change credit
if (price != 0) {
credit += price;
person_data = fopen(filename, "w");
if (person_data == NULL) {
printf("ERROR: Filename %s could not be created or overwritten!\nCheck system integrity!\n", filename);
} else {
fprintf(person_data, "%i", credit);
fclose(person_data);
}
}
return credit;