// read and parse DEM "A" record
-void fgDEM::read_a_record( void ) {
+int fgDEM::read_a_record( void ) {
int i, inum;
double dnum;
char name[144];
inum = next_int(fd);
printf(" DEM level code = %d\n", inum);
+ if ( inum > 3 ) {
+ return(0);
+ }
+
// Pattern code, 1 indicates a regular elevation pattern
inum = next_int(fd);
printf(" Pattern code = %d\n", inum);
// number of profiles
dem_num_profiles = cols = next_int(fd);
printf(" Expecting %d profiles\n", dem_num_profiles);
+
+ return(1);
}
cur_col = 0;
- read_a_record();
+ if ( !read_a_record() ) {
+ return(0);
+ }
for ( i = 0; i < dem_num_profiles; i++ ) {
// printf("Ready to read next b record\n");
printf(" Done parsing\n");
- return(0);
+ return(1);
}
// $Log$
+// Revision 1.7 1998/06/05 18:14:39 curt
+// Abort out early when reading the "A" record if it doesn't look like
+// a proper DEM file.
+//
// Revision 1.6 1998/05/02 01:49:21 curt
// Fixed a bug where the wrong variable was being initialized.
//
int parse( void );
// read and parse DEM "A" record
- void read_a_record( void );
+ int read_a_record( void );
// read and parse DEM "B" record
void read_b_record( void );
// $Log$
+// Revision 1.6 1998/06/05 18:14:40 curt
+// Abort out early when reading the "A" record if it doesn't look like
+// a proper DEM file.
+//
// Revision 1.5 1998/04/22 13:14:46 curt
// Fixed a bug in zlib usage.
//