There is no special handling for them needed at the moment, but do recognize these as CECP commands. For '?' as noted in #12 -- silentium. For 'rejected' -- silentium too, e.g. CuteChess 1.2.0 sends rejected even for features that were explicitly turned off. As for more handling, rejected features are all such that actually were requested to be set OFF, no action needed, and only protocol v2 engines send 'rejected' anyway, so they are not to invoke the commands that are not supported by them. So do not produce any blabber for these rejections.
4 >MCE 0.2.1(0): uci
5 >Monchester 1.0.1-14-g84db4ed(1): xboard
5 >Monchester 1.0.1-14-g84db4ed(1): protover 2
80 <MCE 0.2.1(0): MinimalChess 0.2.1
92 <MCE 0.2.1(0): id name MinimalChess 0.2
92 <MCE 0.2.1(0): id author Thomas Jahn
92 <MCE 0.2.1(0): uciok
92 >MCE 0.2.1(0): isready
93 <MCE 0.2.1(0): readyok
128 <Monchester 1.0.1-14-g84db4ed(1): # Monchester 1.0.1-14-g84db4ed ~(9156 kN/s)
128 <Monchester 1.0.1-14-g84db4ed(1): command : # received xboard
128 <Monchester 1.0.1-14-g84db4ed(1): feature myname="Monchester 1.0.1-14-g84db4ed" name=1 setboard=1 ping=1 edit=0 memory=0 usermove=0 analyze=0 colors=0 sigint=0 sigterm=0 done=1
128 >Monchester 1.0.1-14-g84db4ed(1): accepted myname
128 >Monchester 1.0.1-14-g84db4ed(1): accepted name
128 >Monchester 1.0.1-14-g84db4ed(1): accepted setboard
128 >Monchester 1.0.1-14-g84db4ed(1): accepted ping
128 >Monchester 1.0.1-14-g84db4ed(1): rejected edit
128 >Monchester 1.0.1-14-g84db4ed(1): accepted memory
128 >Monchester 1.0.1-14-g84db4ed(1): accepted usermove
128 >Monchester 1.0.1-14-g84db4ed(1): rejected analyze
128 >Monchester 1.0.1-14-g84db4ed(1): rejected colors
128 >Monchester 1.0.1-14-g84db4ed(1): rejected sigint
128 >Monchester 1.0.1-14-g84db4ed(1): rejected sigterm
128 >Monchester 1.0.1-14-g84db4ed(1): accepted done
Started game 1 of 10 (MCE 0.2.1 vs Monchester 1.0.1-14-g84db4ed)
128 >MCE 0.2.1(0): ucinewgame
128 >MCE 0.2.1(0): position startpos
128 >Monchester 1.0.1-14-g84db4ed(1): new
128 >Monchester 1.0.1-14-g84db4ed(1): force
128 >Monchester 1.0.1-14-g84db4ed(1): level 0 0:10 0
128 >Monchester 1.0.1-14-g84db4ed(1): post
128 >Monchester 1.0.1-14-g84db4ed(1): easy
128 >Monchester 1.0.1-14-g84db4ed(1): computer
128 >Monchester 1.0.1-14-g84db4ed(1): name MCE 0.2.1
128 >MCE 0.2.1(0): isready
129 <Monchester 1.0.1-14-g84db4ed(1): Error (unknown command): rejected edit
129 <Monchester 1.0.1-14-g84db4ed(1): #8: R N B Q K B N R
129 <Monchester 1.0.1-14-g84db4ed(1): #7: P P P P P P P P
129 <Monchester 1.0.1-14-g84db4ed(1): #6: - - - - - - - -
129 <Monchester 1.0.1-14-g84db4ed(1): #5: - - - - - - - -
129 <Monchester 1.0.1-14-g84db4ed(1): #4: - - - - - - - -
129 <Monchester 1.0.1-14-g84db4ed(1): #3: - - - - - - - -
129 <Monchester 1.0.1-14-g84db4ed(1): #2: p p p p p p p p
129 <Monchester 1.0.1-14-g84db4ed(1): #1: r n b q k b n r
129 <Monchester 1.0.1-14-g84db4ed(1): #-------------------
129 <Monchester 1.0.1-14-g84db4ed(1): # A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
129 <Monchester 1.0.1-14-g84db4ed(1): Error (unknown command): rejected analyze
129 <Monchester 1.0.1-14-g84db4ed(1): #8: R N B Q K B N R
129 <Monchester 1.0.1-14-g84db4ed(1): #7: P P P P P P P P
129 <Monchester 1.0.1-14-g84db4ed(1): #6: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #5: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #4: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #3: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #2: p p p p p p p p
130 <Monchester 1.0.1-14-g84db4ed(1): #1: r n b q k b n r
130 <Monchester 1.0.1-14-g84db4ed(1): #-------------------
130 <Monchester 1.0.1-14-g84db4ed(1): # A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
130 <Monchester 1.0.1-14-g84db4ed(1): Error (unknown command): rejected colors
130 <Monchester 1.0.1-14-g84db4ed(1): #8: R N B Q K B N R
130 <Monchester 1.0.1-14-g84db4ed(1): #7: P P P P P P P P
130 <Monchester 1.0.1-14-g84db4ed(1): #6: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #5: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #4: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #3: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #2: p p p p p p p p
130 <Monchester 1.0.1-14-g84db4ed(1): #1: r n b q k b n r
130 <Monchester 1.0.1-14-g84db4ed(1): #-------------------
130 <Monchester 1.0.1-14-g84db4ed(1): # A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
130 <Monchester 1.0.1-14-g84db4ed(1): Error (unknown command): rejected sigint
130 <Monchester 1.0.1-14-g84db4ed(1): #8: R N B Q K B N R
130 <Monchester 1.0.1-14-g84db4ed(1): #7: P P P P P P P P
130 <Monchester 1.0.1-14-g84db4ed(1): #6: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #5: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #4: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #3: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #2: p p p p p p p p
130 <Monchester 1.0.1-14-g84db4ed(1): #1: r n b q k b n r
130 <Monchester 1.0.1-14-g84db4ed(1): #-------------------
130 <Monchester 1.0.1-14-g84db4ed(1): # A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
130 <Monchester 1.0.1-14-g84db4ed(1): Error (unknown command): rejected sigterm
130 <Monchester 1.0.1-14-g84db4ed(1): #8: R N B Q K B N R
130 <Monchester 1.0.1-14-g84db4ed(1): #7: P P P P P P P P
130 <Monchester 1.0.1-14-g84db4ed(1): #6: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #5: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #4: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #3: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #2: p p p p p p p p
130 <Monchester 1.0.1-14-g84db4ed(1): #1: r n b q k b n r
130 <Monchester 1.0.1-14-g84db4ed(1): #-------------------
130 <Monchester 1.0.1-14-g84db4ed(1): # A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
130 <Monchester 1.0.1-14-g84db4ed(1): #8: R N B Q K B N R
130 <Monchester 1.0.1-14-g84db4ed(1): #7: P P P P P P P P
130 <Monchester 1.0.1-14-g84db4ed(1): #6: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #5: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #4: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #3: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #2: p p p p p p p p
130 <Monchester 1.0.1-14-g84db4ed(1): #1: r n b q k b n r
130 <Monchester 1.0.1-14-g84db4ed(1): #-------------------
130 <Monchester 1.0.1-14-g84db4ed(1): # A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
130 <Monchester 1.0.1-14-g84db4ed(1): #8: R N B Q K B N R
130 <Monchester 1.0.1-14-g84db4ed(1): #7: P P P P P P P P
130 <Monchester 1.0.1-14-g84db4ed(1): #6: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #5: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #4: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #3: - - - - - - - -
130 <Monchester 1.0.1-14-g84db4ed(1): #2: p p p p p p p p
130 <Monchester 1.0.1-14-g84db4ed(1): #1: r n b q k b n r
130 <Monchester 1.0.1-14-g84db4ed(1): #-------------------
130 <Monchester 1.0.1-14-g84db4ed(1): # A B C D E F G H rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
134 <MCE 0.2.1(0): readyok
134 >MCE 0.2.1(0): go wtime 10000 btime 10000
135 <MCE 0.2.1(0): info string Search budget set to 249ms!
154 <MCE 0.2.1(0): info depth 1 score cp 0 nodes 20 nps 1538 time 13 pv g2g4
166 <MCE 0.2.1(0): info depth 2 score cp 0 nodes 59 nps 1966 time 30 pv g2g4 a7a6
167 <MCE 0.2.1(0): info depth 3 score cp 0 nodes 575 nps 18548 time 31 pv g2g4 a7a6 b1a3
178 <MCE 0.2.1(0): info depth 4 score cp 0 nodes 1639 nps 39975 time 41 pv g2g4 a7a6 b1a3 a6a5
209 <MCE 0.2.1(0): info depth 5 score cp 100 nodes 17888 nps 248444 time 72 pv c2c4 d7d6 d1b3 h7h6 b3b7
355 <MCE 0.2.1(0): info depth 6 score cp -100 nodes 70773 nps 323164 time 219 pv c2c4 b7b6 d1b3 c8b7 b3a4 b7g2
There is no special handling for them needed at the moment, but do recognize these as CECP commands. For '?' as noted in #12 -- silentium. For 'rejected' -- silentium too, e.g. CuteChess 1.2.0 sends
rejected
even for features that were explicitly turned off. As for more handling, rejected features are all such that actually were requested to be set OFF, no action needed, and only protocol v2 engines send 'rejected' anyway, so they are not to invoke the commands that are not supported by them. So do not produce any blabber for these rejections.Full log session from startup of CuteChess: