[GRASS-SVN] r51009 - grass/branches/develbranch_6/display/d.vect

svn_grass at osgeo.org svn_grass at osgeo.org
Wed Mar 7 09:06:50 EST 2012


Author: martinl
Date: 2012-03-07 06:06:49 -0800 (Wed, 07 Mar 2012)
New Revision: 51009

Modified:
   grass/branches/develbranch_6/display/d.vect/area.c
   grass/branches/develbranch_6/display/d.vect/plot1.c
Log:
d.vect: close DB connection of fatal error
	invalid color rules is just a warning


Modified: grass/branches/develbranch_6/display/d.vect/area.c
===================================================================
--- grass/branches/develbranch_6/display/d.vect/area.c	2012-03-07 13:42:37 UTC (rev 51008)
+++ grass/branches/develbranch_6/display/d.vect/area.c	2012-03-07 14:06:49 UTC (rev 51009)
@@ -65,8 +65,12 @@
     if (table_colors_flag) {
 	/* for reading RRR:GGG:BBB color strings from table */
 
-	if (rgb_column == NULL || *rgb_column == '\0')
+	if (rgb_column == NULL || *rgb_column == '\0') {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+
 	    G_fatal_error(_("Color definition column not specified."));
+	}
 
 	db_CatValArray_init(&cvarr_rgb);
 
@@ -76,27 +80,39 @@
 	G_debug(3, "nrec_rgb (%s) = %d", rgb_column, nrec_rgb);
 
 	if (cvarr_rgb.ctype != DB_C_TYPE_STRING)
-	    G_fatal_error(_("Color definition column (%s) not a string. "
-			    "Column must be of form RRR:GGG:BBB where RGB values range 0-255."),
-			  rgb_column);
+	    G_warning(_("Color definition column ('%s') not a string. "
+			"Column must be of form 'RRR:GGG:BBB' where RGB values range 0-255. "
+			"You can use '%s' module to define color rules. "
+                       "Unable to colorize features."),
+		      rgb_column, "v.colors");
+       else {
+	   if (nrec_rgb < 0) {
+	       if (open_db)
+		   db_close_database_shutdown_driver(driver);
+	       
+	       G_fatal_error(_("Cannot select data (%s) from table"),
+			     rgb_column);
+	   }
+	   
+	   G_debug(2, "\n%d records selected from table", nrec_rgb);
 
-
-	if (nrec_rgb < 0)
-	    G_fatal_error(_("Cannot select data (%s) from table"),
-			  rgb_column);
-
-	G_debug(2, "\n%d records selected from table", nrec_rgb);
-
-	for (i = 0; i < cvarr_rgb.n_values; i++) {
-	    G_debug(4, "cat = %d  %s = %s", cvarr_rgb.value[i].cat,
-		    rgb_column, db_get_string(cvarr_rgb.value[i].val.s));
-	}
+	   /*
+	   for (i = 0; i < cvarr_rgb.n_values; i++) {
+	       G_debug(4, "cat = %d  %s = %s", cvarr_rgb.value[i].cat,
+		       rgb_column, db_get_string(cvarr_rgb.value[i].val.s));
+	   }
+	   */
+       }
     }
 
     if (width_column) {
-	if (*width_column == '\0')
+	if (*width_column == '\0') {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+	    
 	    G_fatal_error(_("Line width column not specified."));
-
+	}
+	
 	db_CatValArray_init(&cvarr_width);
 
 	nrec_width = db_select_CatValArray(driver, fi->table, fi->key,
@@ -105,14 +121,22 @@
 	G_debug(3, "nrec_width (%s) = %d", width_column, nrec_width);
 
 	if (cvarr_width.ctype != DB_C_TYPE_INT &&
-	    cvarr_width.ctype != DB_C_TYPE_DOUBLE)
+	    cvarr_width.ctype != DB_C_TYPE_DOUBLE) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+
 	    G_fatal_error(_("Line width column (%s) not a number."),
 			  width_column);
+	}
 
-	if (nrec_width < 0)
+	if (nrec_width < 0) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+
 	    G_fatal_error(_("Cannot select data (%s) from table"),
 			  width_column);
-
+	}
+	
 	G_debug(2, "\n%d records selected from table", nrec_width);
 
 	for (i = 0; i < cvarr_width.n_values; i++) {

Modified: grass/branches/develbranch_6/display/d.vect/plot1.c
===================================================================
--- grass/branches/develbranch_6/display/d.vect/plot1.c	2012-03-07 13:42:37 UTC (rev 51008)
+++ grass/branches/develbranch_6/display/d.vect/plot1.c	2012-03-07 14:06:49 UTC (rev 51009)
@@ -212,8 +212,12 @@
     if (table_colors_flag) {
 	/* for reading RRR:GGG:BBB color strings from table */
 
-	if (rgb_column == NULL || *rgb_column == '\0')
+	if (rgb_column == NULL || *rgb_column == '\0') {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+	    
 	    G_fatal_error(_("Color definition column not specified"));
+	}
 
 	db_CatValArray_init(&cvarr_rgb);
 
@@ -223,25 +227,36 @@
 	G_debug(3, "nrec_rgb (%s) = %d", rgb_column, nrec_rgb);
 
 	if (cvarr_rgb.ctype != DB_C_TYPE_STRING)
-	    G_fatal_error(_("Color definition column (%s) not a string. "
-			    "Column must be of form RRR:GGG:BBB where RGB values range 0-255."),
-			  rgb_column);
+	    G_warning(_("Color definition column ('%s') not a string. "
+			"Column must be of form 'RRR:GGG:BBB' where RGB values range 0-255. "
+			"You can use '%s' module to define color rules. "
+                       "Unable to colorize features."),
+		      rgb_column, "v.colors");
+       else {
+	   if (nrec_rgb < 0) {
+	       if (open_db)
+		   db_close_database_shutdown_driver(driver);
+	       
+	       G_fatal_error(_("Cannot select data (%s) from table"),
+			     rgb_column);
+	   }
+	   G_debug(2, "\n%d records selected from table", nrec_rgb);
 
-	if (nrec_rgb < 0)
-	    G_fatal_error(_("Cannot select data (%s) from table"),
-			  rgb_column);
-
-	G_debug(2, "\n%d records selected from table", nrec_rgb);
-
-	for (i = 0; i < cvarr_rgb.n_values; i++) {
-	    G_debug(4, "cat = %d  %s = %s", cvarr_rgb.value[i].cat,
-		    rgb_column, db_get_string(cvarr_rgb.value[i].val.s));
-	}
+	   /*
+	   for (i = 0; i < cvarr_rgb.n_values; i++) {
+	       G_debug(4, "cat = %d  %s = %s", cvarr_rgb.value[i].cat,
+		       rgb_column, db_get_string(cvarr_rgb.value[i].val.s));
+	   }
+	   */
+       }
     }
+    if (width_column) {
+	if (*width_column == '\0') {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
 
-    if (width_column) {
-	if (*width_column == '\0')
 	    G_fatal_error(_("Line width column not specified."));
+	}
 
 	db_CatValArray_init(&cvarr_width);
 
@@ -251,14 +266,22 @@
 	G_debug(3, "nrec_width (%s) = %d", width_column, nrec_width);
 
 	if (cvarr_width.ctype != DB_C_TYPE_INT &&
-	    cvarr_width.ctype != DB_C_TYPE_DOUBLE)
+	    cvarr_width.ctype != DB_C_TYPE_DOUBLE) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+
 	    G_fatal_error(_("Line width column (%s) is not numeric."),
 			  width_column);
+	}
+	
+	if (nrec_width < 0) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
 
-	if (nrec_width < 0)
 	    G_fatal_error(_("Cannot select data (%s) from table"),
 			  width_column);
-
+	}
+	
 	G_debug(2, " %d records selected from table", nrec_width);
 
 	for (i = 0; i < cvarr_width.n_values; i++) {
@@ -271,9 +294,13 @@
     }
 
     if (size_column) {
-	if (*size_column == '\0')
+	if (*size_column == '\0') {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+
 	    G_fatal_error(_("Symbol size column not specified."));
-
+	}
+	
 	db_CatValArray_init(&cvarr_size);
 
 	nrec_size = db_select_CatValArray(driver, fi->table, fi->key,
@@ -282,14 +309,22 @@
 	G_debug(3, "nrec_size (%s) = %d", size_column, nrec_size);
 
 	if (cvarr_size.ctype != DB_C_TYPE_INT &&
-	    cvarr_size.ctype != DB_C_TYPE_DOUBLE)
+	    cvarr_size.ctype != DB_C_TYPE_DOUBLE) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+
 	    G_fatal_error(_("Symbol size column (%s) is not numeric."),
 			  size_column);
+	}
+	
+	if (nrec_size < 0) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
 
-	if (nrec_size < 0)
 	    G_fatal_error(_("Cannot select data (%s) from table"),
 			  size_column);
-
+	}
+	
 	G_debug(2, " %d records selected from table", nrec_size);
 
 	for (i = 0; i < cvarr_size.n_values; i++) {
@@ -302,9 +337,13 @@
     }
 
     if (rot_column) {
-	if (*rot_column == '\0')
+	if (*rot_column == '\0') {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+
 	    G_fatal_error(_("Symbol rotation column not specified."));
-
+	}
+	
 	db_CatValArray_init(&cvarr_rot);
 
 	nrec_rot = db_select_CatValArray(driver, fi->table, fi->key,
@@ -313,14 +352,22 @@
 	G_debug(3, "nrec_rot (%s) = %d", rot_column, nrec_rot);
 
 	if (cvarr_rot.ctype != DB_C_TYPE_INT &&
-	    cvarr_rot.ctype != DB_C_TYPE_DOUBLE)
+	    cvarr_rot.ctype != DB_C_TYPE_DOUBLE) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+	    
 	    G_fatal_error(_("Symbol rotation column (%s) is not numeric."),
 			  rot_column);
+	}
 
-	if (nrec_rot < 0)
+ 	if (nrec_rot < 0) {
+	    if (open_db)
+		db_close_database_shutdown_driver(driver);
+	    
 	    G_fatal_error(_("Cannot select data (%s) from table"),
 			  rot_column);
-
+	}
+	
 	G_debug(2, " %d records selected from table", nrec_rot);
 
 	for (i = 0; i < cvarr_rot.n_values; i++) {



More information about the grass-commit mailing list