In Extended Regular Expressions (ERE) as used in awk,
'+' is a quantifier, not a literal character.
The pattern /^+/ matches the start of any line
instead of only lines beginning with a literal '+'.
As a result, check_experimental_tags and check_internal_tags
were matching context and removed lines in diffs, causing false positives.

Use [+] character class to unambiguously match a literal '+'.

Fixes: cfe3aeb170b2 ("remove experimental tags from all symbol definitions")
Fixes: fba5af82adc8 ("eal: add internal ABI tag definition")
Cc: [email protected]

Signed-off-by: Thomas Monjalon <[email protected]>
---
 devtools/checkpatches.sh | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
index 1c6099ac82..f5dd77443f 100755
--- a/devtools/checkpatches.sh
+++ b/devtools/checkpatches.sh
@@ -321,10 +321,10 @@ check_experimental_tags() { # <patch>
                current_file = "";
                ret = 0;
        }
-       /^+++ b\// {
+       /^[+][+][+] b\// {
                current_file = $2;
        }
-       /^+.*__rte_experimental/ {
+       /^[+].*__rte_experimental/ {
                if (current_file ~ ".c$" ) {
                        print "Please only put __rte_experimental tags in " \
                                "headers ("current_file")";
@@ -351,10 +351,10 @@ check_internal_tags() { # <patch>
                current_file = "";
                ret = 0;
        }
-       /^+++ b\// {
+       /^[+][+][+] b\// {
                current_file = $2;
        }
-       /^+.*__rte_internal/ {
+       /^[+].*__rte_internal/ {
                if (current_file ~ ".c$" ) {
                        print "Please only put __rte_internal tags in " \
                                "headers ("current_file")";
-- 
2.54.0

Reply via email to