+/* parse position string from -p, put results on config.x and config.y */
+static void
+parseposition(const char *optarg)
+{
+ long n;
+ const char *s = optarg;
+ char *endp;
+
+ n = strtol(s, &endp, 10);
+ if (errno == ERANGE || n > INT_MAX || n < 0 || endp == s || *endp != 'x')
+ goto error;
+ config.posx = n;
+ s = endp+1;
+ n = strtol(s, &endp, 10);
+ if (errno == ERANGE || n > INT_MAX || n < 0 || endp == s || *endp != '\0')
+ goto error;
+ config.posy = n;
+
+ return;
+
+error:
+ errx(1, "improper position: %s", optarg);
+}
+