...

Source file src/github.com/Azure/go-ansiterm/escape_intermediate_state.go

Documentation: github.com/Azure/go-ansiterm

     1  package ansiterm
     2  
     3  type escapeIntermediateState struct {
     4  	baseState
     5  }
     6  
     7  func (escState escapeIntermediateState) Handle(b byte) (s state, e error) {
     8  	escState.parser.logf("escapeIntermediateState::Handle %#x", b)
     9  	nextState, err := escState.baseState.Handle(b)
    10  	if nextState != nil || err != nil {
    11  		return nextState, err
    12  	}
    13  
    14  	switch {
    15  	case sliceContains(intermeds, b):
    16  		return escState, escState.parser.collectInter()
    17  	case sliceContains(executors, b):
    18  		return escState, escState.parser.execute()
    19  	case sliceContains(escapeIntermediateToGroundBytes, b):
    20  		return escState.parser.ground, nil
    21  	}
    22  
    23  	return escState, nil
    24  }
    25  
    26  func (escState escapeIntermediateState) Transition(s state) error {
    27  	escState.parser.logf("escapeIntermediateState::Transition %s --> %s", escState.Name(), s.Name())
    28  	escState.baseState.Transition(s)
    29  
    30  	switch s {
    31  	case escState.parser.ground:
    32  		return escState.parser.escDispatch()
    33  	}
    34  
    35  	return nil
    36  }
    37  

View as plain text