[pacman-dev] [PATCH 1/2] skip unneeded parsing

jjacky i.am.jack.mail at gmail.com
Mon Jan 9 13:09:28 EST 2012


parsing config file is a two-steps process, one for
"options" and one for the repos. in each of those,
there's no need to parse the other section(s), so we'll
skip it. (most notably, when parsing for "options" it
would read all included files for repos, while just
ignoring everything in them)

Signed-off-by: Olivier Brunel <i.am.jack.mail at gmail.com>
---
  src/pacman/conf.c |    6 ++++++
  1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/pacman/conf.c b/src/pacman/conf.c
index 7ba2791..09749ea 100644
--- a/src/pacman/conf.c
+++ b/src/pacman/conf.c
@@ -755,6 +755,12 @@ static int _parseconfig(const char *file, struct 
section_t *section,
                         continue;
                 }

+               /* skip unnecessary parsing */
+               if ( (parse_options && !section->is_options)
+                               || (!parse_options && 
section->is_options) ) {
+                       continue;
+               }
+
                 /* directive */
                 /* strsep modifies the 'line' string: 'key \0 value' */
                 key = line;
-- 
1.7.8.3


More information about the pacman-dev mailing list