@@ -84,42 +84,39 @@ answer_color() = text_colors[repl_color("JULIA_ANSWER_COLOR", default_color_answ
8484stackframe_lineinfo_color () =  repl_color (" JULIA_STACKFRAME_LINEINFO_COLOR"  , :bold )
8585stackframe_function_color () =  repl_color (" JULIA_STACKFRAME_FUNCTION_COLOR"  , :bold )
8686
87- repl_cmd (line:: AbstractString , out) =  repl_cmd (Val (Sys. iswindows ()), line, out)
88- 
89- function  repl_cmd (iswindows:: Val{false} , line:: AbstractString , out)
90-     shell =  shell_split (get (ENV , " JULIA_SHELL"  , get (ENV ," SHELL"  ," /bin/sh"  )))
91-     shell_name =  basename (shell[1 ])
92-     cmd =  cmd_gen (eval (Main, shell_parse (line)[1 ]))
93-     if  isempty (cmd)
94-         throw (ArgumentError (" no cmd to execute"  ))
95-     elseif  cmd[1 ] ==  " cd"   &&  length (cmd) <=  2 
96-         repl_cd (cmd, shell, out)
87+ function  repl_cmd (line:: AbstractString , out)
88+     if  Sys. iswindows ()
89+         shell =  shell_split (get (ENV , " JULIA_SHELL"  , " cmd"  ))
90+         shell_name =  isempty (shell) ?  " "   :  lowercase (splitext (basename (shell[1 ]))[1 ])
9791    else 
98-         run (ignorestatus (isa (STDIN, TTY) ?  ` $shell  -i -c "$(shell_wrap_true (shell_name, cmd)) "`   :  ` $shell  -c "$(shell_wrap_true (shell_name, cmd)) "`  ))
92+         shell =  shell_split (get (ENV , " JULIA_SHELL"  , get (ENV ," SHELL"  ," /bin/sh"  )))
93+         shell_name =  basename (shell[1 ])
9994    end 
100-     nothing 
101- end 
10295
103- function  repl_cmd (iswindows:: Val{true} , line:: AbstractString , out)
104-     shell =  shell_split (get (ENV , " JULIA_SHELL"  , " cmd"  ))
105-     shell_name =  isempty (shell) ?  " "   :  lowercase (splitext (basename (shell[1 ]))[1 ])
10696    cmd =  cmd_gen (eval (Main, shell_parse (line)[1 ]))
97+ 
10798    if  isempty (cmd)
10899        throw (ArgumentError (" no cmd to execute"  ))
109100    elseif  cmd[1 ] ==  " cd"   &&  length (cmd) <=  2 
110101        repl_cd (cmd, shell, out)
111102    else 
112-         interpolated_line =  eval (Main, parse (string (' "'  , escape_string (line), ' "'  )))
113-         if  shell_name ==  " " 
114-             command =  cmd
115-         elseif  shell_name ==  " cmd" 
116-             command =  Cmd (` $shell  /s /c $(string (' "'  , interpolated_line, ' "'  )) `  , windows_verbatim= true )
117-         elseif  shell_name ==  " powershell" 
118-             command =  ` $shell  -Command $interpolated_line ` 
119-         elseif  shell_name ==  " busybox" 
120-             command =  ` $shell  sh -c $interpolated_line ` 
103+         local  command:: Cmd 
104+         if  Sys. iswindows ()
105+             interpolated_line =  eval (Main, parse (string (' "'  , escape_string (line), ' "'  ))):: String 
106+             if  shell_name ==  " " 
107+                 command =  cmd
108+             elseif  shell_name ==  " cmd" 
109+                 command =  Cmd (` $shell  /s /c $(string (' "'  , interpolated_line, ' "'  )) `  , windows_verbatim= true )
110+             elseif  shell_name ==  " powershell" 
111+                 command =  ` $shell  -Command $interpolated_line ` 
112+             elseif  shell_name ==  " busybox" 
113+                 command =  ` $shell  sh -c $interpolated_line ` 
114+             else 
115+                 command =  ` $shell  $interpolated_line ` 
116+             end 
121117        else 
122-             command =  ` $shell  $interpolated_line ` 
118+             ttyopt =  STDIN isa  TTY ?  ` -i`   :  ` ` 
119+             command =  ` $shell  $ttyopt  -c "$(shell_wrap_true (shell_name, cmd)) "` 
123120        end 
124121        run (ignorestatus (command))
125122    end 
0 commit comments