scan_misc.c 784 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #include "ps_info.h"
  2. #include <string.h>
  3. static int scan_percent(char *, double *, double, double);
  4. int scan_easting(char *buf, double *f)
  5. {
  6. if (scan_percent(buf, f, PS.w.west, PS.w.east))
  7. return 1;
  8. return G_scan_easting(buf, f, PS.w.proj);
  9. }
  10. int scan_northing(char *buf, double *f)
  11. {
  12. if (scan_percent(buf, f, PS.w.south, PS.w.north))
  13. return 1;
  14. return G_scan_northing(buf, f, PS.w.proj);
  15. }
  16. int scan_resolution(char *buf, double *f)
  17. {
  18. return G_scan_resolution(buf, f, PS.w.proj);
  19. }
  20. static int scan_percent(char *buf, double *f, double min, double max)
  21. {
  22. char percent[3];
  23. *percent = 0;
  24. if (sscanf(buf, "%lf%2s", f, percent) != 2)
  25. return 0;
  26. if (strcmp(percent, "%") != 0)
  27. return 0;
  28. *f = min + (max - min) * (*f / 100.0);
  29. return 1;
  30. }