[pacman-dev] [PATCH 5/5] pacman-conf.c: make parse_opts only parse opts

iff at escondida.tk iff at escondida.tk
Fri Feb 9 04:49:08 UTC 2018


From: Ivy Foster <iff at escondida.tk>

Previously, it also parsed the config file instead of simply setting
the (global) config_file variable

Signed-off-by: Ivy Foster <iff at escondida.tk>
---
 src/pacman/pacman-conf.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/src/pacman/pacman-conf.c b/src/pacman/pacman-conf.c
index aa102031..52bbdb9e 100644
--- a/src/pacman/pacman-conf.c
+++ b/src/pacman/pacman-conf.c
@@ -100,10 +100,6 @@ static void parse_opts(int argc, char **argv)
 				exit(EXIT_FAILURE);
 		}
 	}
-
-	if(parseconfigfile(config_file) != 0 || setdefaults(config) != 0) {
-		fprintf(stderr, "error parsing '%s'\n", config_file);
-	}
 }
 
 static void list_repos(void)
@@ -403,8 +399,16 @@ int main(int argc, char **argv)
 		return EXIT_FAILURE;
 	}
 
-	config = config_new();
 	parse_opts(argc, argv);
+
+	if(!(config = config_new())) {
+		/* config_new prints the appropriate error message */
+		return EXIT_FAILURE;
+	}
+	if(parseconfigfile(config_file) != 0 || setdefaults(config) != 0) {
+		fprintf(stderr, "error parsing '%s'\n", config_file);
+		return EXIT_FAILURE;
+	}
 	if(!config) {
 		return EXIT_FAILURE;
 	}
-- 
2.16.1


More information about the pacman-dev mailing list