pcs         98/03/02 02:57:59

  Modified:    src      CHANGES
               src/os/win32 util_win32.c
  Log:
  Revert patch which fixed PR#1712 but broken the #! method of specifying
  an interpreter for a script. PR#1712 will be reopened.
  
  Revision  Changes    Path
  1.677     +0 -4      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.676
  retrieving revision 1.677
  diff -u -r1.676 -r1.677
  --- CHANGES   1998/03/02 06:51:01     1.676
  +++ CHANGES   1998/03/02 10:57:57     1.677
  @@ -216,10 +216,6 @@
        when the client doesn't otherwise specify an encoding.
        [Ronald Tschalaer <[EMAIL PROTECTED]>]
   
  -  *) WIN32: Append a '.' to extensionless executables in spawn[lv]e*
  -     replacements, which makes them work.
  -     [Sam Robb <[EMAIL PROTECTED]>, Ben Laurie]
  -
     *) Sort out problems with canonical filename handling happening too late.
        [Dean Gaudet, Ben Laurie]
   
  
  
  
  1.9       +13 -26    apache-1.3/src/os/win32/util_win32.c
  
  Index: util_win32.c
  ===================================================================
  RCS file: /export/home/cvs/apache-1.3/src/os/win32/util_win32.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- util_win32.c      1998/02/08 18:50:51     1.8
  +++ util_win32.c      1998/03/02 10:57:59     1.9
  @@ -12,11 +12,17 @@
       char *szFilePart;
       WIN32_FIND_DATA d;
       HANDLE h;
  +    int add_trailing_slash = 0;
   
       n = GetFullPathName(szFile, sizeof buf, buf, &szFilePart);
       assert(n);
       assert(n < sizeof buf);
   
  +    if (*szFile && szFile[strlen(szFile)-1] == '/') {
  +        add_trailing_slash = 1;
  +    }
  +        
  +
       if (!strchr(buf, '*') && !strchr(buf, '?')) {
           h = FindFirstFile(buf, &d);
           if(h != INVALID_HANDLE_VALUE)
  @@ -52,6 +58,9 @@
           strlwr(d.cFileName);
           strcat(szCanon, d.cFileName);
       }
  +    if (add_trailing_slash) {
  +        strcat(szCanon, "/");
  +    }
   }
   
   API_EXPORT(char *) os_canonical_filename(pool *pPool, const char *szFile)
  @@ -85,11 +94,10 @@
       return stat(szPath, pStat);
   }
   
  -/* Fix three really crap problems with Win32 spawn[lv]e*:
  +/* Fix two really crap problems with Win32 spawn[lv]e*:
    *
    *  1. Win32 doesn't deal with spaces in argv.
    *  2. Win95 doesn't like / in cmdname.
  - *  3. Win32 wants a '.' appended to extensionless files.
    */
   
   #undef _spawnv
  @@ -100,20 +108,13 @@
       const char *szArg;
       char *szCmd;
       char *s;
  -    int len=strlen(cmdname);
       
  -    szCmd = _alloca(len+2);
  +    szCmd = _alloca(strlen(cmdname)+1);
       strcpy(szCmd, cmdname);
       for (s = szCmd; *s; ++s)
           if (*s == '/')
               *s = '\\';
       
  -    s = strrchr(szCmd, '.');
  -    if (!s || s < strrchr(szCmd, '\\')) {
  -        szCmd[len] = '.';
  -        szCmd[len+1] = '\0';
  -    }
  -
       for (n=0; argv[n]; ++n)
           ;
   
  @@ -146,20 +147,13 @@
       const char *szArg;
       char *szCmd;
       char *s;
  -    int len=strlen(cmdname);
       
  -    szCmd = _alloca(len+2);
  +    szCmd = _alloca(strlen(cmdname)+1);
       strcpy(szCmd, cmdname);
       for (s = szCmd; *s; ++s)
           if (*s == '/')
               *s = '\\';
       
  -    s = strrchr(szCmd, '.');
  -    if (!s || s < strrchr(szCmd, '\\')) {
  -        szCmd[len] = '.';
  -        szCmd[len+1] = '\0';
  -    }
  -
       for (n = 0; argv[n] ; ++n)
           ;
   
  @@ -193,19 +187,12 @@
       const char *const *aszEnv;
       char *szCmd;
       char *s;
  -    int len=strlen(cmdname);
       
  -    szCmd = _alloca(len+2);
  +    szCmd = _alloca(strlen(cmdname)+1);
       strcpy(szCmd, cmdname);
       for (s = szCmd; *s; ++s)
           if(*s == '/')
               *s = '\\';
  -
  -    s = strrchr(szCmd, '.');
  -    if (!s || s < strrchr(szCmd, '\\')) {
  -        szCmd[len] = '.';
  -        szCmd[len+1] = '\0';
  -    }
   
       va_start(vlist, cmdname);
       for (n = 0; va_arg(vlist, const char *); ++n)
  
  
  

Reply via email to