[pacman-dev] [PATCH 1/4] extract raw config file parser

Andrew Gregory andrew.gregory.8 at gmail.com
Sat Jan 13 16:49:57 UTC 2018


To allow pacman-conf to parse the configuration file without having to
also setup alpm.

Signed-off-by: Andrew Gregory <andrew.gregory.8 at gmail.com>
---
 src/pacman/conf.c | 13 +++++++++----
 src/pacman/conf.h |  1 +
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/pacman/conf.c b/src/pacman/conf.c
index a283d7f4..e4980ed2 100644
--- a/src/pacman/conf.c
+++ b/src/pacman/conf.c
@@ -1036,6 +1036,14 @@ static int _parse_directive(const char *file, int linenum, const char *name,
 	}
 }
 
+int parseconfigfile(const char *file)
+{
+	struct section_t section;
+	memset(&section, 0, sizeof(struct section_t));
+	pm_printf(ALPM_LOG_DEBUG, "config: attempting to read file %s\n", file);
+	return parse_ini(file, _parse_directive, &section);
+}
+
 /** Parse a configuration file.
  * @param file path to the config file
  * @return 0 on success, non-zero on error
@@ -1043,10 +1051,7 @@ static int _parse_directive(const char *file, int linenum, const char *name,
 int parseconfig(const char *file)
 {
 	int ret;
-	struct section_t section;
-	memset(&section, 0, sizeof(struct section_t));
-	pm_printf(ALPM_LOG_DEBUG, "config: attempting to read file %s\n", file);
-	if((ret = parse_ini(file, _parse_directive, &section))) {
+	if((ret = parseconfigfile(file))) {
 		return ret;
 	}
 	pm_printf(ALPM_LOG_DEBUG, "config: finished parsing %s\n", file);
diff --git a/src/pacman/conf.h b/src/pacman/conf.h
index 53b44be6..e937051b 100644
--- a/src/pacman/conf.h
+++ b/src/pacman/conf.h
@@ -242,6 +242,7 @@ void config_repo_free(config_repo_t *repo);
 
 int config_set_arch(const char *arch);
 int parseconfig(const char *file);
+int parseconfigfile(const char *file);
 #endif /* PM_CONF_H */
 
 /* vim: set noet: */
-- 
2.15.1


More information about the pacman-dev mailing list