+void
+iso14755(const Arg *arg)
+{
+ char cmd[sizeof(ISO14755CMD) + NUMMAXLEN(xw.win)];
+ FILE *p;
+ char *us, *e, codepoint[9], uc[UTF_SIZ];
+ unsigned long utf32;
+
+ snprintf(cmd, sizeof(cmd), ISO14755CMD, xw.win);
+ if (!(p = popen(cmd, "r")))
+ return;
+
+ us = fgets(codepoint, sizeof(codepoint), p);
+ pclose(p);
+
+ if (!us || *us == '\0' || *us == '-' || strlen(us) > 7)
+ return;
+ if ((utf32 = strtoul(us, &e, 16)) == ULONG_MAX ||
+ (*e != '\n' && *e != '\0'))
+ return;
+
+ ttysend(uc, utf8encode(utf32, uc));
+}
+