Imported Upstream version 1.1.2
[psensor-pkg-debian.git] / src / pxdg.c
index 7c3cffa..14c3021 100644 (file)
@@ -46,7 +46,7 @@ static char *get_user_desktop_file()
        char *dir, *path;
 
        dir = get_user_autostart_dir();
-       path = path_append(dir, "psensor.desktop");
+       path = path_append(dir, PSENSOR_DESKTOP_FILE);
 
        free(dir);
 
@@ -55,7 +55,7 @@ static char *get_user_desktop_file()
 
 static const char *get_desktop_file()
 {
-       return DATADIR"/applications/psensor.desktop";
+       return DATADIR"/applications/"PSENSOR_DESKTOP_FILE;
 }
 
 static int is_file_exists(const char *path)
@@ -77,14 +77,13 @@ static GKeyFile *get_key_file(const char *path)
                                        | G_KEY_FILE_KEEP_TRANSLATIONS,
                                        NULL);
 
-       if (ret) {
+       if (ret)
                return kfile;
-       } else {
-               log_err("Failed to parse: %s", path);
 
-               g_key_file_free(kfile);
-               return NULL;
-       }
+       log_err("Failed to parse: %s", path);
+
+       g_key_file_free(kfile);
+       return NULL;
 }
 
 static int is_user_desktop_autostarted(GKeyFile *f)
@@ -123,8 +122,8 @@ int pxdg_is_autostarted()
                                ret = is_user_desktop_autostarted(kfile);
                        else
                                ret = -1;
+                       g_key_file_free(kfile);
                }
-               g_key_file_free(kfile);
        }
 
        free(user_desktop);
@@ -160,7 +159,7 @@ static void enable_gnome_autostart(const char *path)
 
 void pxdg_set_autostart(unsigned int enable)
 {
-       char *user_desktop;
+       char *user_desktop, *dir;
 
        log_fct_enter();
 
@@ -171,8 +170,12 @@ void pxdg_set_autostart(unsigned int enable)
        log_fct("desktop file: %s", get_desktop_file());
 
        if (enable) {
-               if (!is_file_exists(user_desktop))
+               if (!is_file_exists(user_desktop)) {
+                       dir = get_user_autostart_dir();
+                       mkdirs(dir, 0700);
+                       free(dir);
                        file_copy(get_desktop_file(), user_desktop);
+               }
                enable_gnome_autostart(user_desktop);
        } else {
                /* because X-GNOME-Autostart-enabled does not turn off