comparison src/option.c @ 33404:9b35b4c6df4c v9.0.1960

patch 9.0.1960: Make CI checks more strict Commit: https://github.com/vim/vim/commit/f7f746b1672909ae57d2eec97253d6627f6c0887 Author: Yee Cheng Chin <ychin.git@gmail.com> Date: Sat Sep 30 12:28:50 2023 +0200 patch 9.0.1960: Make CI checks more strict Problem: Make CI checks more strict Solution: Add -Wstrict-prototypes -Wmissing-prototypes to CI, fix uncovered problems Add -Wstrict-prototypes -Wmissing-prototypes warnings check to CI Add two new warnings to CI, silence some Perl related build-warnings: - `strict-prototypes` helps prevent declaring a function with an empty argument list, e.g. `int func()`. In C++, that's equivalent to `int func(void)`, but in C, that means a function that can take any number of arguments which is rarely what we want. - `missing-prototypes` makes sure we use `static` for file-only internal functions. Non-static functions should have been declared on a prototype file. - Add `no-compound-token-split-by-macro` to the perl cflags, since it throws out a bunch of perl-related warnings that make the CI log unnecessary verbose and hard to read. This seems to happen only with clang 12 and above. When applying those changes, it already uncovered a few warnings, so fix up the code as well (fix prototypes, make the code static, remove shadowed var declaration) GTK header needs to have #pragma warning suppressiong because GTK2 headers will warn on `-Wstrict-prototypes`, and it's included by gui.h and so we can't just turn off the warning in a couple files. closes: #13223 closes: #13226 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
author Christian Brabandt <cb@256bit.org>
date Sat, 30 Sep 2023 12:45:05 +0200
parents 95db67c7b754
children aa7cd2253130
comparison
equal deleted inserted replaced
33403:d19bda4c95c9 33404:9b35b4c6df4c
7516 * 'fuzzystr', then returns TRUE. Otherwise returns FALSE. 7516 * 'fuzzystr', then returns TRUE. Otherwise returns FALSE.
7517 * 7517 *
7518 * If 'test_only' is FALSE and 'fuzzy' is TRUE and if 'str' fuzzy matches 7518 * If 'test_only' is FALSE and 'fuzzy' is TRUE and if 'str' fuzzy matches
7519 * 'fuzzystr', then stores the match details in fuzmatch[idx] and returns TRUE. 7519 * 'fuzzystr', then stores the match details in fuzmatch[idx] and returns TRUE.
7520 */ 7520 */
7521 int 7521 static int
7522 match_str( 7522 match_str(
7523 char_u *str, 7523 char_u *str,
7524 regmatch_T *regmatch, 7524 regmatch_T *regmatch,
7525 char_u **matches, 7525 char_u **matches,
7526 int idx, 7526 int idx,
8012 { 8012 {
8013 // If more than one flags, split the flags up and expose each 8013 // If more than one flags, split the flags up and expose each
8014 // character as individual choice. 8014 // character as individual choice.
8015 for (char_u *flag = option_val; *flag != NUL; flag++) 8015 for (char_u *flag = option_val; *flag != NUL; flag++)
8016 { 8016 {
8017 char_u *p = vim_strnsave(flag, 1); 8017 p = vim_strnsave(flag, 1);
8018 if (p == NULL) 8018 if (p == NULL)
8019 break; 8019 break;
8020 (*matches)[count++] = p; 8020 (*matches)[count++] = p;
8021 } 8021 }
8022 } 8022 }