Skip to content

Commit

Permalink
ninja: Use platform dependent quote instead of shlex.quote() in gcc_r…
Browse files Browse the repository at this point in the history
…sp_quote()
  • Loading branch information
byteblob authored and dcbaker committed Jan 9, 2024
1 parent 9009847 commit ce2db13
Showing 1 changed file with 9 additions and 11 deletions.
20 changes: 9 additions & 11 deletions mesonbuild/backend/ninjabackend.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import os
import pickle
import re
import shlex
import subprocess
import typing as T

Expand Down Expand Up @@ -67,16 +66,6 @@ def cmd_quote(arg: str) -> str:

return arg

def gcc_rsp_quote(s: str) -> str:
# see: the function buildargv() in libiberty
#
# this differs from sh-quoting in that a backslash *always* escapes the
# following character, even inside single quotes.

s = s.replace('\\', '\\\\')

return shlex.quote(s)

# How ninja executes command lines differs between Unix and Windows
# (see https://ninja-build.org/manual.html#ref_rule_command)
if mesonlib.is_windows():
Expand All @@ -88,6 +77,15 @@ def gcc_rsp_quote(s: str) -> str:
execute_wrapper = []
rmfile_prefix = ['rm', '-f', '{}', '&&']

def gcc_rsp_quote(s: str) -> str:
# see: the function buildargv() in libiberty
#
# this differs from sh-quoting in that a backslash *always* escapes the
# following character, even inside single quotes.

s = s.replace('\\', '\\\\')

return quote_func(s)

def get_rsp_threshold() -> int:
'''Return a conservative estimate of the commandline size in bytes
Expand Down

0 comments on commit ce2db13

Please sign in to comment.