Commit 1b7de584 authored by unknown's avatar unknown
Browse files

Merge jamppa@bk-internal.mysql.com:/home/bk/mysql-5.0

into  ua141d10.elisa.omakaista.fi:/home/my/bk/mysql-5.0

parents 970150d1 598d6422
Loading
Loading
Loading
Loading
+33 −12
Original line number Diff line number Diff line
@@ -358,7 +358,8 @@ invalid value '%s'\n",
	      continue;
	    }
	    get_one_option(optp->id, optp,
			   value ? (char*) "1" : disabled_my_option);
			   *((my_bool*) value) ?
			   (char*) "1" : disabled_my_option);
	    continue;
	  }
	  argument= optend;
@@ -599,16 +600,27 @@ static int setval(const struct my_option *opts, gptr *value, char *argument,
  return 0;
}


/* 
  function: findopt
  Find option

  Arguments: opt_pattern, length of opt_pattern, opt_struct, first found
  name (ffname)
  SYNOPSIS
    findopt()
    optpat	Prefix of option to find (with - or _)
    length	Length of optpat
    opt_res	Options
    ffname	Place for pointer to first found name

  IMPLEMENTATION
    Go through all options in the my_option struct. Return number
    of options found that match the pattern and in the argument
    list the option found, if any. In case of ambiguous option, store
    the name in ffname argument

    RETURN
    0    No matching options
    #   Number of matching options
        ffname points to first matching option
*/

static int findopt(char *optpat, uint length,
@@ -623,14 +635,23 @@ static int findopt(char *optpat, uint length,
    if (!getopt_compare_strings(opt->name, optpat, length)) /* match found */
    {
      (*opt_res)= opt;
      if (!count)
	*ffname= (char *) opt->name;	/* We only need to know one prev */
      if (!opt->name[length])		/* Exact match */
	return 1;
      if (!count || strcmp(*ffname, opt->name)) /* Don't count synonyms */
      if (!count)
      {
	count= 1;
	*ffname= (char *) opt->name;	/* We only need to know one prev */
      }
      else if (strcmp(*ffname, opt->name))
      {
	/*
	  The above test is to not count same option twice
	  (see mysql.cc, option "help")
	*/
	count++;
      }
    }
  }
  return count;
}