Commit 6b964f0f authored by unknown's avatar unknown
Browse files

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
parent 1da5382a
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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 */
+1 −1
Original line number Diff line number Diff line
@@ -208,7 +208,7 @@ int test_if_hard_path(register const char *dir_name)

my_bool has_path(const char *name)
{
  return test(strchr(name, FN_LIBCHAR))
  return test(strchr(name, FN_LIBCHAR)) || test(strchr(name,'/'))
#ifdef FN_DEVCHAR
    || test(strchr(name, FN_DEVCHAR))
#endif