Author: gclayton
Date: Thu Jul 31 14:46:19 2014
New Revision: 214428

URL: http://llvm.org/viewvc/llvm-project?rev=214428&view=rev
Log:
Fixed an issue where the LLDB command prompt isn't interactive if you use -o -O 
-S -s or specify a file on the command line.

This means TAB completion wasn't working and editline wasn't being used.

<rdar://problem/17872824> 

Modified:
    lldb/trunk/source/Interpreter/CommandInterpreter.cpp

Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=214428&r1=214427&r2=214428&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original)
+++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Thu Jul 31 14:46:19 
2014
@@ -3140,28 +3140,22 @@ void
 CommandInterpreter::RunCommandInterpreter(bool auto_handle_events,
                                           bool spawn_thread)
 {
-    const bool multiple_lines = false; // Only get one line at a time
-    if (m_command_io_handler_sp)
-    {
-        // Copy the current debugger file handles in case they changed.
-        m_command_io_handler_sp->GetInputStreamFile() = 
m_debugger.GetInputFile();
-        m_command_io_handler_sp->GetOutputStreamFile() = 
m_debugger.GetOutputFile();
-        m_command_io_handler_sp->GetErrorStreamFile() = 
m_debugger.GetErrorFile();
-        m_command_io_handler_sp->SetIsDone(false);
-    }
-    else
-    {
-        m_command_io_handler_sp.reset(new IOHandlerEditline (m_debugger,
-                                                             
m_debugger.GetInputFile(),
-                                                             
m_debugger.GetOutputFile(),
-                                                             
m_debugger.GetErrorFile(),
-                                                             
eHandleCommandFlagEchoCommand | eHandleCommandFlagPrintResult,
-                                                             "lldb",
-                                                             
m_debugger.GetPrompt(),
-                                                             multiple_lines,
-                                                             0,            // 
Don't show line numbers
-                                                             *this));
-    }
+    // Only get one line at a time
+    const bool multiple_lines = false;
+    
+    // Always re-create the IOHandlerEditline in case the input
+    // changed. The old instance might have had a non-interactive
+    // input and now it does or vice versa.
+    m_command_io_handler_sp.reset(new IOHandlerEditline (m_debugger,
+                                                         
m_debugger.GetInputFile(),
+                                                         
m_debugger.GetOutputFile(),
+                                                         
m_debugger.GetErrorFile(),
+                                                         
eHandleCommandFlagEchoCommand | eHandleCommandFlagPrintResult,
+                                                         "lldb",
+                                                         
m_debugger.GetPrompt(),
+                                                         multiple_lines,
+                                                         0,            // 
Don't show line numbers
+                                                         *this));
 
     m_debugger.PushIOHandler(m_command_io_handler_sp);
     


_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to