diff options
author | unknown <reggie@mdk10.(none)> | 2005-05-23 11:53:16 -0500 |
---|---|---|
committer | unknown <reggie@mdk10.(none)> | 2005-05-23 11:53:16 -0500 |
commit | 6b964f0f102efb51c761091a4ee8f715604fb78a (patch) | |
tree | 3153a514a15fc0a00b4cda2dcc8a351985d39566 /myisammrg | |
parent | 1da5382a9fa37ffd9ebdf30b74b0a515af879a64 (diff) | |
download | mariadb-git-6b964f0f102efb51c761091a4ee8f715604fb78a.tar.gz |
BUG# 10687: MERGE Engine fails on Windows
This is a replacement for the original patch given by Ingo. This one comes
from Monty.
The problem is that merge files now use unix style pathnames on all
platforms. The merge file open code was not properly converting those
pathnames back to non-unix when necessary.
myisammrg/myrg_open.c:
use fn_format to convert pathnames if the files in the merge file have a pathname
mysys/my_getwd.c:
add a test for '/' in the code that determines if a string inlucdes a pathname
Diffstat (limited to 'myisammrg')
-rw-r--r-- | myisammrg/myrg_open.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/myisammrg/myrg_open.c b/myisammrg/myrg_open.c index 0dc2f4f9768..f9cdc2bb205 100644 --- a/myisammrg/myrg_open.c +++ b/myisammrg/myrg_open.c @@ -67,7 +67,7 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) while ((length=my_b_gets(&file,buff,FN_REFLEN-1))) { if ((end=buff+length)[-1] == '\n') - end[-1]='\0'; + *--end='\0'; if (!buff[0]) continue; /* Skip empty lines */ if (buff[0] == '#') @@ -86,6 +86,8 @@ MYRG_INFO *myrg_open(const char *name, int mode, int handle_locking) sizeof(name_buff)-1-dir_length)); VOID(cleanup_dirname(buff,name_buff)); } + else + fn_format(buff, buff, "", "", 0); if (!(isam=mi_open(buff,mode,(handle_locking?HA_OPEN_WAIT_IF_LOCKED:0)))) goto err; if (!m_info) /* First file */ |