|
|
|
@ -2875,6 +2875,41 @@ void do_system(struct st_command *command) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
SYNOPSIS |
|
|
|
set_wild_chars |
|
|
|
set true to set * etc. as wild char, false to reset |
|
|
|
|
|
|
|
DESCRIPTION |
|
|
|
Auxiliary function to set "our" wild chars before calling wild_compare |
|
|
|
This is needed because the default values are changed to SQL syntax |
|
|
|
in mysqltest_embedded. |
|
|
|
*/ |
|
|
|
|
|
|
|
void set_wild_chars (my_bool set) |
|
|
|
{ |
|
|
|
static char old_many= 0, old_one, old_prefix; |
|
|
|
|
|
|
|
if (set) |
|
|
|
{ |
|
|
|
if (wild_many == '*') return; // No need
|
|
|
|
old_many= wild_many; |
|
|
|
old_one= wild_one; |
|
|
|
old_prefix= wild_prefix; |
|
|
|
wild_many= '*'; |
|
|
|
wild_one= '?'; |
|
|
|
wild_prefix= 0; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if (! old_many) return; // Was not set
|
|
|
|
wild_many= old_many; |
|
|
|
wild_one= old_one; |
|
|
|
wild_prefix= old_prefix; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
SYNOPSIS |
|
|
|
do_remove_file |
|
|
|
@ -2951,6 +2986,10 @@ void do_remove_files_wildcard(struct st_command *command) |
|
|
|
dir_separator[0]= FN_LIBCHAR; |
|
|
|
dir_separator[1]= 0; |
|
|
|
dynstr_append(&ds_file_to_remove, dir_separator); |
|
|
|
|
|
|
|
/* Set default wild chars for wild_compare, is changed in embedded mode */ |
|
|
|
set_wild_chars(1); |
|
|
|
|
|
|
|
for (i= 0; i < (uint) dir_info->number_off_files; i++) |
|
|
|
{ |
|
|
|
file= dir_info->dir_entry + i; |
|
|
|
@ -2970,6 +3009,7 @@ void do_remove_files_wildcard(struct st_command *command) |
|
|
|
if (error) |
|
|
|
break; |
|
|
|
} |
|
|
|
set_wild_chars(0); |
|
|
|
my_dirend(dir_info); |
|
|
|
|
|
|
|
end: |
|
|
|
@ -3211,6 +3251,7 @@ static int get_list_files(DYNAMIC_STRING *ds, const DYNAMIC_STRING *ds_dirname, |
|
|
|
/* Note that my_dir sorts the list if not given any flags */ |
|
|
|
if (!(dir_info= my_dir(ds_dirname->str, MYF(0)))) |
|
|
|
DBUG_RETURN(1); |
|
|
|
set_wild_chars(1); |
|
|
|
for (i= 0; i < (uint) dir_info->number_off_files; i++) |
|
|
|
{ |
|
|
|
file= dir_info->dir_entry + i; |
|
|
|
@ -3224,6 +3265,7 @@ static int get_list_files(DYNAMIC_STRING *ds, const DYNAMIC_STRING *ds_dirname, |
|
|
|
dynstr_append(ds, file->name); |
|
|
|
dynstr_append(ds, "\n"); |
|
|
|
} |
|
|
|
set_wild_chars(0); |
|
|
|
my_dirend(dir_info); |
|
|
|
DBUG_RETURN(0); |
|
|
|
} |
|
|
|
|