mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-04-06 23:32:39 +00:00
[lldb] Expand $ when using tcsh
Unlike for any of the other shells, we were escaping $ when using tcsh. There's nothing special about $ in tcsh and this prevents you from expanding shell variables, one of the main reasons this functionality exists in the first place. Differential revision: https://reviews.llvm.org/D123690
This commit is contained in:
parent
2f98c5febc
commit
acc56e55fe
lldb
@ -385,7 +385,7 @@ std::string Args::GetShellSafeArgument(const FileSpec &shell,
|
||||
};
|
||||
|
||||
static ShellDescriptor g_Shells[] = {{ConstString("bash"), " '\"<>()&;"},
|
||||
{ConstString("tcsh"), " '\"<>()&$;"},
|
||||
{ConstString("tcsh"), " '\"<>()&;"},
|
||||
{ConstString("zsh"), " '\"<>()&;\\|"},
|
||||
{ConstString("sh"), " '\"<>()&;"}};
|
||||
|
||||
|
6
lldb/test/Shell/Process/Inputs/echo.c
Normal file
6
lldb/test/Shell/Process/Inputs/echo.c
Normal file
@ -0,0 +1,6 @@
|
||||
#include <stdio.h>
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
for (int i = 0; i < argc; ++i)
|
||||
printf("%s\n", argv[i]);
|
||||
}
|
8
lldb/test/Shell/Process/TestShell.test
Normal file
8
lldb/test/Shell/Process/TestShell.test
Normal file
@ -0,0 +1,8 @@
|
||||
REQUIRES: shell, system-darwin
|
||||
RUN: %clang_host %p/Inputs/echo.c -o %t.out
|
||||
|
||||
RUN: not %lldb %t.out -b -o 'process launch --shell=tcsh -- $NO_SUCH_SHELL_VARIABLE' 2>&1 | FileCheck --check-prefix=FAILURE %s
|
||||
RUN: %lldb %t.out -b -o 'process launch --shell=tcsh -- $HOME' 2>&1 | FileCheck --check-prefix=SUCCESS %s
|
||||
|
||||
FAILURE: exited with status 1
|
||||
SUCCESS: exited with status = 0
|
@ -336,8 +336,8 @@ TEST(ArgsTest, GetShellSafeArgument) {
|
||||
|
||||
// Test escaping tcsh special characters.
|
||||
FileSpec tcsh("/bin/tcsh", FileSpec::Style::posix);
|
||||
EXPECT_EQ(Args::GetShellSafeArgument(tcsh, R"( '"<>()&$;)"),
|
||||
R"(\ \'\"\<\>\(\)\&\$\;)");
|
||||
EXPECT_EQ(Args::GetShellSafeArgument(tcsh, R"( '"<>()&;)"),
|
||||
R"(\ \'\"\<\>\(\)\&\;)");
|
||||
// Normal characters and globbing expressions that shouldn't be escaped.
|
||||
EXPECT_EQ(Args::GetShellSafeArgument(tcsh, "aA1*"), "aA1*");
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user