Author: jkupec Date: Wed Apr 30 14:18:54 2008 New Revision: 9905 URL: http://svn.opensuse.org/viewcvs/zypp?rev=9905&view=rev Log: - fixed filesystem::expandlink(Pathname) (bnc #368477) Added: trunk/libzypp/devel/devel.jkupec/data/ trunk/libzypp/devel/devel.jkupec/data/pathinfo/ trunk/libzypp/devel/devel.jkupec/data/pathinfo/afile trunk/libzypp/devel/devel.jkupec/data/pathinfo/alink (with props) trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdir/ trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdir/anotherfile trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdirlink (with props) trunk/libzypp/devel/devel.jkupec/pathinfo.cc Modified: trunk/libzypp/devel/devel.jkupec/CMakeLists.txt trunk/libzypp/zypp/PathInfo.cc Modified: trunk/libzypp/devel/devel.jkupec/CMakeLists.txt URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.jkupec/CMakeLists.txt?rev=9905&r1=9904&r2=9905&view=diff ============================================================================== --- trunk/libzypp/devel/devel.jkupec/CMakeLists.txt (original) +++ trunk/libzypp/devel/devel.jkupec/CMakeLists.txt Wed Apr 30 14:18:54 2008 @@ -23,3 +23,6 @@ ADD_EXECUTABLE( poolquery poolquery.cc ) TARGET_LINK_LIBRARIES( poolquery zypp ) + +ADD_EXECUTABLE( pathinfo pathinfo.cc ) +TARGET_LINK_LIBRARIES( pathinfo zypp ) Added: trunk/libzypp/devel/devel.jkupec/data/pathinfo/afile URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.jkupec/data/pathinfo/afile?rev=9905&view=auto ============================================================================== --- trunk/libzypp/devel/devel.jkupec/data/pathinfo/afile (added) +++ trunk/libzypp/devel/devel.jkupec/data/pathinfo/afile Wed Apr 30 14:18:54 2008 @@ -0,0 +1 @@ +a file \ No newline at end of file Added: trunk/libzypp/devel/devel.jkupec/data/pathinfo/alink URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.jkupec/data/pathinfo/alink?rev=9905&view=auto ============================================================================== --- trunk/libzypp/devel/devel.jkupec/data/pathinfo/alink (added) +++ trunk/libzypp/devel/devel.jkupec/data/pathinfo/alink Wed Apr 30 14:18:54 2008 @@ -0,0 +1 @@ +link afile \ No newline at end of file Added: trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdir/anotherfile URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdir/anotherfile?rev=9905&view=auto ============================================================================== --- trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdir/anotherfile (added) +++ trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdir/anotherfile Wed Apr 30 14:18:54 2008 @@ -0,0 +1 @@ +another file \ No newline at end of file Added: trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdirlink URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdirlink?rev=9905&view=auto ============================================================================== --- trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdirlink (added) +++ trunk/libzypp/devel/devel.jkupec/data/pathinfo/subdirlink Wed Apr 30 14:18:54 2008 @@ -0,0 +1 @@ +link subdir/anotherfile \ No newline at end of file Added: trunk/libzypp/devel/devel.jkupec/pathinfo.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/devel/devel.jkupec/pathinfo.cc?rev=9905&view=auto ============================================================================== --- trunk/libzypp/devel/devel.jkupec/pathinfo.cc (added) +++ trunk/libzypp/devel/devel.jkupec/pathinfo.cc Wed Apr 30 14:18:54 2008 @@ -0,0 +1,29 @@ +#include <iostream> + +#include "zypp/Pathname.h" +#include "zypp/PathInfo.h" + +using std::cout; +using std::endl; +using std::string; +using namespace zypp; + +int main (int argc, const char ** argv) +{ + Pathname datadir(SRC_DIR "/data/pathinfo"); + Pathname alink = datadir / "alink"; + PathInfo alinkinfo(alink); + + cout << "alink exists: " << alinkinfo.isExist() << endl; + Pathname alinkExp = filesystem::expandlink(alink); + cout << "alink expands to: " << alinkExp << endl; + cout << "alinkExp exists: " << PathInfo(alinkExp).isExist() << endl; + + Pathname subdirlink = datadir / "subdirlink"; + PathInfo subdirlinkinfo(subdirlink); + + cout << "subdirlink exists: " << subdirlinkinfo.isExist() << endl; + Pathname subdirlinkExp = filesystem::expandlink(subdirlink); + cout << "subdirlink expands to: " << subdirlinkExp << endl; + cout << "subdirlinkExp exists: " << PathInfo(subdirlinkExp).isExist() << endl; +} Modified: trunk/libzypp/zypp/PathInfo.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/PathInfo.cc?rev=9905&r1=9904&r2=9905&view=diff ============================================================================== --- trunk/libzypp/zypp/PathInfo.cc (original) +++ trunk/libzypp/zypp/PathInfo.cc Wed Apr 30 14:18:54 2008 @@ -768,8 +768,9 @@ for (count = level_limit; info.isLink() && count; count--) { - DBG << "following symlink " << path << std::endl; - path = readlink(path); + DBG << "following symlink " << path; + path = path.dirname() / readlink(path); + DBG << "->" << path << std::endl; info = PathInfo(path, PathInfo::LSTAT); } @@ -785,7 +786,7 @@ // check for a broken link if (PathInfo(path).isExist()) return path; - // broken link, return and empty path + // broken link, return an empty path else { ERR << path << " is broken (expanded from " << path_r << ")" << endl; -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org