Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=2038d347dfd3134432d2ffb8f47f2b52984686dc

commit 2038d347dfd3134432d2ffb8f47f2b52984686dc
Author: Michel Hermier <[email protected]>
Date:   Fri Nov 8 00:28:19 2013 +0100

libpacman: Vectorise string manipulation in _pacman_handle_set_option.

diff --git a/lib/libpacman/handle.c b/lib/libpacman/handle.c
index 68f3fda..125457f 100644
--- a/lib/libpacman/handle.c
+++ b/lib/libpacman/handle.c
@@ -127,6 +127,14 @@ int _pacman_handle_free(pmhandle_t *ph)
}

static
+void _pacman_handle_set_option_string(const char *option, char **string, const 
char *value, const char *default_value)
+{
+       free(*string);
+       *string = strdup(!_pacman_strempty(value) ? value : default_value);
+       _pacman_log(PM_LOG_FLOW2, _("%s set to '%s'"), option, *string);
+}
+
+static
void _pacman_handle_set_option_stringlist(const char *option, pmlist_t 
**stringlist, const char *value)
{
if(!_pacman_strempty(value)) {
@@ -148,25 +156,13 @@ int _pacman_handle_set_option(pmhandle_t *ph, unsigned 
char val, unsigned long d

switch(val) {
case PM_OPT_DBPATH:
-                       if(ph->dbpath) {
-                               FREE(ph->dbpath);
-                       }
-                       ph->dbpath = strdup(!_pacman_strempty((char *)data) ? 
(char *)data : PM_DBPATH);
-                       _pacman_log(PM_LOG_FLOW2, _("PM_OPT_DBPATH set to 
'%s'"), ph->dbpath);
+                       _pacman_handle_set_option_string("PM_OPT_DBPATH", 
&ph->dbpath, (const char *)data, PM_DBPATH);
break;
case PM_OPT_CACHEDIR:
-                       if(ph->cachedir) {
-                               FREE(ph->cachedir);
-                       }
-                       ph->cachedir = strdup(!_pacman_strempty((char *)data) ? 
(char *)data : PM_CACHEDIR);
-                       _pacman_log(PM_LOG_FLOW2, _("PM_OPT_CACHEDIR set to 
'%s'"), ph->cachedir);
+                       _pacman_handle_set_option_string("PM_OPT_CACHEDIR", 
&ph->cachedir, (const char *)data, PM_CACHEDIR);
break;
case PM_OPT_HOOKSDIR:
-                       if(ph->hooksdir) {
-                               FREE(ph->hooksdir);
-                       }
-                       ph->hooksdir = strdup(!_pacman_strempty((char *)data) ? 
(char *)data : PM_HOOKSDIR);
-                       _pacman_log(PM_LOG_FLOW2, _("PM_OPT_HOOKSDIR set to 
'%s'"), ph->hooksdir);
+                       _pacman_handle_set_option_string("PM_OPT_HOOKSDIR", 
&ph->hooksdir, (const char *)data, PM_HOOKSDIR);
break;
case PM_OPT_LOGFILE:
if((char *)data == NULL || ph->uid != 0) {
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to