hanchenye-llvm-project/llvm/lib/System/Path.cpp

61 lines
1.6 KiB
C++
Raw Normal View History

//===-- Path.cpp - Implement OS Path Concept --------------------*- 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 header file implements the operating system Path concept.
//
//===----------------------------------------------------------------------===//
#include "llvm/System/Path.h"
namespace llvm {
namespace sys {
//===----------------------------------------------------------------------===//
//=== WARNING: Implementation here must contain only TRULY operating system
//=== independent code.
//===----------------------------------------------------------------------===//
bool
Path::is_valid() const {
if ( empty() ) return false;
return true;
}
void
Path::fill( char* buffer, unsigned bufflen ) const {
unsigned pathlen = length();
assert( bufflen > pathlen && "Insufficient buffer size" );
unsigned copylen = pathlen <? (bufflen - 1);
this->copy(buffer, copylen, 0 );
buffer[ copylen ] = 0;
}
void
Path::make_directory() {
char end[2];
end[0] = '/';
end[1] = 0;
if ( empty() )
this->assign( end );
else if ( (*this)[length()-1] != '/')
this->append( end );
}
void
Path::make_file() {
if ( (*this)[length()-1] == '/')
this->erase( this->length()-1, 1 );
}
// Include the truly platform-specific parts of this class.
#include "platform/Path.cpp"
}
}
// vim: sw=2