beanz created this revision.
beanz added a reviewer: tfiala.
beanz added a subscriber: lldb-commits.

If a user has their shell set to a non-POSIX conferment shell the 
TestTerminal.py tests fail because the shell blurb constructed here may not 
work in their shell.

In my specific case fish-shell (The Friendly Interactive Shell - 
http://fishshell.com) does not support $?, it instead uses $status (because it 
is friendly).

This patch removes the assumption of your default shell by running the 
constructed bash command via "/bin/bash -c ...". This should be safer for users 
mutating their shell environment.


https://reviews.llvm.org/D25750

Files:
  source/Host/macosx/Host.mm


Index: source/Host/macosx/Host.mm
===================================================================
--- source/Host/macosx/Host.mm
+++ source/Host/macosx/Host.mm
@@ -354,11 +354,11 @@
 
 const char *applscript_in_new_tty = "tell application \"Terminal\"\n"
                                     "   activate\n"
-                                    "  do script \"%s\"\n"
+                                    "  do script \"/bin/bash -c '%s';exit\"\n"
                                     "end tell\n";
 
 const char *applscript_in_existing_tty = "\
-set the_shell_script to \"%s\"\n\
+set the_shell_script to \"/bin/bash -c '%s';exit\"\n\
 tell application \"Terminal\"\n\
        repeat with the_window in (get windows)\n\
                repeat with the_tab in tabs of the_window\n\


Index: source/Host/macosx/Host.mm
===================================================================
--- source/Host/macosx/Host.mm
+++ source/Host/macosx/Host.mm
@@ -354,11 +354,11 @@
 
 const char *applscript_in_new_tty = "tell application \"Terminal\"\n"
                                     "   activate\n"
-                                    "	do script \"%s\"\n"
+                                    "	do script \"/bin/bash -c '%s';exit\"\n"
                                     "end tell\n";
 
 const char *applscript_in_existing_tty = "\
-set the_shell_script to \"%s\"\n\
+set the_shell_script to \"/bin/bash -c '%s';exit\"\n\
 tell application \"Terminal\"\n\
 	repeat with the_window in (get windows)\n\
 		repeat with the_tab in tabs of the_window\n\
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to