summaryrefslogtreecommitdiffstats
path: root/attributes.c
diff options
context:
space:
mode:
authornicm <nicm>2017-03-22 07:16:54 +0000
committernicm <nicm>2017-03-22 07:16:54 +0000
commitdf3ab87964fc52c6f44b2bbe014c8bec202d0528 (patch)
tree18acb5eb18fa51e177d47eb5e0e828e0322a69ee /attributes.c
parent04e17a7e110bb0c70bc917b340aedd94fa60891f (diff)
Add support for the strikethrough attribute (SGR 9), using the new smxx
terminfo capability. This means there are now nine attribute bits, so anything above 0xff uses an extended cell.
Diffstat (limited to 'attributes.c')
-rw-r--r--attributes.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/attributes.c b/attributes.c
index 046cdcc5..1e45e584 100644
--- a/attributes.c
+++ b/attributes.c
@@ -23,7 +23,7 @@
#include "tmux.h"
const char *
-attributes_tostring(u_char attr)
+attributes_tostring(int attr)
{
static char buf[128];
size_t len;
@@ -31,14 +31,15 @@ attributes_tostring(u_char attr)
if (attr == 0)
return ("none");
- len = xsnprintf(buf, sizeof buf, "%s%s%s%s%s%s%s",
+ len = xsnprintf(buf, sizeof buf, "%s%s%s%s%s%s%s%s",
(attr & GRID_ATTR_BRIGHT) ? "bright," : "",
(attr & GRID_ATTR_DIM) ? "dim," : "",
(attr & GRID_ATTR_UNDERSCORE) ? "underscore," : "",
(attr & GRID_ATTR_BLINK)? "blink," : "",
(attr & GRID_ATTR_REVERSE) ? "reverse," : "",
(attr & GRID_ATTR_HIDDEN) ? "hidden," : "",
- (attr & GRID_ATTR_ITALICS) ? "italics," : "");
+ (attr & GRID_ATTR_ITALICS) ? "italics," : "",
+ (attr & GRID_ATTR_STRIKETHROUGH) ? "strikethrough," : "");
if (len > 0)
buf[len - 1] = '\0';
@@ -49,7 +50,7 @@ int
attributes_fromstring(const char *str)
{
const char delimiters[] = " ,|";
- u_char attr;
+ int attr;
size_t end;
if (*str == '\0' || strcspn(str, delimiters) == 0)
@@ -78,6 +79,8 @@ attributes_fromstring(const char *str)
attr |= GRID_ATTR_HIDDEN;
else if (end == 7 && strncasecmp(str, "italics", end) == 0)
attr |= GRID_ATTR_ITALICS;
+ else if (end == 13 && strncasecmp(str, "strikethrough", end) == 0)
+ attr |= GRID_ATTR_STRIKETHROUGH;
else
return (-1);
str += end + strspn(str + end, delimiters);