Commit f200c567 authored by Sinisa@sinisa.nasamreza.org's avatar Sinisa@sinisa.nasamreza.org
Browse files

Merge sinisa@work.mysql.com:/home/bk/mysql-4.0

into sinisa.nasamreza.org:/mnt/work/mysql-4.0
parents 0f14b3c2 d54bb36d
Loading
Loading
Loading
Loading
+30 −13
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ static my_string opt_mysql_unix_port=0;
int main(int argc, char **argv)
{
  int error;
  my_bool first_argument_uses_wildcards=0;
  char *wild;
  MYSQL mysql;
  MY_INIT(argv[0]);
@@ -58,19 +59,35 @@ int main(int argc, char **argv)
  get_options(&argc,&argv);

  wild=0;
  if (argc && strcont(argv[argc-1],"*?%_"))
  if (argc)
  {
    char *pos;

    wild=argv[--argc];
    for (pos=wild ; *pos ; pos++)
    {					/* Unix wildcards to sql  */
      if (*pos == '*')
    char *pos= argv[argc-1], *to;
    for (to= pos ; *pos ; pos++, to++)
    {
      switch (*pos)
      {
      case '*':
	*pos= '%';
      else if (*pos == '?')
	first_argument_uses_wildcards= 1;
	break;
      case '?':
	*pos= '_';
	first_argument_uses_wildcards= 1;
	break;
      case '%':
      case '_':
	first_argument_uses_wildcards= 1;
	break;
      case '\\':
	pos++;
      default: break;
      }
      *to= *pos;
    }    
    *to= *pos; // just to copy a '\0'  if '\\' was used
  }
  if (first_argument_uses_wildcards)
    wild= argv[--argc];
  else if (argc == 3)			/* We only want one field */
    wild= argv[--argc];

@@ -88,7 +105,7 @@ int main(int argc, char **argv)
		  opt_ssl_capath, opt_ssl_cipher);
#endif
  if (!(mysql_real_connect(&mysql,host,user,opt_password,
			   argv[0],opt_mysql_port,opt_mysql_unix_port,
			   (first_argument_uses_wildcards) ? "" : argv[0],opt_mysql_port,opt_mysql_unix_port,
			   0)))
  {
    fprintf(stderr,"%s: %s\n",my_progname,mysql_error(&mysql));