diff options
Diffstat (limited to 'apt-pkg/contrib')
-rw-r--r-- | apt-pkg/contrib/configuration.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/apt-pkg/contrib/configuration.cc b/apt-pkg/contrib/configuration.cc index 3140be446..6f617e914 100644 --- a/apt-pkg/contrib/configuration.cc +++ b/apt-pkg/contrib/configuration.cc @@ -511,6 +511,8 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional, std::string Input; // The input line with comments stripped. std::string Fragment; + + // Grab the next line of F and place it in Input. do { char *Buffer = new char[1024]; @@ -522,9 +524,9 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional, } while (F.fail() && !F.eof()); + // Expand tabs in the input line and remove leading and trailing + // whitespace. { - // Allocate enough space to expand an entire line of tabs - // below. const int BufferSize = Input.size() * 8 + 1; char *Buffer = new char[BufferSize]; try @@ -544,6 +546,9 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional, } CurLine++; + // Now strip comments; if the whole line is contained in a + // comment, skip this line. + // The first meaningful character in the current fragment; will // be adjusted below as we remove bytes from the front. std::string::const_iterator Start = Input.begin(); @@ -623,8 +628,7 @@ bool ReadConfigFile(Configuration &Conf,const string &FName,bool AsSectional, if (Fragment.empty()) continue; - // We now have a valid line fragment. Walk down it and - // interpret it. + // The line has actual content; interpret what it means. InQuote = false; Start = Fragment.begin(); End = Fragment.end(); |