...

Source file src/github.com/moby/term/termios_windows.go

Documentation: github.com/moby/term

     1  package term
     2  
     3  import "golang.org/x/sys/windows"
     4  
     5  func makeRaw(fd uintptr) (*State, error) {
     6  	state, err := SaveState(fd)
     7  	if err != nil {
     8  		return nil, err
     9  	}
    10  
    11  	mode := state.mode
    12  
    13  	// See
    14  	// -- https://msdn.microsoft.com/en-us/library/windows/desktop/ms686033(v=vs.85).aspx
    15  	// -- https://msdn.microsoft.com/en-us/library/windows/desktop/ms683462(v=vs.85).aspx
    16  
    17  	// Disable these modes
    18  	mode &^= windows.ENABLE_ECHO_INPUT
    19  	mode &^= windows.ENABLE_LINE_INPUT
    20  	mode &^= windows.ENABLE_MOUSE_INPUT
    21  	mode &^= windows.ENABLE_WINDOW_INPUT
    22  	mode &^= windows.ENABLE_PROCESSED_INPUT
    23  
    24  	// Enable these modes
    25  	mode |= windows.ENABLE_EXTENDED_FLAGS
    26  	mode |= windows.ENABLE_INSERT_MODE
    27  	mode |= windows.ENABLE_QUICK_EDIT_MODE
    28  	if vtInputSupported {
    29  		mode |= windows.ENABLE_VIRTUAL_TERMINAL_INPUT
    30  	}
    31  
    32  	err = windows.SetConsoleMode(windows.Handle(fd), mode)
    33  	if err != nil {
    34  		return nil, err
    35  	}
    36  	return state, nil
    37  }
    38  

View as plain text