From 89c79b99328b66f77f1d12dc8c6701dfe2c57f15 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 5 May 2016 17:18:41 +0200 Subject: [PATCH 1/2] patch 7.4.1818 Problem: Help completion adds @en to all matches except the first one. Solution: Remove "break", go over all items. --- src/ex_getln.c | 15 +++++++-------- src/version.c | 2 ++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/ex_getln.c b/src/ex_getln.c index 11824907ee..26fed59724 100644 --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -3189,8 +3189,9 @@ cmdline_del(int from) #endif /* - * this function is called when the screen size changes and with incremental - * search + * This function is called when the screen size changes and with incremental + * search and in other situations where the command line may have been + * overwritten. */ void redrawcmdline(void) @@ -4505,7 +4506,7 @@ cleanup_help_tags(int num_file, char_u **file) char_u buf[4]; char_u *p = buf; - if (p_hlg[0] != NUL) + if (p_hlg[0] != NUL && (p_hlg[0] != 'e' || p_hlg[1] != 'n')) { *p++ = '@'; *p++ = p_hlg[0]; @@ -4518,10 +4519,10 @@ cleanup_help_tags(int num_file, char_u **file) len = (int)STRLEN(file[i]) - 3; if (len <= 0) continue; - if (i == 0 && STRCMP(file[i] + len, buf) == 0) + if (STRCMP(file[i] + len, buf) == 0) { + /* remove the default language */ file[i][len] = NUL; - break; } else if (STRCMP(file[i] + len, "@en") == 0) { @@ -4533,10 +4534,8 @@ cleanup_help_tags(int num_file, char_u **file) && STRNCMP(file[i], file[j], len + 1) == 0) break; if (j == num_file) - { + /* item only exists with @en, remove it */ file[i][len] = NUL; - break; - } } } } diff --git a/src/version.c b/src/version.c index 79ca5cdc73..1045c21ece 100644 --- a/src/version.c +++ b/src/version.c @@ -753,6 +753,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1818, /**/ 1817, /**/ From 827b165b2aebad2cfe98cc6d5804c6c0fe8afd89 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 5 May 2016 18:14:03 +0200 Subject: [PATCH 2/2] patch 7.4.1819 Problem: Compiler warnings when sprintf() is a macro. Solution: Don't interrupt sprintf() with an #ifdef. (Michael Jarvis, closes #788) --- src/fileio.c | 16 ++++++++-------- src/tag.c | 12 +++++++----- src/term.c | 6 +++--- src/version.c | 2 ++ 4 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/fileio.c b/src/fileio.c index 0ddd079280..5626712f3c 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -5230,14 +5230,14 @@ msg_add_lines( if (insert_space) *p++ = ' '; if (shortmess(SHM_LINES)) - sprintf((char *)p, #ifdef LONG_LONG_OFF_T - "%ldL, %lldC", lnum, (long long)nchars + sprintf((char *)p, + "%ldL, %lldC", lnum, (long long)nchars); #else + sprintf((char *)p, /* Explicit typecast avoids warning on Mac OS X 10.6 */ - "%ldL, %ldC", lnum, (long)nchars + "%ldL, %ldC", lnum, (long)nchars); #endif - ); else { if (lnum == 1) @@ -5248,14 +5248,14 @@ msg_add_lines( if (nchars == 1) STRCPY(p, _("1 character")); else - sprintf((char *)p, #ifdef LONG_LONG_OFF_T - _("%lld characters"), (long long)nchars + sprintf((char *)p, + _("%lld characters"), (long long)nchars); #else + sprintf((char *)p, /* Explicit typecast avoids warning on Mac OS X 10.6 */ - _("%ld characters"), (long)nchars + _("%ld characters"), (long)nchars); #endif - ); } } diff --git a/src/tag.c b/src/tag.c index 8f4495ee2c..0029fa5fde 100644 --- a/src/tag.c +++ b/src/tag.c @@ -2264,6 +2264,7 @@ parse_line: if (ga_grow(&ga_match[mtt], 1) == OK) { int len; + int heuristic; if (help_only) { @@ -2293,13 +2294,14 @@ parse_line: p[len] = '@'; STRCPY(p + len + 1, help_lang); #endif - sprintf((char *)p + len + 1 + ML_EXTRA, "%06d", - help_heuristic(tagp.tagname, - match_re ? matchoff : 0, !match_no_ic) + + heuristic = help_heuristic(tagp.tagname, + match_re ? matchoff : 0, !match_no_ic); #ifdef FEAT_MULTI_LANG - + help_pri + heuristic += help_pri; #endif - ); + sprintf((char *)p + len + 1 + ML_EXTRA, "%06d", + heuristic); } *tagp.tagname_end = TAB; } diff --git a/src/term.c b/src/term.c index 4af9aeb846..b9af731010 100644 --- a/src/term.c +++ b/src/term.c @@ -2630,12 +2630,12 @@ term_color(char_u *s, int n) || STRCMP(s + i + 1, "%dm") == 0) && (s[i] == '3' || s[i] == '4')) { - sprintf(buf, #ifdef TERMINFO - "%s%s%%p1%%dm", + char *format = "%s%s%%p1%%dm"; #else - "%s%s%%dm", + char *format = "%s%s%%dm"; #endif + sprintf(buf, format, i == 2 ? IF_EB("\033[", ESC_STR "[") : "\233", s[i] == '3' ? (n >= 16 ? "38;5;" : "9") : (n >= 16 ? "48;5;" : "10")); diff --git a/src/version.c b/src/version.c index 1045c21ece..0191775dbf 100644 --- a/src/version.c +++ b/src/version.c @@ -753,6 +753,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1819, /**/ 1818, /**/