|
|
|
@ -38,15 +38,11 @@
|
|
|
|
|
|
|
|
|
|
/* macros */
|
|
|
|
|
#define IS_SET(flag) ((term.mode & (flag)) != 0)
|
|
|
|
|
#define NUMMAXLEN(x) ((int)(sizeof(x) * 2.56 + 0.5) + 1)
|
|
|
|
|
#define ISCONTROLC0(c) (BETWEEN(c, 0, 0x1f) || (c) == '\177')
|
|
|
|
|
#define ISCONTROLC1(c) (BETWEEN(c, 0x80, 0x9f))
|
|
|
|
|
#define ISCONTROL(c) (ISCONTROLC0(c) || ISCONTROLC1(c))
|
|
|
|
|
#define ISDELIM(u) (utf8strchr(worddelimiters, u) != NULL)
|
|
|
|
|
|
|
|
|
|
/* constants */
|
|
|
|
|
#define ISO14755CMD "dmenu -w \"$WINDOWID\" -p codepoint: </dev/null"
|
|
|
|
|
|
|
|
|
|
enum term_mode {
|
|
|
|
|
MODE_WRAP = 1 << 0,
|
|
|
|
|
MODE_INSERT = 1 << 1,
|
|
|
|
@ -1981,28 +1977,6 @@ tprinter(char *s, size_t len)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
iso14755(const Arg *arg)
|
|
|
|
|
{
|
|
|
|
|
FILE *p;
|
|
|
|
|
char *us, *e, codepoint[9], uc[UTF_SIZ];
|
|
|
|
|
unsigned long utf32;
|
|
|
|
|
|
|
|
|
|
if (!(p = popen(ISO14755CMD, "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;
|
|
|
|
|
|
|
|
|
|
ttywrite(uc, utf8encode(utf32, uc), 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
toggleprinter(const Arg *arg)
|
|
|
|
|
{
|
|
|
|
|