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

Andrew Gregory andrew.gregory.8 at gmail.com
Sun Feb 11 05:43:34 UTC 2018


On 02/10/18 at 10:15pm, iff at escondida.tk wrote:
> From: Ivy Foster <iff at escondida.tk>
> 
> Previously, it also parsed the config file instead of simply setting
> the (global) config_file variable

I think the original purpose of this patch is fundamentally
unnecessary, but it does (accidentally, I assume) fix a bug if parsing
the config file fails.

> 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 51df8803..4828dfec 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);

config must be initialized before parse_opts because parse_opts
modifies it.

> +
> +	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