From f926ed97aca40f5685bf8f3116588984f4b4964f Mon Sep 17 00:00:00 2001
From: Claudio Matsuoka <cmatsuoka@gmail.com>
Date: Tue, 11 Jan 2011 17:54:24 -0200
Subject: [PATCH] Address ignored return value warnings in chkfont

Actually verify return values of fgets() and fscanf() in chkfont instead
of disabling the warning.

Signed-off-by: Claudio Matsuoka <cmatsuoka@gmail.com>
---
 Makefile  |  2 +-
 chkfont.c | 18 ++++++++++++++++--
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index efd35d8..8d74792 100644
--- a/Makefile
+++ b/Makefile
@@ -20,7 +20,7 @@ SHELL = /bin/sh
 
 # The C compiler and linker to use
 CC	= gcc
-CFLAGS	= -g -O2 -Wall -Wno-unused-result
+CFLAGS	= -g -O2 -Wall
 LD	= gcc
 LDFLAGS =
 
diff --git a/chkfont.c b/chkfont.c
index 47bbefb..91e1d97 100644
--- a/chkfont.c
+++ b/chkfont.c
@@ -108,15 +108,24 @@ exit(1);
 
 /* Don't warn on unitialized expected_width and expected_endmark */
 #pragma GCC diagnostic ignored "-Wuninitialized"
+/* Don't warn on unused return values of fgets() and fscanf() */
+#pragma GCC diagnostic ignored "-Wuninitialized"
 
 void readchar()
 {
 int i,expected_width,k,len,newlen,diff,l;
 char endmark,expected_endmark;
 int leadblanks,minleadblanks,trailblanks,mintrailblanks;
+char *ret;
 
 for (i=0;i<charheight;i++) {
-  fgets(fileline,maxlen+1000,fontfile);
+  ret = fgets(fileline,maxlen+1000,fontfile);
+  if (ret == NULL) {
+    printf("%s: ERROR (fatal)- Unexpected read error after line %d.\n",
+      fontfilename,currline);
+    ec++;
+    weregone(1); if (gone) return;
+    }
   if (feof(fontfile)) {
     printf("%s: ERROR (fatal)- Unexpected end of file after line %d.\n",
       fontfilename,currline);
@@ -240,7 +249,12 @@ if (fontfile!=stdin) {
     weregone(0); if (gone) return;
     }
   }
-fscanf(fontfile,"%4s",magicnum);
+numsread=fscanf(fontfile,"%4s",magicnum);
+if (numsread == EOF) {
+  printf("%s: ERROR- can't read magic number.\n",fontfilename);
+  ec++;
+  weregone(0); if (gone) return;
+  }
 if (strcmp(magicnum,FONTFILEMAGICNUMBER)) {
   printf("%s: ERROR- Incorrect magic number.\n",fontfilename);
   ec++;