[GRASS-dev] r.mapcalc and g.remove --v/q issues

Glynn Clements glynn at gclements.plus.com
Mon Oct 9 06:28:05 EDT 2006


Martin Landa wrote:

> trying to cleanup g.remove module I have prepared the patch. Is it OK
> for you? Any comments welcomed...

Rather than hard-coding checks for specific entity types:

+	if (G_strcasecmp(list[n].alias, "rast") == 0 ) {
+	    if ((mapset = G_find_cell2 (old, "")) == NULL) {
+		G_warning(_("Raster map <%s> not found"), old);
+		result = 1;
+	    }
+	}
+	
+	if (G_strcasecmp(list[n].alias, "rast3d") == 0 ) {
+	    if ((mapset = G_find_grid3 (old, "")) == NULL) {
+		G_warning(_("Raster 3d map <%s> not found"), old);
+		result = 1;
+	    }
+	}

I would add a flag which is initially cleared for each entity (map
etc) and set when an element is actually removed. A warning would be
generated if the flag is still clear when all of the elements for an
entity have been processed.

E.g.:

+	removed = 0;
 	for (i = 0; i < list[n].nelem; i++) {
 	    switch (G_remove (list[n].element[i], old))
 	    {
 	    case -1: 
-	        G_warning (" %-*s %s", len, list[n].desc[i],_("COULD NOT REMOVE"));
+	        G_warning ("%s: %s", list[n].desc[i],_("couldn't be removed"));
 	        result = 1;
 		break;
 	    case  0: 
-	        G_message (" %-*s %s", len, list[n].desc[i],_("MISSING"));
+	        G_debug (1, "%s: %s", list[n].desc[i],_("missing"));
 		break;
 	    case 1:
-	        G_message (" %-*s ", len, list[n].desc[i]);
+	        G_debug (1, "%s: %s", list[n].desc[i],_("removed"));
+	        removed = 1;
 		break;
 	    }
 	}
+
+	if (!removed)
+		G_warning ("%s: %s", list[n].desc[i],_("nothing removed"));

-- 
Glynn Clements <glynn at gclements.plus.com>




More information about the grass-dev mailing list