From: Andrea Zagli Date: Wed, 4 Jul 2018 13:42:49 +0000 (+0200) Subject: Aggiunta la funzione OOO::openoffice_in_esecuzione. X-Git-Url: https://saetta.ns0.it/gitweb?a=commitdiff_plain;h=1df2e3202cac8a47f48a2061fa137a0622557c85;p=solipa%2Flibsolipa Aggiunta la funzione OOO::openoffice_in_esecuzione. --- diff --git a/src/ooo.c b/src/ooo.c index 5a86fae..d98f02e 100644 --- a/src/ooo.c +++ b/src/ooo.c @@ -376,6 +376,36 @@ gchar return g_strdup (priv->ooo_version); } +/** + * solipa_ooo_openoffice_in_esecuzione: + * @ooo: + */ +gboolean +solipa_ooo_openoffice_in_esecuzione (SolipaOOO *ooo) +{ + gboolean in_esecuzione; + + FILE *pipa; + + in_esecuzione = FALSE; + + /* TODO parametrizzare il nome del processo da cercare */ +#ifdef G_OS_WIN32 + pipa = popen (g_strdup_printf ("tasklist | findstr /i soffice.bin"), "r"); +#else + pipa = popen (g_strdup_printf ("pidof soffice.bin"), "r"); +#endif + + if (pipa != NULL) + { + in_esecuzione = (fgetc (pipa) != EOF); + } + + pclose (pipa); + + return in_esecuzione; +} + /** * solipa_ooo_get_cmd_apri_openoffice: * @ooo: @@ -718,21 +748,7 @@ solipa_ooo_pycmd_apri_openoffice (SolipaOOO *ooo) "resolver = local.ServiceManager.createInstanceWithContext(\"com.sun.star.bridge.UnoUrlResolver\", local)\n"); /* controllo se OpenOffice è già in esecuzione */ - in_esecuzione = FALSE; - - /* TODO parametrizzare il nome del processo da cercare */ -#ifdef G_OS_WIN32 - pipa = popen (g_strdup_printf ("tasklist | findstr /i soffice.bin"), "r"); -#else - pipa = popen (g_strdup_printf ("pidof soffice.bin"), "r"); -#endif - - if (pipa != NULL) - { - in_esecuzione = (fgetc (pipa) != EOF); - } - - pclose (pipa); + in_esecuzione = solipa_ooo_openoffice_in_esecuzione (ooo); if (in_esecuzione && priv->transient != NULL @@ -859,21 +875,7 @@ solipa_ooo_apri_openoffice (SolipaOOO *ooo) if (obj == NULL) { /* controllo se OpenOffice è già in esecuzione */ - in_esecuzione = FALSE; - - /* TODO parametrizzare il nome del processo da cercare */ -#ifdef G_OS_WIN32 - pipa = popen (g_strdup_printf ("tasklist | findstr /i soffice.bin"), "r"); -#else - pipa = popen (g_strdup_printf ("pidof soffice.bin"), "r"); -#endif - - if (pipa != NULL) - { - in_esecuzione = (fgetc (pipa) != EOF); - } - - pclose (pipa); + in_esecuzione = solipa_ooo_openoffice_in_esecuzione (ooo); if (in_esecuzione && priv->transient != NULL diff --git a/src/ooo.h b/src/ooo.h index 31cabf2..ff90945 100644 --- a/src/ooo.h +++ b/src/ooo.h @@ -77,6 +77,8 @@ guint solipa_ooo_get_port (SolipaOOO *ooo); void solipa_ooo_set_version (SolipaOOO *ooo, const gchar *version); gchar *solipa_ooo_get_version (SolipaOOO *ooo); +gboolean solipa_ooo_openoffice_in_esecuzione (SolipaOOO *ooo); + gchar *solipa_ooo_get_cmd_apri_openoffice (SolipaOOO *ooo); void solipa_ooo_exec (SolipaOOO *ooo, const gchar *statement);