summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/source/TTYState.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/debugserver/source/TTYState.cpp')
-rw-r--r--lldb/tools/debugserver/source/TTYState.cpp152
1 files changed, 62 insertions, 90 deletions
diff --git a/lldb/tools/debugserver/source/TTYState.cpp b/lldb/tools/debugserver/source/TTYState.cpp
index 28bc956dc28..5f10050fcdd 100644
--- a/lldb/tools/debugserver/source/TTYState.cpp
+++ b/lldb/tools/debugserver/source/TTYState.cpp
@@ -13,110 +13,82 @@
#include "TTYState.h"
#include <fcntl.h>
-#include <unistd.h>
#include <sys/signal.h>
+#include <unistd.h>
-TTYState::TTYState() :
- m_fd(-1),
- m_tflags(-1),
- m_ttystateErr(-1),
- m_processGroup(-1)
-{
-}
+TTYState::TTYState()
+ : m_fd(-1), m_tflags(-1), m_ttystateErr(-1), m_processGroup(-1) {}
-TTYState::~TTYState()
-{
-}
+TTYState::~TTYState() {}
-bool
-TTYState::GetTTYState (int fd, bool saveProcessGroup)
-{
- if (fd >= 0 && ::isatty (fd))
- {
- m_fd = fd;
- m_tflags = fcntl (fd, F_GETFL, 0);
- m_ttystateErr = tcgetattr (fd, &m_ttystate);
- if (saveProcessGroup)
- m_processGroup = tcgetpgrp (0);
- else
- m_processGroup = -1;
- }
+bool TTYState::GetTTYState(int fd, bool saveProcessGroup) {
+ if (fd >= 0 && ::isatty(fd)) {
+ m_fd = fd;
+ m_tflags = fcntl(fd, F_GETFL, 0);
+ m_ttystateErr = tcgetattr(fd, &m_ttystate);
+ if (saveProcessGroup)
+ m_processGroup = tcgetpgrp(0);
else
- {
- m_fd = -1;
- m_tflags = -1;
- m_ttystateErr = -1;
- m_processGroup = -1;
- }
- return m_ttystateErr == 0;
+ m_processGroup = -1;
+ } else {
+ m_fd = -1;
+ m_tflags = -1;
+ m_ttystateErr = -1;
+ m_processGroup = -1;
+ }
+ return m_ttystateErr == 0;
}
-bool
-TTYState::SetTTYState () const
-{
- int result = 0;
- if (IsValid())
- {
- if (TFlagsValid())
- result = fcntl (m_fd, F_SETFL, m_tflags);
-
- if (TTYStateValid())
- result = tcsetattr (m_fd, TCSANOW, &m_ttystate);
-
- if (ProcessGroupValid())
- {
- // Save the original signal handler.
- void (*saved_sigttou_callback) (int) = NULL;
- saved_sigttou_callback = (void (*)(int)) signal (SIGTTOU, SIG_IGN);
- // Set the process group
- result = tcsetpgrp (m_fd, m_processGroup);
- // Restore the original signal handler.
- signal (SIGTTOU, saved_sigttou_callback);
- }
- return true;
+bool TTYState::SetTTYState() const {
+ int result = 0;
+ if (IsValid()) {
+ if (TFlagsValid())
+ result = fcntl(m_fd, F_SETFL, m_tflags);
+
+ if (TTYStateValid())
+ result = tcsetattr(m_fd, TCSANOW, &m_ttystate);
+
+ if (ProcessGroupValid()) {
+ // Save the original signal handler.
+ void (*saved_sigttou_callback)(int) = NULL;
+ saved_sigttou_callback = (void (*)(int))signal(SIGTTOU, SIG_IGN);
+ // Set the process group
+ result = tcsetpgrp(m_fd, m_processGroup);
+ // Restore the original signal handler.
+ signal(SIGTTOU, saved_sigttou_callback);
}
- return false;
+ return true;
+ }
+ return false;
}
+TTYStateSwitcher::TTYStateSwitcher() : m_currentState(~0) {}
+TTYStateSwitcher::~TTYStateSwitcher() {}
-TTYStateSwitcher::TTYStateSwitcher() :
- m_currentState(~0)
-{
+bool TTYStateSwitcher::GetState(uint32_t idx, int fd, bool saveProcessGroup) {
+ if (ValidStateIndex(idx))
+ return m_ttystates[idx].GetTTYState(fd, saveProcessGroup);
+ return false;
}
-TTYStateSwitcher::~TTYStateSwitcher()
-{
-}
-
-bool
-TTYStateSwitcher::GetState(uint32_t idx, int fd, bool saveProcessGroup)
-{
- if (ValidStateIndex(idx))
- return m_ttystates[idx].GetTTYState(fd, saveProcessGroup);
+bool TTYStateSwitcher::SetState(uint32_t idx) const {
+ if (!ValidStateIndex(idx))
return false;
-}
-
-bool
-TTYStateSwitcher::SetState(uint32_t idx) const
-{
- if (!ValidStateIndex(idx))
- return false;
-
- // See if we already are in this state?
- if (ValidStateIndex(m_currentState) && (idx == m_currentState) && m_ttystates[idx].IsValid())
- return true;
- // Set the state to match the index passed in and only update the
- // current state if there are no errors.
- if (m_ttystates[idx].SetTTYState())
- {
- m_currentState = idx;
- return true;
- }
-
- // We failed to set the state. The tty state was invalid or not
- // initialized.
- return false;
+ // See if we already are in this state?
+ if (ValidStateIndex(m_currentState) && (idx == m_currentState) &&
+ m_ttystates[idx].IsValid())
+ return true;
+
+ // Set the state to match the index passed in and only update the
+ // current state if there are no errors.
+ if (m_ttystates[idx].SetTTYState()) {
+ m_currentState = idx;
+ return true;
+ }
+
+ // We failed to set the state. The tty state was invalid or not
+ // initialized.
+ return false;
}
-
OpenPOWER on IntegriCloud