#############################################################################
#
#  Copyright (c) 1992 Comdisco Systems Inc.
#  All rights reserved.
#
#  Redistribution and use in source and binary forms, with or without
#  modification, are permitted provided that the following conditions
#  are met:
#  1. Redistributions of source code must retain the above copyright
#     notice, this list of conditions and the following disclaimer.
#  2. Redistributions in binary form must reproduce the above copyright
#     notice, this list of conditions and the following disclaimer in the
#     documentation and/or other materials provided with the distribution.
#  3. All advertising materials mentioning features or use of this software
#     must display the following acknowledgement:
#       This product includes software developed by the Comdisco Systems Inc.
#  4. The name of Comdisco may not be used to endorse or promote products
#     derived from this software without specific prior written permission.
#
#  THIS SOFTWARE IS PROVIDED BY THE COMDISCO SYSTEMS INC ``AS IS'' AND
#  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
#  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
#  ARE DISCLAIMED.  IN NO EVENT SHALL COMDISCO SYSTEMS INC BE LIABLE
#  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
#  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
#  OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
#  HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
#  LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
#  OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
#  SUCH DAMAGE.
#
# This copyright notice derrived from material copyrighted by the Regents
# of the University of California.
#
#############################################################################

sub dirname 
{
	local($path) = @_;
	local($chopped);
	local($xtra);

	if ($host eq 'apollo') {
		return '//' if $path =~ m,^///*$,;
		return '//' if $path =~ m,^//[^/]*$,;
	}
	return '/' if $path =~ m,^/[^/]*$,;
	return $1 if $path =~ m,^(.*)/[^/]*$,;
	return ".";
}

sub basename
{
	local($path) = @_;

	return '' unless $path =~ m,(^|/)([^/]+)$,;
	return $2 ;
}


# this taken from simplify.pl ...
sub simplify 
{
	local(@comps,$comp);
	local(@new,@pre);
	local($s,$ss);
	local($leadingSlash);
	local($leadingSlashSlash);
	local($trailingSlash);
	for $_ (@_) {
		next unless $_;

		$trailingSlash = m=[^/].*/$=;
		$leadingSlash = m=^/=;
		$leadingSlashSlash = ($os'slashslash && m=^//=);

		@comps = (split(/\/+/,$_));
		shift(@comps) if $leadingSlash;

		@new = ();
		@pre = ();

		while ($comp = shift(@comps)) {
			next if $comp eq '.';
			if ($comp eq '..') {
				if (@new) {
					pop(@new);
				} elsif ($os'slashslash && $leadingSlash && !$leadingSlashSlash) {
					$leadingSlashSlash = 1;
				} elsif (! $leadingSlash) {
					push(@pre,$comp);
				}
				next;
			}
			push(@new,$comp);
			next;
		}

		$_ = ($leadingSlash ? "/" : "") . ($leadingSlashSlash ? "/" : "") . join('/',@pre,@new);
		$_ = '.' unless $_;
	}
}


1;