private void setFeature(string name, string val)
        {
            if (name == "ping")
            {
                ftPing = (val == "1");
                if (ftPing)
                {
                    SupportedFeatures.Add("ping");
                }
            }
            else if (name == "setboard")
            {
                ftSetboard = (val == "1");
                if (ftSetboard)
                {
                    SupportedFeatures.Add("setboard");
                }
            }

            /*			else if( name == "san" )
             *                      {
             *                              if( val == "1" )
             *                                      m_notation = MoveNotation.StandardAlgebraic;
             *                              else
             *                                      m_notation = MoveNotation.LongAlgebraic;
             *                      }*/
            else if (name == "usermove")
            {
                ftUsermove = (val == "1");
                if (ftUsermove)
                {
                    SupportedFeatures.Add("usermove");
                }
            }
            else if (name == "nps")
            {
                ftNps = (val == "1");
                if (ftNps)
                {
                    SupportedFeatures.Add("nps");
                }
            }
            else if (name == "time")
            {
                ftTime = (val == "1");
                if (ftTime)
                {
                    SupportedFeatures.Add("time");
                }
            }
            else if (name == "reuse")
            {
                ftReuse = (val == "1");
                if (ftReuse)
                {
                    SupportedFeatures.Add("reuse");
                }
            }
            else if (name == "myname")
            {
                if (Name == "XboardEngine")
                {
                    Name = val;
                }
            }
            else if (name == "variants")
            {
                clearVariants();
                string[] variants = val.Split(',');
                foreach (string str in variants)
                {
                    string variant = str.Trim();
                    if (variant != "")
                    {
                        addVariant(variant);
                    }
                }
            }
            else if (name == "name")
            {
                ftName = (val == "1");
                if (ftName)
                {
                    SupportedFeatures.Add("name");
                }
            }
            else if (name == "memory")
            {
                if (val == "1")
                {
                    addOption(new EngineSpinOption("memory", 32, 32, 0, 32768));
                    SupportedFeatures.Add("memory");
                }
            }
            else if (name == "smp")
            {
                if (val == "1")
                {
                    addOption(new EngineSpinOption("cores", 1, 1, 0, Environment.ProcessorCount));
                    SupportedFeatures.Add("smp");
                }
            }
            else if (name == "egt")
            {
                string[] splitVal = val.Split(',');
                foreach (string str in splitVal)
                {
                    string egtType = string.Format("egtpath {0}", str.Trim());
                    addOption(new EngineTextOption(egtType, null, null));
                }
            }
            else if (name == "option")
            {
                EngineOption option = parseOption(val);
                if (option == null || !option.IsValid())
                {
                    ;                     //qDebug() << "Invalid Xboard option from" << this->name() << ":" << val;
                }
                else
                {
                    addOption(option);
                }
            }
            else if (name == "done")
            {
                Write("accepted done", WriteMode.Unbuffered);
                initTimer.Stop();

                if (val == "1")
                {
                    initialize(this, null);
                }
                return;
            }
            else
            {
                Write("rejected " + name, WriteMode.Unbuffered);
                return;
            }

            Write("accepted " + name, WriteMode.Unbuffered);
        }