]> saetta.ns0.it Git - solipa/libsolipa/commitdiff
Aggiunta la funzione OOO::openoffice_in_esecuzione.
authorAndrea Zagli <azagli@libero.it>
Wed, 4 Jul 2018 13:42:49 +0000 (15:42 +0200)
committerAndrea Zagli <azagli@libero.it>
Wed, 4 Jul 2018 13:42:49 +0000 (15:42 +0200)
src/ooo.c
src/ooo.h

index 5a86fae157943f00d1e7b130424134e7dd7be6c1..d98f02ea6b1c838a34f38cc9c8bc442420b1bf3e 100644 (file)
--- 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
index 31cabf229f077dda64c4afde61ebebb51bfe9039..ff9094536d69721f2974230ba6930e252c81c050 100644 (file)
--- 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);