/* a public domain rename, by ERS */

#include <limits.h>
#include <errno.h>
#include <osbind.h>
#include <string.h>
#include <unistd.h>
#include "lib.h"

int rename(_oldname, _newname)
	const char *_oldname, *_newname;
{
	char oldname[PATH_MAX], newname[PATH_MAX];
	int rval;

	if (!strcmp(_oldname, _newname)) {
		rval = 0;	/* no-op */
	}

	if (!access(_newname, 0)) {	/* new name already exists */
		if (unlink(_newname))
			return -1;
	}

	_unx2dos(_oldname, oldname);
	_unx2dos(_newname, newname);

	if ( (rval = Frename(0, oldname, newname)) < 0 ) {
		errno = -rval;
		rval = -1;
	}
	return rval;
}
