diff options
author | unknown <Sinisa@sinisa.nasamreza.org> | 2002-11-08 17:05:30 +0200 |
---|---|---|
committer | unknown <Sinisa@sinisa.nasamreza.org> | 2002-11-08 17:05:30 +0200 |
commit | a0fa94827c69b0df13a89f53d2464302ee98490d (patch) | |
tree | 78de4619c58f5deeea26114e41e2d6d0655c8c25 /client | |
parent | 34d29fca2d1089ca2468645080a042f1ec1dd6f5 (diff) | |
parent | 91181f0905d3b87e660f2b05118b7f95b426b833 (diff) | |
download | mariadb-git-a0fa94827c69b0df13a89f53d2464302ee98490d.tar.gz |
Merge sinisa@work.mysql.com:/home/bk/mysql-4.0
into sinisa.nasamreza.org:/mnt/work/mysql-4.0
Diffstat (limited to 'client')
-rw-r--r-- | client/mysqlshow.c | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/client/mysqlshow.c b/client/mysqlshow.c index 5475fc7b531..0b47e06534f 100644 --- a/client/mysqlshow.c +++ b/client/mysqlshow.c @@ -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,21 +59,37 @@ 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 == '*') - *pos='%'; - else if (*pos == '?') - *pos='_'; - } + char *pos= argv[argc-1], *to; + for (to= pos ; *pos ; pos++, to++) + { + switch (*pos) + { + case '*': + *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]; + wild= argv[--argc]; if (argc > 2) { @@ -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)); |