diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-05-23 20:30:56 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-05-23 20:30:56 +0200 |
commit | d315cf551f1d15609c4d7cf724e471de55f5cdac (patch) | |
tree | 2e1b416b6c9fae7abe97c45d47b0fbe73463b427 | |
parent | 0b0f0992d46ef02fdfc1240744bef91d4299c1df (diff) |
patch 8.1.0021: clang warns for undefined behaviorv8.1.0021
Problem: Clang warns for undefined behavior.
Solution: Move #ifdef outside of sprintf() call.(suggestion by Michael
Jarvis, closes #2956)
-rw-r--r-- | src/term.c | 13 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/term.c b/src/term.c index 8b69cc41a5..4bb8030cbe 100644 --- a/src/term.c +++ b/src/term.c @@ -2872,14 +2872,15 @@ term_color(char_u *s, int n) #else char *format = "%s%s%%dm"; #endif - sprintf(buf, format, - i == 2 ? + char *lead = i == 2 ? ( #if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS) - s[1] == '|' ? IF_EB("\033|", ESC_STR "|") : + s[1] == '|' ? IF_EB("\033|", ESC_STR "|") : #endif - IF_EB("\033[", ESC_STR "[") : "\233", - s[i] == '3' ? (n >= 16 ? "38;5;" : "9") - : (n >= 16 ? "48;5;" : "10")); + IF_EB("\033[", ESC_STR "[")) : "\233"; + char *tail = s[i] == '3' ? (n >= 16 ? "38;5;" : "9") + : (n >= 16 ? "48;5;" : "10"); + + sprintf(buf, format, lead, tail); OUT_STR(tgoto(buf, 0, n >= 16 ? n : n - 8)); } else diff --git a/src/version.c b/src/version.c index 616a169e59..3208eca446 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 21, +/**/ 20, /**/ 19, |