Mercurial > vim
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 } |