summaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorunknown <msvensson@neptunus.(none)>2006-11-13 16:39:44 +0100
committerunknown <msvensson@neptunus.(none)>2006-11-13 16:39:44 +0100
commit8b01c318c099f065ec7895efe887a305eca3017e (patch)
treed0652cf71d2ea41c2ddda9c8c1096f5403041bd7 /client
parent3477b50a329fa5f60f93741884bd92a94158ce83 (diff)
parent236ed28ebfc9168e3a249b4afe20f0f9d19003e9 (diff)
downloadmariadb-git-8b01c318c099f065ec7895efe887a305eca3017e.tar.gz
Merge bk-internal:/home/bk/mysql-5.0-maint
into neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint client/mysql_upgrade.c: Auto merged mysql-test/mysql-test-run.pl: Auto merged
Diffstat (limited to 'client')
-rw-r--r--client/mysql_upgrade.c37
1 files changed, 16 insertions, 21 deletions
diff --git a/client/mysql_upgrade.c b/client/mysql_upgrade.c
index deeeb47851d..849cef2287c 100644
--- a/client/mysql_upgrade.c
+++ b/client/mysql_upgrade.c
@@ -386,18 +386,18 @@ find_file(const char *name, const char *root, uint flags, char *result, size_t l
cp= strmake(result, root, len);
if (cp[-1] != FN_LIBCHAR)
- *cp= FN_LIBCHAR;
+ *cp++= FN_LIBCHAR;
ret= 1;
va_start(va, len);
subdir= (!(flags & MY_SEARCH_SELF)) ? va_arg(va, char *) : "";
- while (ret && subdir)
+ while (subdir)
{
MY_DIR *dir;
FILEINFO *match;
char *cp1;
- cp1= strnmov(cp + 1, subdir, len - (cp - result) - 1);
+ cp1= strnmov(cp, subdir, len - (cp - result) - 1);
dir= my_dir(result, (flags & MY_ISDIR) ? MY_WANT_STAT : MYF(0));
if (dir)
@@ -406,25 +406,20 @@ find_file(const char *name, const char *root, uint flags, char *result, size_t l
sizeof(FILEINFO), (qsort_cmp)comp_names);
if (match)
{
- if (!(flags & MY_PARENT))
- {
- if (cp1[-1] != FN_LIBCHAR)
+ ret= (flags & MY_ISDIR) ? !MY_S_ISDIR(match->mystat->st_mode) : 0;
+ if (!ret)
+ {
+ if (cp1[-1] != FN_LIBCHAR)
*cp1++= FN_LIBCHAR;
- strnmov(cp1, name, len - (cp1 - result));
- }
- else
- {
- if (cp1[-1] == FN_LIBCHAR)
- --cp1;
- while (*--cp1 == FN_LIBCHAR)
- {}
- *++cp1= FN_LIBCHAR;
- *++cp1= '\0';
+
+ if (!(flags & MY_PARENT))
+ strnmov(cp1, name, len - (cp1 - result));
+ else
+ *cp1= '\0';
+
+ my_dirend(dir);
+ break;
}
- if (flags & MY_ISDIR)
- ret= !MY_S_ISDIR(match->mystat->st_mode);
- else
- ret= 0;
}
my_dirend(dir);
}
@@ -484,7 +479,7 @@ int main(int argc, char **argv)
|| find_file(mysqld_name, basedir, MYF(0), path, sizeof(path),
"bin", "libexec", NullS))
{
- my_strdup((gptr)basedir, MYF(0));
+ my_free((gptr)basedir, MYF(0));
basedir= (char *)DEFAULT_MYSQL_HOME;
}
}