// Copyright (c) 2004  David Muse
// See the file COPYING for more information

#include <rudiments/directory.h>
#include <rudiments/file.h>
#include <rudiments/permissions.h>
#include <stdio.h>

#ifdef RUDIMENTS_NAMESPACE
using namespace rudiments;
#endif

int main(int argc, const char **argv) {

	directory::create("testdir",permissions::evalPermString("rwxr-xr-x"));
	file	f;
	f.create("testdir/testfile1",permissions::evalPermString("rw-r--r--"));
	f.close();
	f.create("testdir/testfile2",permissions::evalPermString("rw-r--r--"));
	f.close();


	printf("Contents of testdir:\n");
	directory	d;
	d.open("testdir");

	char	*name;
	for (off64_t index=0; (name=d.getChildName(index)); index++) {
		printf("%lld: %s\n",index,name);
		delete[] name;
	}

	printf("%d entries\n",d.getChildCount());

	char	*cwd=directory::getCurrentWorkingDirectory();
	printf("cwd=%s\n",cwd);
	delete[] cwd;

	directory::changeDirectory("testdir");

	cwd=directory::getCurrentWorkingDirectory();
	printf("cwd=%s\n",cwd);
	delete[] cwd;

	directory::changeDirectory("..");

	cwd=directory::getCurrentWorkingDirectory();
	printf("cwd=%s\n",cwd);
	delete[] cwd;

	file::remove("testdir/testfile1");
	file::remove("testdir/testfile2");
	directory::remove("testdir");

	printf("maxFileNameLength(/usr/local)=%d\n",
			directory::maxFileNameLength("/usr/local"));
	printf("maxPathLength(/usr/local)=%d\n",
			directory::maxPathLength("/usr/local"));
	printf("canAccessLongFileNames(/usr/local)=%d\n",
			directory::canAccessLongFileNames("/usr/local"));
}


syntax highlighted by Code2HTML, v. 0.9.1