From ceff6bbcfadb6521775455e843849d71e7985b16 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Wed, 18 Nov 2015 03:36:01 +0100 Subject: [PATCH] Avoid some code duplication --- src/browser.c | 25 +++++++++++++++++++++++++ src/browser.h | 2 ++ src/callbacks.c | 20 +------------------- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/src/browser.c b/src/browser.c index 251a019..55f9736 100644 --- a/src/browser.c +++ b/src/browser.c @@ -1177,6 +1177,31 @@ static void _open_with_default(Browser * browser, char const * path, } +/* browser_properties */ +void browser_properties(Browser * browser) +{ + char const * location; + char * p; + GList * selection; + + if((location = browser_get_location(browser)) == NULL) + return; + if((selection = browser_selection_copy(browser)) == NULL) + { + if((p = strdup(location)) == NULL) + { + browser_error(browser, strerror(errno), 1); + return; + } + selection = g_list_append(NULL, p); + } + if(_common_exec("properties", NULL, selection) != 0) + browser_error(browser, strerror(errno), 1); + g_list_foreach(selection, (GFunc)free, NULL); + g_list_free(selection); +} + + /* browser_refresh */ void browser_refresh(Browser * browser) { diff --git a/src/browser.h b/src/browser.h index de7a652..a061cd6 100644 --- a/src/browser.h +++ b/src/browser.h @@ -103,6 +103,8 @@ int browser_unload(Browser * browser, char const * plugin); void browser_open(Browser * browser, char const * path); void browser_open_with(Browser * browser, char const * path); +void browser_properties(Browser * browser); + void browser_refresh(Browser * browser); /* selection */ diff --git a/src/callbacks.c b/src/callbacks.c index c6e26fd..10c419f 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -42,7 +42,6 @@ #ifndef PROGNAME # define PROGNAME "browser" #endif -#define COMMON_EXEC #define COMMON_SYMLINK #include "common.c" @@ -186,25 +185,8 @@ void on_paste(gpointer data) void on_properties(gpointer data) { Browser * browser = data; - char const * location; - char * p; - GList * selection; - if((location = browser_get_location(browser)) == NULL) - return; - if((selection = browser_selection_copy(browser)) == NULL) - { - if((p = strdup(location)) == NULL) - { - browser_error(browser, strerror(errno), 1); - return; - } - selection = g_list_append(NULL, p); - } - if(_common_exec("properties", NULL, selection) != 0) - browser_error(browser, strerror(errno), 1); - g_list_foreach(selection, (GFunc)free, NULL); - g_list_free(selection); + browser_properties(browser); }