get_maps.c 785 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <grass/gis.h>
  5. #include "local_proto.h"
  6. static int cmp(const void *, const void *);
  7. char** get_available_mapsets(int *nmapsets)
  8. {
  9. char **ms, **mapset_name;
  10. int i, n;
  11. ms = G_get_available_mapsets();
  12. for (n = 0; ms[n]; n++);
  13. mapset_name = (char **)G_malloc(n * sizeof(char *));
  14. for(i = 0; i < n; i++)
  15. mapset_name[i] = G_store(ms[i]);
  16. /* sort mapsets */
  17. qsort(mapset_name, n, sizeof(char *), cmp);
  18. *nmapsets = n;
  19. return mapset_name;
  20. }
  21. int cmp(const void *a, const void *b)
  22. {
  23. return (strcmp(*(char **)a, *(char **)b));
  24. }
  25. const char *substitute_mapset(const char *mapset)
  26. {
  27. if (strcmp(mapset, ".") == 0)
  28. return G_mapset();
  29. return mapset;
  30. }