Messages in this thread Patch in this message | | | From | Jeremy Cline <> | Subject | [PATCH] gen_compile_commands: use raw string when replacing \# | Date | Fri, 29 Sep 2023 15:04:46 -0400 |
| |
I noticed this since I'm running Python 3.12-rc3, which emits "SyntaxWarning: invalid escape sequence '\#'" when running this script. According to the Python 3.12 release notes this will eventually become a SyntaxError.
Based on the comment in the code, I believe the intention was to match the literal string "\#". Marking it as a raw string will stop Python from trying to treat it as an escape sequence and behave as intended.
Signed-off-by: Jeremy Cline <jeremy@jcline.org> --- scripts/clang-tools/gen_compile_commands.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/clang-tools/gen_compile_commands.py b/scripts/clang-tools/gen_compile_commands.py index a84cc5737c2c..bc005cac1944 100755 --- a/scripts/clang-tools/gen_compile_commands.py +++ b/scripts/clang-tools/gen_compile_commands.py @@ -170,7 +170,7 @@ def process_line(root_directory, command_prefix, file_path): # escape the pound sign '#', either as '\#' or '$(pound)' (depending on the # kernel version). The compile_commands.json file is not interepreted # by Make, so this code replaces the escaped version with '#'. - prefix = command_prefix.replace('\#', '#').replace('$(pound)', '#') + prefix = command_prefix.replace(r'\#', '#').replace('$(pound)', '#') # Use os.path.abspath() to normalize the path resolving '.' and '..' . abs_path = os.path.abspath(os.path.join(root_directory, file_path)) -- 2.41.0
| |