Revise the design of the Path concept per peer review. Too many changes to

note individually but these essence of it is to not derive from
std::string, clarify the interface, and provide better documentation.
There is now also (untested) implementations for AIX, Darwin, and SunOS.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16078 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer
2004-08-29 05:24:01 +00:00
parent 81bc6e377e
commit 8e66595512
8 changed files with 1100 additions and 349 deletions

38
lib/System/SunOS/Path.cpp Normal file
View File

@@ -0,0 +1,38 @@
//===- llvm/System/SunOS/Path.cpp - SunOS Path Implementation ---*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file was developed by Reid Spencer and is distributed under the
// University of Illinois Open Source License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file provides the SunOS specific implementation of the Path class.
//
//===----------------------------------------------------------------------===//
//===----------------------------------------------------------------------===//
//=== WARNING: Implementation here must contain only SunOS specific code
//=== and must not be generic UNIX code (see ../Unix/Path.cpp)
//===----------------------------------------------------------------------===//
// Include the generic Unix implementation
#include "../Unix/Path.cpp"
namespace llvm {
using namespace sys;
bool
Path::is_valid() const {
if (path.empty())
return false;
char pathname[MAXPATHLEN];
if (0 == realpath(path.c_str(), pathname))
if (errno != EACCES && errno != EIO && errno != ENOENT && errno != ENOTDIR)
return false;
return true;
}
}
// vim: sw=2 smartindent smarttab tw=80 autoindent expandtab