scan_gis.c 723 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include <unistd.h>
  2. #include <string.h>
  3. #include <grass/gis.h>
  4. #include "local_proto.h"
  5. int scan_gis(char *element, char *desc, char *key, char *data,
  6. char *name, char *mapset, int gobble)
  7. {
  8. const char *ms;
  9. *mapset = 0;
  10. if (sscanf(data, "%s %s", name, mapset) < 1) {
  11. error(key, data, "illegal request (scan_gis)");
  12. if (gobble)
  13. gobble_input();
  14. return 0;
  15. }
  16. if (strcmp(name, "list") == 0) {
  17. if (isatty(0))
  18. G_list_element(element, desc, mapset, (int (*)())NULL);
  19. reject();
  20. return 0;
  21. }
  22. ms = G_find_file2(element, name, mapset);
  23. if (ms == NULL) {
  24. error(key, data, "not found");
  25. if (gobble)
  26. gobble_input();
  27. return 0;
  28. }
  29. strcpy(mapset, ms);
  30. return 1;
  31. }