diff options
author | C. McEnroe | 2021-03-17 13:48:55 -0400 |
---|---|---|
committer | C. McEnroe | 2021-03-17 13:49:26 -0400 |
commit | 8d5631131498ce3952150beb79c777866ea14468 (patch) | |
tree | 315e1a8bc290484f7360264762d6c33ee85287a9 /ui.c | |
parent | 8ea881a097360a8ed7dd07ee15dbe264ad5a0912 (diff) |
Reset style after newline in input
Reflect what will actually be sent.
Diffstat (limited to 'ui.c')
-rw-r--r-- | ui.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/ui.c b/ui.c index a78d5c8..ebae222 100644 --- a/ui.c +++ b/ui.c @@ -689,7 +689,7 @@ static void windowList(const struct Window *window) { } } -static void inputAdd(struct Style *style, const char *str) { +static void inputAdd(struct Style reset, struct Style *style, const char *str) { while (*str) { const char *code = str; size_t len = styleParse(style, &str); @@ -705,6 +705,7 @@ static void inputAdd(struct Style *style, const char *str) { } if (str - code > 1) waddnstr(input, &code[1], str - &code[1]); if (str[0] == '\n') { + *style = reset; str++; len--; } @@ -716,10 +717,13 @@ static void inputAdd(struct Style *style, const char *str) { } } -static char *inputStop(struct Style *style, const char *str, char *stop) { +static char *inputStop( + struct Style reset, struct Style *style, + const char *str, char *stop +) { char ch = *stop; *stop = '\0'; - inputAdd(style, str); + inputAdd(reset, style, str); *stop = ch; return stop; } @@ -777,18 +781,18 @@ static void inputUpdate(void) { const char *ptr = skip; struct Style style = styleInput; if (split && split < pos) { - ptr = inputStop(&style, ptr, &buf[split]); + ptr = inputStop(styleInput, &style, ptr, &buf[split]); style = styleInput; style.bg = Red; } - ptr = inputStop(&style, ptr, &buf[pos]); + ptr = inputStop(styleInput, &style, ptr, &buf[pos]); getyx(input, y, x); if (split && split >= pos) { - ptr = inputStop(&style, ptr, &buf[split]); + ptr = inputStop(styleInput, &style, ptr, &buf[split]); style = styleInput; style.bg = Red; } - inputAdd(&style, ptr); + inputAdd(styleInput, &style, ptr); wclrtoeol(input); wmove(input, y, x); } |