ben         97/10/21 02:12:15

  Modified:    src/main conf.h
               src/os/win32 os.h util_win32.c
  Log:
  Work around buggy stat() implementation on Win95.
  
  Revision  Changes    Path
  1.148     +4 -1      apachen/src/main/conf.h
  
  Index: conf.h
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/conf.h,v
  retrieving revision 1.147
  retrieving revision 1.148
  diff -u -r1.147 -r1.148
  --- conf.h    1997/10/07 05:53:39     1.147
  +++ conf.h    1997/10/21 09:12:11     1.148
  @@ -56,6 +56,10 @@
    */
   
   
  +/* Have to include sys/stat.h before ../os/win32/os.h so we can override
  +stat() properly */
  +#include <sys/stat.h>
  +
   #ifdef WIN32
   #include "../os/win32/os.h"
   #else
  @@ -713,7 +717,6 @@
   #include <stdio.h>
   #include <stdlib.h>
   #include <string.h>
  -#include <sys/stat.h>
   #include <ctype.h>
   #if !defined(MPE) && !defined(WIN32)
   #include <sys/file.h>
  
  
  
  1.6       +2 -0      apachen/src/os/win32/os.h
  
  Index: os.h
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/os/win32/os.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- os.h      1997/09/14 14:20:47     1.5
  +++ os.h      1997/10/21 09:12:13     1.6
  @@ -80,3 +80,5 @@
     return file && (file[0] == '/' || file[1] == ':');
   }
   
  +#define stat(f,ps)  os_stat(f,ps)
  +API_EXPORT(int) os_stat(const char *szPath,struct stat *pStat);
  
  
  
  1.2       +25 -0     apachen/src/os/win32/util_win32.c
  
  Index: util_win32.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/os/win32/util_win32.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- util_win32.c      1997/08/18 10:59:06     1.1
  +++ util_win32.c      1997/10/21 09:12:14     1.2
  @@ -1,5 +1,6 @@
   #include <windows.h>
   #include <assert.h>
  +#include <sys/stat.h>
   
   #include "httpd.h"
   
  @@ -60,4 +61,28 @@
       sub_canonical_filename(buf,szFile);
       strlwr(buf);
       return pstrdup(pPool,buf);
  +}
  +
  +/*
  +Win95 doesn't like trailing /s. NT and Unix don't mind. This works around
  +the problem
  +*/
  +
  +#undef stat
  +API_EXPORT(int) os_stat(const char *szPath,struct stat *pStat)
  +{
  +    int n;
  +
  +    n=strlen(szPath);
  +    if(szPath[n-1] == '\\' || szPath[n-1] == '/')
  +     {
  +        char buf[_MAX_PATH];
  +
  +        ap_assert(n < _MAX_PATH);
  +     strcpy(buf,szPath);
  +     buf[n-1]='\0';
  +
  +        return stat(buf,pStat);
  +     }
  +    return stat(szPath,pStat);
   }
  
  
  

Reply via email to