From 25bc102ae0d9f0446bebabfc5f4dfb0b22f55c62 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 21 Jun 2023 02:39:54 +0300 Subject: [PATCH] kpty: format and indent Signed-off-by: Ivailo Monev --- kpty/kpty.cpp | 2 +- kpty/kpty.h | 295 ++++++++++++++++----------------- kpty/kptydevice.h | 3 +- kpty/kptyprocess.cpp | 3 +- kpty/kptyprocess.h | 2 - kpty/tests/kptyprocesstest.cpp | 8 +- 6 files changed, 156 insertions(+), 157 deletions(-) diff --git a/kpty/kpty.cpp b/kpty/kpty.cpp index 8cfe1b3e..9b905402 100644 --- a/kpty/kpty.cpp +++ b/kpty/kpty.cpp @@ -446,7 +446,7 @@ bool KPty::setEcho(bool echo) const char *KPty::ttyName() const { Q_D(const KPty); - return d->ttyName.data(); + return d->ttyName.constData(); } int KPty::masterFd() const diff --git a/kpty/kpty.h b/kpty/kpty.h index 43fbb3bf..7fc0f443 100644 --- a/kpty/kpty.h +++ b/kpty/kpty.h @@ -32,175 +32,174 @@ struct termios; * Provides primitives for opening & closing a pseudo TTY pair, assigning the * controlling TTY, utmp registration and setting various terminal attributes. */ -class KPTY_EXPORT KPty { +class KPTY_EXPORT KPty +{ Q_DECLARE_PRIVATE(KPty) - public: + /** + * Constructor + */ + KPty(); - /** - * Constructor - */ - KPty(); + /** + * Destructor: + * + * If the pty is still open, it will be closed. Note, however, that + * an utmp registration is @em not undone. + */ + ~KPty(); - /** - * Destructor: - * - * If the pty is still open, it will be closed. Note, however, that - * an utmp registration is @em not undone. - */ - ~KPty(); + /** + * Create a pty master/slave pair. + * + * @return true if a pty pair was successfully opened + */ + bool open(); - /** - * Create a pty master/slave pair. - * - * @return true if a pty pair was successfully opened - */ - bool open(); + /** + * Open using an existing pty master. + * + * @param fd an open pty master file descriptor. + * The ownership of the fd remains with the caller; + * it will not be automatically closed at any point. + * @return true if a pty pair was successfully opened + */ + bool open(int fd); - /** - * Open using an existing pty master. - * - * @param fd an open pty master file descriptor. - * The ownership of the fd remains with the caller; - * it will not be automatically closed at any point. - * @return true if a pty pair was successfully opened - */ - bool open(int fd); + /** + * Close the pty master/slave pair. + */ + void close(); - /** - * Close the pty master/slave pair. - */ - void close(); + /** + * Close the pty slave descriptor. + * + * When creating the pty, KPty also opens the slave and keeps it open. + * Consequently the master will never receive an EOF notification. + * Usually this is the desired behavior, as a closed pty slave can be + * reopened any time - unlike a pipe or socket. However, in some cases + * pipe-alike behavior might be desired. + * + * After this function was called, slaveFd() and setCTty() cannot be + * used. + */ + void closeSlave(); - /** - * Close the pty slave descriptor. - * - * When creating the pty, KPty also opens the slave and keeps it open. - * Consequently the master will never receive an EOF notification. - * Usually this is the desired behavior, as a closed pty slave can be - * reopened any time - unlike a pipe or socket. However, in some cases - * pipe-alike behavior might be desired. - * - * After this function was called, slaveFd() and setCTty() cannot be - * used. - */ - void closeSlave(); + /** + * Open the pty slave descriptor. + * + * This undoes the effect of closeSlave(). + * + * @return true if the pty slave was successfully opened + */ + bool openSlave(); - /** - * Open the pty slave descriptor. - * - * This undoes the effect of closeSlave(). - * - * @return true if the pty slave was successfully opened - */ - bool openSlave(); + /** + * Creates a new session and process group and makes this pty the + * controlling tty. + */ + void setCTty(); - /** - * Creates a new session and process group and makes this pty the - * controlling tty. - */ - void setCTty(); + /** + * Creates an utmp entry for the tty. + * This function must be called after calling setCTty and + * making this pty the stdin. + * @param user the user to be logged on + * @param remotehost the host from which the login is coming. This is + * @em not the local host. For remote logins it should be the hostname + * of the client. For local logins from inside an X session it should + * be the name of the X display. Otherwise it should be empty. + */ + void login(const char *user = 0, const char *remotehost = 0); - /** - * Creates an utmp entry for the tty. - * This function must be called after calling setCTty and - * making this pty the stdin. - * @param user the user to be logged on - * @param remotehost the host from which the login is coming. This is - * @em not the local host. For remote logins it should be the hostname - * of the client. For local logins from inside an X session it should - * be the name of the X display. Otherwise it should be empty. - */ - void login(const char *user = 0, const char *remotehost = 0); + /** + * Removes the utmp entry for this tty. + */ + void logout(); - /** - * Removes the utmp entry for this tty. - */ - void logout(); + /** + * Wrapper around tcgetattr(3). + * + * This function can be used only while the PTY is open. + * You will need an #include <termios.h> to do anything useful + * with it. + * + * @param ttmode a pointer to a termios structure. + * Note: when declaring ttmode, @c struct @c ::termios must be used - + * without the '::' some version of HP-UX thinks, this declares + * the struct in your class, in your method. + * @return @c true on success, false otherwise + */ + bool tcGetAttr(struct ::termios *ttmode) const; - /** - * Wrapper around tcgetattr(3). - * - * This function can be used only while the PTY is open. - * You will need an #include <termios.h> to do anything useful - * with it. - * - * @param ttmode a pointer to a termios structure. - * Note: when declaring ttmode, @c struct @c ::termios must be used - - * without the '::' some version of HP-UX thinks, this declares - * the struct in your class, in your method. - * @return @c true on success, false otherwise - */ - bool tcGetAttr(struct ::termios *ttmode) const; + /** + * Wrapper around tcsetattr(3) with mode TCSANOW. + * + * This function can be used only while the PTY is open. + * + * @param ttmode a pointer to a termios structure. + * @return @c true on success, false otherwise. Note that success means + * that @em at @em least @em one attribute could be set. + */ + bool tcSetAttr(struct ::termios *ttmode); - /** - * Wrapper around tcsetattr(3) with mode TCSANOW. - * - * This function can be used only while the PTY is open. - * - * @param ttmode a pointer to a termios structure. - * @return @c true on success, false otherwise. Note that success means - * that @em at @em least @em one attribute could be set. - */ - bool tcSetAttr(struct ::termios *ttmode); + /** + * Change the logical (screen) size of the pty. + * The default is 24 lines by 80 columns. + * + * This function can be used only while the PTY is open. + * + * @param lines the number of rows + * @param columns the number of columns + * @return @c true on success, false otherwise + */ + bool setWinSize(int lines, int columns); - /** - * Change the logical (screen) size of the pty. - * The default is 24 lines by 80 columns. - * - * This function can be used only while the PTY is open. - * - * @param lines the number of rows - * @param columns the number of columns - * @return @c true on success, false otherwise - */ - bool setWinSize(int lines, int columns); + /** + * Set whether the pty should echo input. + * + * Echo is on by default. + * If the output of automatically fed (non-interactive) PTY clients + * needs to be parsed, disabling echo often makes it much simpler. + * + * This function can be used only while the PTY is open. + * + * @param echo true if input should be echoed. + * @return @c true on success, false otherwise + */ + bool setEcho(bool echo); - /** - * Set whether the pty should echo input. - * - * Echo is on by default. - * If the output of automatically fed (non-interactive) PTY clients - * needs to be parsed, disabling echo often makes it much simpler. - * - * This function can be used only while the PTY is open. - * - * @param echo true if input should be echoed. - * @return @c true on success, false otherwise - */ - bool setEcho(bool echo); + /** + * @return the name of the slave pty device. + * + * This function should be called only while the pty is open. + */ + const char *ttyName() const; - /** - * @return the name of the slave pty device. - * - * This function should be called only while the pty is open. - */ - const char *ttyName() const; + /** + * @return the file descriptor of the master pty + * + * This function should be called only while the pty is open. + */ + int masterFd() const; - /** - * @return the file descriptor of the master pty - * - * This function should be called only while the pty is open. - */ - int masterFd() const; - - /** - * @return the file descriptor of the slave pty - * - * This function should be called only while the pty slave is open. - */ - int slaveFd() const; + /** + * @return the file descriptor of the slave pty + * + * This function should be called only while the pty slave is open. + */ + int slaveFd() const; protected: - /** - * @internal - */ - KPty(KPtyPrivate *d); + /** + * @internal + */ + KPty(KPtyPrivate *d); - /** - * @internal - */ - KPtyPrivate * const d_ptr; + /** + * @internal + */ + KPtyPrivate * const d_ptr; }; #endif diff --git a/kpty/kptydevice.h b/kpty/kptydevice.h index 5e4bd50f..e8e60ac3 100644 --- a/kpty/kptydevice.h +++ b/kpty/kptydevice.h @@ -35,7 +35,8 @@ class KPtyDevicePrivate; /** * Encapsulates KPty into a QIODevice, so it can be used with Q*Stream, etc. */ -class KPTY_EXPORT KPtyDevice : public QIODevice, public KPty { //krazy:exclude=dpointer (via macro) +class KPTY_EXPORT KPtyDevice : public QIODevice, public KPty +{ Q_OBJECT Q_DECLARE_PRIVATE_MI(KPtyDevice, KPty) diff --git a/kpty/kptyprocess.cpp b/kpty/kptyprocess.cpp index c9ea600d..30d0321a 100644 --- a/kpty/kptyprocess.cpp +++ b/kpty/kptyprocess.cpp @@ -37,7 +37,8 @@ class KPtyProcessPrivate : public KProcessPrivate { public: KPtyProcessPrivate() - : ptyChannels(KPtyProcess::NoChannels), + : pty(nullptr), + ptyChannels(KPtyProcess::NoChannels), addUtmp(false) { } diff --git a/kpty/kptyprocess.h b/kpty/kptyprocess.h index baa85faa..0bb1e37e 100644 --- a/kpty/kptyprocess.h +++ b/kpty/kptyprocess.h @@ -48,7 +48,6 @@ class KPTY_EXPORT KPtyProcess : public KProcess { Q_OBJECT Q_DECLARE_PRIVATE(KPtyProcess) - public: enum PtyChannelFlag { NoChannels = 0, /**< The PTY is not connected to any channel. */ @@ -58,7 +57,6 @@ public: AllOutputChannels = 6, /**< Connect PTY to all output channels. */ AllChannels = 7 /**< Connect PTY to all channels. */ }; - Q_DECLARE_FLAGS(PtyChannels, PtyChannelFlag) /** diff --git a/kpty/tests/kptyprocesstest.cpp b/kpty/tests/kptyprocesstest.cpp index ee594570..56e7c80a 100644 --- a/kpty/tests/kptyprocesstest.cpp +++ b/kpty/tests/kptyprocesstest.cpp @@ -93,7 +93,7 @@ void KPtyProcessTest::test_shared_pty() } } // This test (or KPtyProcess) is fragile, sometimes the \r\n is missing. Disabled. - //QCOMPARE(p.pty()->readAll(), QByteArray("hello from process 2\r\n")); + // QCOMPARE(p.pty()->readAll(), QByteArray("hello from process 2\r\n")); // write to the first process' pty p.pty()->write("hi from process 1\n"); @@ -138,8 +138,9 @@ void KPtyProcessTest::slotReadyRead() void KPtyProcessTest::slotDoRead() { - while (sp.pty()->canReadLine()) + while (sp.pty()->canReadLine()) { log.append('>').append(sp.pty()->readLine()).append("$\n"); + } log.append("!\n"); } @@ -196,7 +197,6 @@ void KPtyProcessTest::test_pty_signals() QCOMPARE(QLatin1String(log), QLatin1String(want)); } - void KPtyProcessTest::test_ctty() { KPtyProcess p; @@ -207,6 +207,6 @@ void KPtyProcessTest::test_ctty() QCOMPARE(output, QLatin1String("this is a test\r\n")); } -QTEST_KDEMAIN_CORE( KPtyProcessTest ) +QTEST_KDEMAIN_CORE(KPtyProcessTest) #include "moc_kptyprocesstest.cpp"