@@ -28,6 +28,7 @@ import (
28
28
"github.com/arduino/serial-monitor/args"
29
29
"github.com/arduino/serial-monitor/version"
30
30
"go.bug.st/serial"
31
+ "golang.org/x/exp/slices"
31
32
)
32
33
33
34
func main () {
@@ -103,21 +104,19 @@ func (d *SerialMonitor) Configure(parameterName string, value string) error {
103
104
if ! ok {
104
105
return fmt .Errorf ("could not find parameter named %s" , parameterName )
105
106
}
106
- for _ , i := range parameter .Values {
107
- if i == value {
108
- oldValue := parameter .Selected
109
- parameter .Selected = value
110
- if d .openedPort {
111
- err := d .serialPort .SetMode (d .getMode ())
112
- if err != nil {
113
- parameter .Selected = oldValue
114
- return errors .New (err .Error ())
115
- }
116
- }
117
- return nil
107
+ if ! slices .Contains (parameter .Values , value ) {
108
+ return fmt .Errorf ("invalid value for parameter %s: %s" , parameterName , value )
109
+ }
110
+ oldValue := parameter .Selected
111
+ parameter .Selected = value
112
+ if d .openedPort {
113
+ err := d .serialPort .SetMode (d .getMode ())
114
+ if err != nil {
115
+ parameter .Selected = oldValue
116
+ return errors .New (err .Error ())
118
117
}
119
118
}
120
- return fmt . Errorf ( "invalid value for parameter %s: %s" , parameterName , value )
119
+ return nil
121
120
}
122
121
123
122
// Open is the handler for the pluggable-monitor OPEN command
0 commit comments