Pacman assumes that the final character of a line specifing a repo
in pacman.conf is a "]".  But it did not clean whitespace from the
line after removing any comments.  So lines like:

[allanbrokeit]  # could break system

caused pacman not to recognize the repo.  Adjust config parsing to
strip comments before trimming whitespace from the end of the string.

Signed-off-by: Allan McRae <[email protected]>
---
 src/pacman/conf.c |   12 +++++++-----
 1 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/pacman/conf.c b/src/pacman/conf.c
index 6703243..117aecd4 100644
--- a/src/pacman/conf.c
+++ b/src/pacman/conf.c
@@ -720,17 +720,19 @@ static int _parseconfig(const char *file, struct 
section_t *section,
                size_t line_len;
 
                linenum++;
-               strtrim(line);
-               line_len = strlen(line);
 
                /* ignore whole line and end of line comments */
-               if(line_len == 0 || line[0] == '#') {
-                       continue;
-               }
                if((ptr = strchr(line, '#'))) {
                        *ptr = '\0';
                }
 
+               strtrim(line);
+               line_len = strlen(line);
+
+               if(line_len == 0) {
+                       continue;
+               }
+
                if(line[0] == '[' && line[line_len - 1] == ']') {
                        char *name;
                        /* only possibility here is a line == '[]' */
-- 
1.7.8.1


Reply via email to