]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/contrib/configuration.cc
* Fix typos in manpages. Thanks to Daniel Leidert for the fixes
[apt.git] / apt-pkg / contrib / configuration.cc
index 3109fd7a58649b1775ec97d01d8807df5d40cb14..da57c2054cdfbbd389b8aed86a8a0e89461060cd 100644 (file)
@@ -173,6 +173,11 @@ string Configuration::Find(const char *Name,const char *Default) const
  */
 string Configuration::FindFile(const char *Name,const char *Default) const
 {
+   const Item *RootItem = Lookup("RootDir");
+   std::string rootDir =  (RootItem == 0) ? "" : RootItem->Value;
+   if(rootDir.size() > 0 && rootDir[rootDir.size() - 1] != '/')
+     rootDir.push_back('/');
+
    const Item *Itm = Lookup(Name);
    if (Itm == 0 || Itm->Value.empty() == true)
    {
@@ -204,7 +209,7 @@ string Configuration::FindFile(const char *Name,const char *Default) const
       Itm = Itm->Parent;
    }
 
-   return val;
+   return rootDir + val;
 }
                                                                        /*}}}*/
 // Configuration::FindDir - Find a directory name                      /*{{{*/
@@ -507,7 +512,7 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional,
       CurLine++;
       // This should be made to work instead, but this is better than looping
       if (F.fail() && !F.eof())
-         return _error->Error(_("Line %d too long (max %u)"), CurLine, sizeof(Buffer));
+         return _error->Error(_("Line %d too long (max %lu)"), CurLine, sizeof(Buffer));
 
       _strtabexpand(Buffer,sizeof(Buffer));
       _strstrip(Buffer);