summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <Sinisa@sinisa.nasamreza.org>2002-11-08 17:05:30 +0200
committerunknown <Sinisa@sinisa.nasamreza.org>2002-11-08 17:05:30 +0200
commita0fa94827c69b0df13a89f53d2464302ee98490d (patch)
tree78de4619c58f5deeea26114e41e2d6d0655c8c25 /client
parent34d29fca2d1089ca2468645080a042f1ec1dd6f5 (diff)
parent91181f0905d3b87e660f2b05118b7f95b426b833 (diff)
downloadmariadb-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.c43
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));