VirtualBox

Changeset 1989 in kBuild for vendor/gnumake/current/dir.c


Ignore:
Timestamp:
Oct 28, 2008 11:02:45 PM (16 years ago)
Author:
bird
Message:

Load gnumake-2008-10-28-CVS into vendor/gnumake/current.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • vendor/gnumake/current/dir.c

    r900 r1989  
    11/* Directory hashing for GNU Make.
    22Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
    3 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
     31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
    44Foundation, Inc.
    55This file is part of GNU Make.
     
    77GNU Make is free software; you can redistribute it and/or modify it under the
    88terms of the GNU General Public License as published by the Free Software
    9 Foundation; either version 2, or (at your option) any later version.
     9Foundation; either version 3 of the License, or (at your option) any later
     10version.
    1011
    1112GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
     
    1415
    1516You should have received a copy of the GNU General Public License along with
    16 GNU Make; see the file COPYING.  If not, write to the Free Software
    17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
     17this program.  If not, see <http://www.gnu.org/licenses/>.  */
    1818
    1919#include "make.h"
     
    458458         Find its device and inode numbers, and look it up by them.  */
    459459
    460 #ifdef WINDOWS32
    461       /* Remove any trailing '\'.  Windows32 stat fails even on valid
    462          directories if they end in '\'. */
    463       if (p[-1] == '\\')
    464         p[-1] = '\0';
    465 #endif
    466 
    467460#ifdef VMS
    468461      r = vmsstat_dir (name, &st);
     462#elif defined(WINDOWS32)
     463      {
     464        char tem[MAXPATHLEN], *tstart, *tend;
     465
     466        /* Remove any trailing slashes.  Windows32 stat fails even on
     467           valid directories if they end in a slash. */
     468        memcpy (tem, name, p - name + 1);
     469        tstart = tem;
     470        if (tstart[1] == ':')
     471          tstart += 2;
     472        for (tend = tem + (p - name - 1);
     473             tend > tstart && (*tend == '/' || *tend == '\\');
     474             tend--)
     475          *tend = '\0';
     476
     477        r = stat (tem, &st);
     478      }
    469479#else
    470480      EINTRLOOP (r, stat (name, &st));
    471 #endif
    472 
    473 #ifdef WINDOWS32
    474       /* Put back the trailing '\'.  If we don't, we're permanently
    475          truncating the value!  */
    476       if (p[-1] == '\0')
    477         p[-1] = '\\';
    478481#endif
    479482
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette