aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrank Warmerdam <warmerdam@pobox.com>2012-02-21 01:44:05 +0000
committerFrank Warmerdam <warmerdam@pobox.com>2012-02-21 01:44:05 +0000
commit5dfb1d5301a0edf5ee142352a49eb37f9b5d1a88 (patch)
tree3b8fe60ea61315998feea0091bd62382faffd854 /src
parent850f843975d0bfef7a4e0ad59ef7681f88263e9c (diff)
downloadPROJ-5dfb1d5301a0edf5ee142352a49eb37f9b5d1a88.tar.gz
PROJ-5dfb1d5301a0edf5ee142352a49eb37f9b5d1a88.zip
improve error checking (#140)
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@2162 4e78687f-474d-0410-85f9-8d5e500ac6b2
Diffstat (limited to 'src')
-rw-r--r--src/nad2bin.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/src/nad2bin.c b/src/nad2bin.c
index 2c8fc28e..6de54f9c 100644
--- a/src/nad2bin.c
+++ b/src/nad2bin.c
@@ -98,9 +98,15 @@ int main(int argc, char **argv) {
/* Read the ASCII Table */
/* ==================================================================== */
- fgets(ct.id, MAX_TAB_ID, stdin);
- scanf("%d %d %*d %lf %lf %lf %lf", &ct.lim.lam, &ct.lim.phi,
- &ct.ll.lam, &ct.del.lam, &ct.ll.phi, &ct.del.phi);
+ if ( NULL == fgets(ct.id, MAX_TAB_ID, stdin) ) {
+ perror("fgets");
+ exit(1);
+ }
+ if ( EOF == scanf("%d %d %*d %lf %lf %lf %lf", &ct.lim.lam, &ct.lim.phi,
+ &ct.ll.lam, &ct.del.lam, &ct.ll.phi, &ct.del.phi) ) {
+ perror("scanf");
+ exit(1);
+ }
if (!(ct.cvs = (FLP *)malloc(tsize = ct.lim.lam * ct.lim.phi *
sizeof(FLP)))) {
perror("mem. alloc");
@@ -112,7 +118,10 @@ int main(int argc, char **argv) {
ct.del.phi *= DEG_TO_RAD;
/* load table */
for (p = ct.cvs, i = 0; i < ct.lim.phi; ++i) {
- scanf("%d:%ld %ld", &ichk, &laml, &phil);
+ if ( EOF == scanf("%d:%ld %ld", &ichk, &laml, &phil) ) {
+ perror("scanf on row");
+ exit(1);
+ }
if (ichk != i) {
fprintf(stderr,"format check on row\n");
exit(1);
@@ -121,7 +130,10 @@ int main(int argc, char **argv) {
t.phi = phil * U_SEC_TO_RAD;
*p++ = t;
for (j = 1; j < ct.lim.lam; ++j) {
- scanf("%ld %ld", &lam, &phi);
+ if ( EOF == scanf("%ld %ld", &lam, &phi) ) {
+ perror("scanf on column");
+ exit(1);
+ }
t.lam = (laml += lam) * U_SEC_TO_RAD;
t.phi = (phil += phi) * U_SEC_TO_RAD;
*p++ = t;