From f15a0797c0654251293c0cb44b367f2c29a55a9b Mon Sep 17 00:00:00 2001 From: Liz Kammer Date: Thu, 9 Feb 2023 14:28:36 -0500 Subject: [PATCH] Only create a command line replacer once Test: CI Change-Id: Ibb9b822aea808c936fedc4c8fea7b7d787b101d5 --- bazel/aquery.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/bazel/aquery.go b/bazel/aquery.go index 6a5e05413..6af472a8d 100644 --- a/bazel/aquery.go +++ b/bazel/aquery.go @@ -671,17 +671,18 @@ func expandTemplateContent(actionEntry action) string { return replacer.Replace(actionEntry.TemplateContent) } +// \->\\, $->\$, `->\`, "->\", \n->\\n, '->'"'"' +var commandLineArgumentReplacer = strings.NewReplacer( + `\`, `\\`, + `$`, `\$`, + "`", "\\`", + `"`, `\"`, + "\n", "\\n", + `'`, `'"'"'`, +) + func escapeCommandlineArgument(str string) string { - // \->\\, $->\$, `->\`, "->\", \n->\\n, '->'"'"' - replacer := strings.NewReplacer( - `\`, `\\`, - `$`, `\$`, - "`", "\\`", - `"`, `\"`, - "\n", "\\n", - `'`, `'"'"'`, - ) - return replacer.Replace(str) + return commandLineArgumentReplacer.Replace(str) } func (a action) isSymlinkAction() bool {