module Net
  module SSH
    module Connection
      # These constants are used when requesting a pseudo-terminal (via
      # Net::SSH::Connection::Channel#request_pty). The descriptions for each are
      # taken directly from RFC 4254 ("The Secure Shell (SSH) Connection Protocol"),
      # http://tools.ietf.org/html/rfc4254.
      module Term
        # Interrupt character; 255 if none. Similarly for the other characters.
        # Not all of these characters are supported on all systems.
        VINTR = 1

        # The quit character (sends SIGQUIT signal on POSIX systems).
        VQUIT = 2

        # Erase the character to left of the cursor.
        VERASE = 3

        # Kill the current input line.
        VKILL = 4

        # End-of-file character (sends EOF from the terminal).
        VEOF = 5

        # End-of-line character in addition to carriage return and/or linefeed.
        VEOL = 6

        # Additional end-of-line character.
        VEOL2 = 7

        # Continues paused output (normally control-Q).
        VSTART = 8

        # Pauses output (normally control-S).
        VSTOP = 9

        # Suspends the current program.
        VSUSP = 10

        # Another suspend character.
        VDSUSP = 11

        # Reprints the current input line.
        VREPRINT = 12

        # Erases a word left of cursor.
        VWERASE = 13

        # Enter the next character typed literally, even if it is a special
        # character.
        VLNEXT = 14

        # Character to flush output.
        VFLUSH = 15

        # Switch to a different shell layer.
        VSWITCH = 16

        # Prints system status line (load, command, pid, etc).
        VSTATUS = 17

        # Toggles the flushing of terminal output.
        VDISCARD = 18

        # The ignore parity flag. The parameter SHOULD be 0 if this flag is FALSE,
        # and 1 if it is TRUE.
        IGNPAR = 30

        # Mark parity and framing errors.
        PARMRK = 31

        # Enable checking of parity errors.
        INPCK = 32

        # Strip 8th bit off characters.
        ISTRIP = 33

        # Map NL into CR on input.
        INCLR = 34

        # Ignore CR on input.
        IGNCR = 35

        # Map CR to NL on input.
        ICRNL = 36

        # Translate uppercase characters to lowercase.
        IUCLC = 37

        # Enable output flow control.
        IXON = 38

        # Any char will restart after stop.
        IXANY = 39

        # Enable input flow control.
        IXOFF = 40

        # Ring bell on input queue full.
        IMAXBEL = 41

        # Enable signals INTR, QUIT, [D]SUSP.
        ISIG = 50

        # Canonicalize input lines.
        ICANON = 51

        # Enable input and output of uppercase characters by preceding their
        # lowercase equivalents with "\".
        XCASE = 52

        # Enable echoing.
        ECHO = 53

        # Visually erase chars.
        ECHOE = 54

        # Kill character discards current line.
        ECHOK = 55

        # Echo NL even if ECHO is off.
        ECHONL = 56

        # Don't flush after interrupt.
        NOFLSH = 57

        # Stop background jobs from output.
        TOSTOP = 58

        # Enable extensions.
        IEXTEN = 59

        # Echo control characters as ^(Char).
        ECHOCTL = 60

        # Visual erase for line kill.
        ECHOKE = 61

        # Retype pending input.
        PENDIN = 62

        # Enable output processing.
        OPOST = 70

        # Convert lowercase to uppercase.
        OLCUC = 71

        # Map NL to CR-NL.
        ONLCR = 72

        # Translate carriage return to newline (output).
        OCRNL = 73

        # Translate newline to carriage return-newline (output).
        ONOCR = 74

        # Newline performs a carriage return (output).
        ONLRET = 75

        # 7 bit mode.
        CS7 = 90

        # 8 bit mode.
        CS8 = 91

        # Parity enable.
        PARENB = 92

        # Odd parity, else even.
        PARODD = 93

        # Specifies the input baud rate in bits per second.
        TTY_OP_ISPEED = 128

        # Specifies the output baud rate in bits per second.
        TTY_OP_OSPEED = 129
      end
    end
  end
end
