public Enumeration listOptions() {
    Vector result = new Vector();
    
    Enumeration en = super.listOptions();
    while (en.hasMoreElements())
      result.addElement(en.nextElement());
    
    result.addElement(new Option(
        "\tFull name and options of the evaluator analyzed.\n"
        +"\teg: weka.attributeSelection.CfsSubsetEval",
        "eval", 1, "-eval name [options]"));
    
    result.addElement(new Option(
        "\tFull name and options of the search method analyzed.\n"
        +"\teg: weka.attributeSelection.Ranker",
        "search", 1, "-search name [options]"));
    
    result.addElement(new Option(
        "\tThe scheme to test, either the evaluator or the search method.\n"
        +"\t(Default: eval)",
        "test", 1, "-test <eval|search>"));
    
    if ((m_Evaluator != null) && (m_Evaluator instanceof OptionHandler)) {
      result.addElement(new Option("", "", 0, 
          "\nOptions specific to evaluator "
          + m_Evaluator.getClass().getName()
          + ":"));
      Enumeration enm = ((OptionHandler) m_Evaluator).listOptions();
      while (enm.hasMoreElements())
        result.addElement(enm.nextElement());
    }
    
    if ((m_Search != null) && (m_Search instanceof OptionHandler)) {
      result.addElement(new Option("", "", 0, 
          "\nOptions specific to search method "
          + m_Search.getClass().getName()
          + ":"));
      Enumeration enm = ((OptionHandler) m_Search).listOptions();
      while (enm.hasMoreElements())
        result.addElement(enm.nextElement());
    }
    
    return result.elements();
  }