package Path;
######################################################################
# (c) Michael Schilli 1999
######################################################################

use Cwd;
use strict;

###############################################################
# Absoluten Pfad aus relativem Pfad und aktuellem Directory 
# ermitteln: $abspath = Path::absolute($relpath);
###############################################################
sub absolute {
    my $relpath = shift;

    Path::cd(cwd(), $relpath);
}

###############################################################
# Relativ in ein neues Verzeichnis wechseln:
# $newpath = Path::cd($path, $chdir);
###############################################################
sub cd {
    my($from, $to) = @_;

    my $current = cwd();   # Aktuelles Verzeichnis sichern

                           # In Startverzeichnis wechseln
    Cwd::chdir($from) || return undef;

                           # Relativ in Zielverzeichnis
			   # wechseln
    Cwd::chdir($to) || (Cwd::chdir($current), return undef);
    
    my $retval = cwd();    # Zielverzeichnis sichern

    Cwd::chdir($current);  # Aktuelles Verzeichnis 
			   # zuruecksetzen
    return $retval;
}

1;
