[zypp-commit] r10158 - in /trunk/libzypp/zypp: RepoManager.cc target/rpm/RpmDb.cc
Author: jreidinger Date: Tue May 20 12:11:28 2008 New Revision: 10158 URL: http://svn.opensuse.org/viewcvs/zypp?rev=10158&view=rev Log: allow installation and refresh from repository with alias that contains ' or " (bnc #392426) Modified: trunk/libzypp/zypp/RepoManager.cc trunk/libzypp/zypp/target/rpm/RpmDb.cc Modified: trunk/libzypp/zypp/RepoManager.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/RepoManager.cc?rev=10158&r1=10157&r2=10158&view=diff ============================================================================== --- trunk/libzypp/zypp/RepoManager.cc (original) +++ trunk/libzypp/zypp/RepoManager.cc Tue May 20 12:11:28 2008 @@ -772,12 +772,17 @@ ManagedFile guard( solvfile, filesystem::unlink ); ostringstream cmd; + const char *toFile = str::gsub(solvfile.asString(),"\"","\\\"").c_str(); if ( repokind.toEnum() == RepoType::RPMPLAINDIR_e ) { - cmd << str::form( "repo2solv.sh \"%s\" > \"%s\"", info.baseUrlsBegin()->getPathName().c_str(), solvfile.c_str() ); + const char * from = str::gsub( + info.baseUrlsBegin()->getPathName(),"\"","\\\"").c_str(); + cmd << str::form( "repo2solv.sh \"%s\" > \"%s\"", from , toFile ); } else - cmd << str::form( "repo2solv.sh \"%s\" > \"%s\"", rawpath.c_str(), solvfile.c_str() ); - + { + const char * from = str::gsub(rawpath.asString(),"\"","\\\"").c_str(); + cmd << str::form( "repo2solv.sh \"%s\" > \"%s\"", from, toFile ); + } MIL << "Executing: " << cmd.str() << endl; ExternalProgram prog( cmd.str(), ExternalProgram::Stderr_To_Stdout ); Modified: trunk/libzypp/zypp/target/rpm/RpmDb.cc URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/target/rpm/RpmDb.cc?rev=10158&r1=10157&r2=10158&view=diff ============================================================================== --- trunk/libzypp/zypp/target/rpm/RpmDb.cc (original) +++ trunk/libzypp/zypp/target/rpm/RpmDb.cc Tue May 20 12:11:28 2008 @@ -57,7 +57,7 @@ { namespace { -const char* quoteInFilename_m = " \t"; +const char* quoteInFilename_m = " \t\'\""; inline string rpmQuoteFilename( const Pathname & path_r ) { string path( path_r.asString() ); -- To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org For additional commands, e-mail: zypp-commit+help@opensuse.org
participants (1)
-
jreidinger@svn.opensuse.org