*** msqldb.c        Mon Feb  3 08:32:16 1997
--- msqldb.c.orig        Mon Jan 20 01:36:44 1997
***************
*** 409,415 ****
--- 409,420 ----
          char        path[255];
  
          (void)sprintf(path,"%s/msqldb/%s/%s.dat",msqlHomeDir,DB,table);
+ #ifdef __EMX__
+         /* OS/2 needs binary mode */
+         return(open(path,O_RDWR | O_BINARY));
+ #else        
          return(open(path,O_RDWR));
+ #endif        
  }
  
  
***************
*** 423,429 ****
--- 428,439 ----
          char        path[255];
  
          (void)sprintf(path,"%s/msqldb/%s/%s.key",msqlHomeDir,DB,table);
+ #ifdef __EMX__        
+         /* OS/2 needs binary mode */
+         return(open(path,O_RDWR | O_BINARY));
+ #else        
          return(open(path,O_RDWR));
+ #endif        
  }
  
  #else
***************
*** 435,441 ****
--- 445,456 ----
          char        path[255];
  
          (void)sprintf(path,"%s/msqldb/%s/%s.key",msqlHomeDir,DB,table);
+ #ifdef __EMX__
+         /* OS/2 needs binary mode */
+         return(dbopen(path,O_RDWR|O_CREAT|O_BINARY,0700,DB_BTREE,NULL));
+ #else        
          return(dbopen(path,O_RDWR|O_CREAT,0700,DB_BTREE,NULL));
+ #endif        
  }
  
  #endif
***************
*** 459,465 ****
--- 474,485 ----
          char        path[255];
  
          (void)sprintf(path,"%s/msqldb/%s/%s.stk",msqlHomeDir,DB,table);
+ #ifdef __EMX__
+         /* OS/2 needs binary mode */
+         return(open(path,O_RDWR | O_CREAT | O_BINARY, 0600));
+ #else        
          return(open(path,O_RDWR | O_CREAT, 0600));
+ #endif        
  }
  
  
***************
*** 956,962 ****
--- 976,987 ----
  
          msqlTrace(TRACE_IN,"readTableDef()");
          (void)sprintf(path,"%s/msqldb/%s/%s.def",msqlHomeDir,DB,table);
+ #ifdef __EMX__
+         /* OS/2 needs binary mode */
+         fd = open(path,O_RDONLY|O_BINARY,0);
+ #else        
          fd = open(path,O_RDONLY,0);
+ #endif        
          if (fd < 0)
          {
                  sprintf(errMsg,BAD_TABLE_ERROR,table);
***************
*** 1055,1061 ****
--- 1080,1091 ----
                  return(NULL);
          }
          (void)strcpy(new->table,tmpfile);
+ #ifdef __EMX__
+         /* OS/2 needs binary mode */
+         fd = open(path,O_RDWR|O_CREAT|O_TRUNC|O_BINARY, 0700);
+ #else        
          fd = open(path,O_RDWR|O_CREAT|O_TRUNC, 0700);
+ #endif        
          if (fd < 0)
          {
                  sprintf(errMsg,TMP_CREATE_ERROR);
