> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf
> Of Mauro Carvalho Chehab
> Sent: Thursday, January 29, 2026 9:08 AM
> To: Jonathan Corbet <[email protected]>; Linux Doc Mailing List <linux-
> [email protected]>
> Cc: Mauro Carvalho Chehab <[email protected]>;
> [email protected]; [email protected]; linux-
> [email protected]; [email protected];
> [email protected]; Mauro Carvalho Chehab <[email protected]>;
> Randy Dunlap <[email protected]>
> Subject: [Intel-wired-lan] [PATCH v3 15/30] docs: kdoc_re: properly
> handle strings and escape chars on it
> 
> The logic inside NestedMatch currently doesn't consider that function
> arguments may have chars and strings, which may eventually contain
> delimiters.
> 
> Add logic to handle strings and escape characters on them.
> 
> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
> ---
>  tools/lib/python/kdoc/kdoc_re.py | 18 ++++++++++++++++++
>  1 file changed, 18 insertions(+)
> 
> diff --git a/tools/lib/python/kdoc/kdoc_re.py
> b/tools/lib/python/kdoc/kdoc_re.py
> index a0402c065d3a..1861799f1966 100644
> --- a/tools/lib/python/kdoc/kdoc_re.py
> +++ b/tools/lib/python/kdoc/kdoc_re.py
> @@ -195,6 +195,8 @@ class NestedMatch:
>          for match_re in regex.finditer(line):
>              start = match_re.start()
>              offset = match_re.end()
> +            string_char = None
> +            escape = False
> 
>              d = line[offset - 1]
>              if d not in self.DELIMITER_PAIRS:
> @@ -208,6 +210,22 @@ class NestedMatch:
> 
>                  d = line[pos]
> 
> +                if escape:
> +                    escape = False
> +                    continue
> +
> +                if string_char:
> +                    if d == '\\':
> +                        escape = True
> +                    elif d == string_char:
> +                        string_char = None
> +
> +                    continue
> +
> +                if d in ('"', "'"):
> +                    string_char = d
> +                    continue
> +
>                  if d in self.DELIMITER_PAIRS:
>                      end = self.DELIMITER_PAIRS[d]
> 
> --
> 2.52.0

Reviewed-by: Aleksandr Loktionov <[email protected]>

Reply via email to