|
|
|
@ -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) |
|
|
|
|
{ |
|
|
|
|