Commit Diff


commit - 33a1c94f610e2bb51a6b3c88e6f50611327dccf8
commit + e169863f566fe3e02cc721d5bedd036ed02beef5
blob - bbb0ddcd7ce05d98868b52ca2a755a1c38946279
blob + e445c51d02853f89d106b819abed1c1a967ed62d
--- FICS/ratings.c
+++ FICS/ratings.c
@@ -349,25 +349,19 @@ load_ratings(void)
 		return;
 	}
 
-	for (int i = 0; i < MAXHIST; i++) {
-		int ret, errno_save;
+	for (int i = 0; i < MAXHIST && !feof(fp) && !ferror(fp); i++) {
+		int ret;
 
 		sHist[i] = bHist[i] = wHist[i] = lHist[i] = 0;
 
-		errno = 0;
 		ret = fscanf(fp, "%d %d %d %d", &sHist[i], &bHist[i], &wHist[i],
 		    &lHist[i]);
-		errno_save = errno;
 		if (ret != 4) {
-			errno = errno_save;
-			warnx("%s: too few items assigned (iteration: %d)",
-			    __func__, i);
+			warnx("%s: %s: too few items assigned (iteration: %d)",
+			    __func__, fname, i);
 			fclose(fp);
 			return;
 		}
-
-		if (feof(fp) || ferror(fp))
-			break;
 	}
 
 	if (ferror(fp)) {