aminal/terminal/sgr.go

112 lines
3.6 KiB
Go

package terminal
import "fmt"
func sgrSequenceHandler(params []string, intermediate string, terminal *Terminal) error {
for i := range params {
param := params[i]
switch param {
case "00", "0", "":
terminal.cellAttr = terminal.defaultCellAttr
case "1", "01":
terminal.cellAttr.Bold = true
case "2", "02":
terminal.cellAttr.Dim = true
case "4", "04":
terminal.cellAttr.Underline = true
case "5", "05":
terminal.cellAttr.Blink = true
case "7", "07":
terminal.cellAttr.Reverse = true
case "8", "08":
terminal.cellAttr.Hidden = true
case "21":
terminal.cellAttr.Bold = false
case "22":
terminal.cellAttr.Dim = false
case "24":
terminal.cellAttr.Underline = false
case "25":
terminal.cellAttr.Blink = false
case "27":
terminal.cellAttr.Reverse = false
case "28":
terminal.cellAttr.Hidden = false
case "39":
terminal.cellAttr.FgColour = terminal.colourScheme.DefaultFg
case "30":
terminal.cellAttr.FgColour = terminal.colourScheme.BlackFg
case "31":
terminal.cellAttr.FgColour = terminal.colourScheme.RedFg
case "32":
terminal.cellAttr.FgColour = terminal.colourScheme.GreenFg
case "33":
terminal.cellAttr.FgColour = terminal.colourScheme.YellowFg
case "34":
terminal.cellAttr.FgColour = terminal.colourScheme.BlueFg
case "35":
terminal.cellAttr.FgColour = terminal.colourScheme.MagentaFg
case "36":
terminal.cellAttr.FgColour = terminal.colourScheme.CyanFg
case "37":
terminal.cellAttr.FgColour = terminal.colourScheme.WhiteFg
case "90":
terminal.cellAttr.FgColour = terminal.colourScheme.DarkGreyFg
case "91":
terminal.cellAttr.FgColour = terminal.colourScheme.LightRedFg
case "92":
terminal.cellAttr.FgColour = terminal.colourScheme.LightGreenFg
case "93":
terminal.cellAttr.FgColour = terminal.colourScheme.LightYellowFg
case "94":
terminal.cellAttr.FgColour = terminal.colourScheme.LightBlueFg
case "95":
terminal.cellAttr.FgColour = terminal.colourScheme.LightMagentaFg
case "96":
terminal.cellAttr.FgColour = terminal.colourScheme.LightCyanFg
case "97":
terminal.cellAttr.FgColour = terminal.colourScheme.WhiteFg
case "49":
terminal.cellAttr.BgColour = terminal.colourScheme.DefaultBg
case "40":
terminal.cellAttr.BgColour = terminal.colourScheme.BlackBg
case "41":
terminal.cellAttr.BgColour = terminal.colourScheme.RedBg
case "42":
terminal.cellAttr.BgColour = terminal.colourScheme.GreenBg
case "43":
terminal.cellAttr.BgColour = terminal.colourScheme.YellowBg
case "44":
terminal.cellAttr.BgColour = terminal.colourScheme.BlueBg
case "45":
terminal.cellAttr.BgColour = terminal.colourScheme.MagentaBg
case "46":
terminal.cellAttr.BgColour = terminal.colourScheme.CyanBg
case "47":
terminal.cellAttr.BgColour = terminal.colourScheme.WhiteBg
case "100":
terminal.cellAttr.BgColour = terminal.colourScheme.DarkGreyBg
case "101":
terminal.cellAttr.BgColour = terminal.colourScheme.LightRedBg
case "102":
terminal.cellAttr.BgColour = terminal.colourScheme.LightGreenBg
case "103":
terminal.cellAttr.BgColour = terminal.colourScheme.LightYellowBg
case "104":
terminal.cellAttr.BgColour = terminal.colourScheme.LightBlueBg
case "105":
terminal.cellAttr.BgColour = terminal.colourScheme.LightMagentaBg
case "106":
terminal.cellAttr.BgColour = terminal.colourScheme.LightCyanBg
case "107":
terminal.cellAttr.BgColour = terminal.colourScheme.WhiteBg
default:
return fmt.Errorf("Unknown SGR control sequence: (ESC[%s%sm)", param, intermediate)
}
//terminal.logger.Debugf("SGR control sequence: (ESC[%s%sm)", param, intermediate)
}
return nil
}