- if (st2 == Success && type != None)
- {
- if (type != XA_STRING || format != 8)
- {
- fprintf (stderr,
- "%s: unrecognized response property.\n",
- progname);
- if (msg) XFree (msg);
- return -1;
- }
- else if (!msg || (msg[0] != '+' && msg[0] != '-'))
- {
- fprintf (stderr,
- "%s: unrecognized response message.\n",
- progname);
- if (msg) XFree (msg);
- return -1;
- }
- else
- {
- int ret = (msg[0] == '+' ? 0 : -1);
- if (verbose_p || ret != 0)
- fprintf ((ret < 0 ? stderr : stdout),
- "%s: %s\n",
- progname,
- msg+1);
- XFree (msg);
- return ret;
- }
- }
+ if (error_ret)
+ *error_ret = strdup (err);
+ else
+ fprintf (stderr, "%s: %s\n", progname, err);
+
+ if (msg) XFree (msg);
+ return -1;
+ }
+ else if (!msg || (msg[0] != '+' && msg[0] != '-'))
+ {
+ sprintf (err, "unrecognized response message.");
+
+ if (error_ret)
+ *error_ret = strdup (err);
+ else
+ fprintf (stderr, "%s: %s\n", progname, err);
+
+ if (msg) XFree (msg);
+ return -1;
+ }
+ else
+ {
+ int ret = (msg[0] == '+' ? 0 : -1);
+ sprintf (err, "%s: %s\n", progname, (char *) msg+1);
+
+ if (error_ret)
+ *error_ret = strdup (err);
+ else if (verbose_p || ret != 0)
+ fprintf ((ret < 0 ? stderr : stdout), "%s\n", err);
+
+ XFree (msg);
+ return ret;