diff options
Diffstat (limited to 'src/pacman/conf.c')
-rw-r--r-- | src/pacman/conf.c | 54 |
1 files changed, 31 insertions, 23 deletions
diff --git a/src/pacman/conf.c b/src/pacman/conf.c index a770fd47..743f8330 100644 --- a/src/pacman/conf.c +++ b/src/pacman/conf.c @@ -1,8 +1,8 @@ /* * conf.c - * + * * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org> - * + * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or @@ -15,7 +15,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, * USA. */ @@ -23,38 +23,46 @@ #include <stdlib.h> #include <stdio.h> -#include <string.h> -#include <limits.h> -#include <libintl.h> - -#include <alpm.h> +#include <string.h> /* strdup */ /* pacman */ #include "conf.h" -#include "util.h" -#include "log.h" -#include "sync.h" -#include "downloadprog.h" -config_t *config_new() -{ - config_t *config; +/* global config variable */ +config_t *config = NULL; - MALLOC(config, sizeof(config_t)); - - memset(config, 0, sizeof(config_t)); +config_t *config_new(void) +{ + config_t *newconfig = calloc(1, sizeof(config_t)); + if(!newconfig) { + fprintf(stderr, "malloc failure: could not allocate %zd bytes\n", + sizeof(config_t)); + return(NULL); + } + /* defaults which may get overridden later */ + newconfig->op = PM_OP_MAIN; + newconfig->logmask = PM_LOG_ERROR | PM_LOG_WARNING; + /* CONFFILE is defined at compile-time */ + newconfig->configfile = strdup(CONFFILE); + newconfig->rootdir = NULL; + newconfig->dbpath = NULL; + newconfig->logfile = NULL; - return(config); + return(newconfig); } -int config_free(config_t *config) +int config_free(config_t *oldconfig) { - if(config == NULL) { + if(oldconfig == NULL) { return(-1); } - FREE(config->configfile); - free(config); + free(oldconfig->configfile); + free(oldconfig->rootdir); + free(oldconfig->dbpath); + free(oldconfig->logfile); + free(oldconfig); + oldconfig = NULL; return(0); } |