#include #include #include #include #include #include "local_proto.h" /* * check_stats() - Check and update statistics * * RETURN: EXIT_SUCCESS / EXIT_FAILURE */ int check_stats(const char *name) { struct Categories cats; struct FPRange fprange; int cats_ok; G_message(_("Updating statistics for <%s>"), name); /* Get category status and max */ cats_ok = (Rast3d_read_cats(name, "", &cats) >= 0); Rast3d_read_range(name, "", &fprange); /* Further category checks */ if (!cats_ok) Rast_init_cats("", &cats); else if (cats.num != fprange.max) { cats.num = fprange.max; cats_ok = 0; } /* Update categories if needed */ if (!cats_ok) { G_message(_("Updating the number of categories for <%s>"), name); Rast3d_write_cats(name, &cats); } Rast_free_cats(&cats); return 0; }