diff options
| author | Greg Clayton <gclayton@apple.com> | 2011-02-07 19:04:58 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2011-02-07 19:04:58 +0000 |
| commit | cdd074fbc76bfe6cd6c7e534727625975157c87c (patch) | |
| tree | 251a89ff765025cf76cf4d433eca1010f566a39a | |
| parent | e1a4ac9b5b1041b92f829d20455671c4a7ecd5a3 (diff) | |
| download | bcm5719-llvm-cdd074fbc76bfe6cd6c7e534727625975157c87c.tar.gz bcm5719-llvm-cdd074fbc76bfe6cd6c7e534727625975157c87c.zip | |
More termios fixes from Kirk Beitz.
llvm-svn: 125024
| -rw-r--r-- | lldb/include/lldb/Core/TTYState.h | 5 | ||||
| -rw-r--r-- | lldb/source/Core/Debugger.cpp | 6 | ||||
| -rw-r--r-- | lldb/source/Core/TTYState.cpp | 8 | ||||
| -rw-r--r-- | lldb/source/Interpreter/ScriptInterpreterPython.cpp | 14 |
4 files changed, 28 insertions, 5 deletions
diff --git a/lldb/include/lldb/Core/TTYState.h b/lldb/include/lldb/Core/TTYState.h index ad0b62f1b64..ac12fefe63a 100644 --- a/lldb/include/lldb/Core/TTYState.h +++ b/lldb/include/lldb/Core/TTYState.h @@ -11,8 +11,9 @@ #define liblldb_TTYState_h_ #if defined(__cplusplus) +#if LLDB_CONFIG_TERMIOS_SUPPORTED #include <termios.h> -#include <stdint.h> +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED #include "lldb/lldb-private.h" @@ -121,7 +122,9 @@ protected: int m_fd; ///< File descriptor of the TTY. int m_tflags; ///< Cached tflags information. int m_ttystate_err; ///< Error value from call to save tflags. +#if LLDB_CONFIG_TERMIOS_SUPPORTED struct termios m_ttystate; ///< Cached ttystate information. +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED lldb::pid_t m_process_group;///< Cached process group information. }; diff --git a/lldb/source/Core/Debugger.cpp b/lldb/source/Core/Debugger.cpp index 305cbe2ef75..bbc7e8b1294 100644 --- a/lldb/source/Core/Debugger.cpp +++ b/lldb/source/Core/Debugger.cpp @@ -21,7 +21,9 @@ #include "lldb/Target/StopInfo.h" #include "lldb/Target/Thread.h" +#if LLDB_CONFIG_TERMIOS_SUPPORTED #include <termios.h> +#endif using namespace lldb; using namespace lldb_private; @@ -547,11 +549,12 @@ Debugger::CheckIfTopInputReaderIsDone () void Debugger::ActivateInputReader (const InputReaderSP &reader_sp) { +#if LLDB_CONFIG_TERMIOS_SUPPORTED FILE *in_fh = GetInputFileHandle(); if (in_fh) { - struct termios in_fh_termios; + struct termios in_fh_termios; int in_fd = fileno (in_fh); if (::tcgetattr(in_fd, &in_fh_termios) == 0) { @@ -578,6 +581,7 @@ Debugger::ActivateInputReader (const InputReaderSP &reader_sp) ::tcsetattr (in_fd, TCSANOW, &in_fh_termios); } } +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED } void diff --git a/lldb/source/Core/TTYState.cpp b/lldb/source/Core/TTYState.cpp index 6ba415832d4..bb6f94fb00e 100644 --- a/lldb/source/Core/TTYState.cpp +++ b/lldb/source/Core/TTYState.cpp @@ -10,7 +10,7 @@ #include "lldb/Core/TTYState.h" #include <fcntl.h> #include <unistd.h> -#include <sys/signal.h> +#include <signal.h> using namespace lldb_private; @@ -21,7 +21,9 @@ TTYState::TTYState() : m_fd(-1), m_tflags(-1), m_ttystate_err(-1), +#if LLDB_CONFIG_TERMIOS_SUPPORTED m_ttystate(), +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED m_process_group(-1) { } @@ -45,7 +47,9 @@ TTYState::Save (int fd, bool save_process_group) { m_fd = fd; m_tflags = ::fcntl (fd, F_GETFL, 0); +#if LLDB_CONFIG_TERMIOS_SUPPORTED m_ttystate_err = ::tcgetattr (fd, &m_ttystate); +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED if (save_process_group) m_process_group = ::tcgetpgrp (0); else @@ -74,8 +78,10 @@ TTYState::Restore () const if (TFlagsIsValid()) result = fcntl (m_fd, F_SETFL, m_tflags); +#if LLDB_CONFIG_TERMIOS_SUPPORTED if (TTYStateIsValid()) result = tcsetattr (m_fd, TCSANOW, &m_ttystate); +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED if (ProcessGroupIsValid()) { diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index 61bab4851cf..9122b7edd1b 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -201,7 +201,9 @@ ScriptInterpreterPython::ScriptInterpreterPython (CommandInterpreter &interprete m_dbg_stdout (interpreter.GetDebugger().GetOutputFileHandle()), m_new_sysout (NULL), m_dictionary_name (interpreter.GetDebugger().GetInstanceName().AsCString()), +#if LLDB_CONFIG_TERMIOS_SUPPORTED m_termios (), +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED m_termios_valid (false), m_session_is_active (false), m_pty_slave_is_open (false), @@ -569,8 +571,10 @@ ScriptInterpreterPython::InputReaderCallback else input_fd = STDIN_FILENO; +#if LLDB_CONFIG_TERMIOS_SUPPORTED script_interpreter->m_termios_valid = ::tcgetattr (input_fd, &script_interpreter->m_termios) == 0; - +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED + if (!CurrentThreadHasPythonLock()) { while (!GetPythonLock(1)) @@ -674,6 +678,7 @@ ScriptInterpreterPython::InputReaderCallback // Restore terminal settings if they were validly saved if (log) log->Printf ("ScriptInterpreterPython::InputReaderCallback, Done, closing down input reader."); +#if LLDB_CONFIG_TERMIOS_SUPPORTED if (script_interpreter->m_termios_valid) { int input_fd; @@ -685,6 +690,7 @@ ScriptInterpreterPython::InputReaderCallback ::tcsetattr (input_fd, TCSANOW, &script_interpreter->m_termios); } +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED script_interpreter->m_embedded_python_pty.CloseMasterFileDescriptor(); break; } @@ -1433,8 +1439,10 @@ ScriptInterpreterPython::Initialize () int input_fd = STDIN_FILENO; +#if LLDB_CONFIG_TERMIOS_SUPPORTED struct termios stdin_termios; bool valid_termios = ::tcgetattr (input_fd, &stdin_termios) == 0; +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED // Find the module that owns this code and use that path we get to // set the PYTHONPATH appropriately. @@ -1511,9 +1519,11 @@ ScriptInterpreterPython::Initialize () PyRun_SimpleString ("from termios import *"); Py_DECREF (pmod); } - + +#if LLDB_CONFIG_TERMIOS_SUPPORTED if (valid_termios) ::tcsetattr (input_fd, TCSANOW, &stdin_termios); +#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED } void |

