Selaa lähdekoodia

g.proj: +error handling with PROJ 6

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@74188 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 6 vuotta sitten
vanhempi
commit
e48ecef109
1 muutettua tiedostoa jossa 19 lisäystä ja 7 poistoa
  1. 19 7
      general/g.proj/main.c

+ 19 - 7
general/g.proj/main.c

@@ -268,23 +268,35 @@ int main(int argc, char *argv[])
 	proj_crs_info = proj_get_crs_info_list_from_database(NULL, listcodes->answer, NULL, &crs_cnt);
 	if (crs_cnt < 1)
 	    G_fatal_error(_("No codes found for authority %s"),
-		          listcodes->answer;
+		          listcodes->answer);
 		
 	for (i = 0; i < crs_cnt; i++) {
-	    char *proj_definition;
+	    const char *proj_definition;
 	    PJ *pj;
 
-
 	    pj = proj_create_from_database(NULL,
 	                                   proj_crs_info[i]->auth_name,
 	                                   proj_crs_info[i]->code,
 					   PJ_CATEGORY_CRS,
 					   0, NULL);
 	    proj_definition = proj_as_proj_string(NULL, pj, PJ_PROJ_5, NULL);
-
-	    fprintf(stdout, "%s|%s|%s\n", proj_crs_info[i]->code,
-					  proj_crs_info[i]->name,
-					  proj_definition);
+	    if (!proj_definition) {
+		int err = proj_errno(pj);
+		
+		if (err) {
+		    G_warning(_("Unable to fetch proj string: %s"),
+			      proj_errno_string(err));
+		}
+		else {
+		    G_warning(_("Unable to fetch proj string: unknown error"));
+		}
+	    }
+	    else {
+		fprintf(stdout, "%s|%s|%s\n", proj_crs_info[i]->code,
+					      proj_crs_info[i]->name,
+					      proj_definition);
+	    }
+	    proj_destroy(pj);
 	}
 #else
 	char pathname[GPATH_MAX];