#include <pio.h>
#include <plog.h>
+#include <pxdg.h>
static const char *KEY_GNOME_AUTOSTART = "X-GNOME-Autostart-enabled";
-static char *get_user_autostart_dir()
+static char *get_user_autostart_dir(void)
{
const char *xdg_cfg_dir;
return path_append(xdg_cfg_dir, "autostart");
}
-static char *get_user_desktop_file()
+static char *get_user_desktop_file(void)
{
char *dir, *path;
dir = get_user_autostart_dir();
- path = path_append(dir, "psensor.desktop");
+ path = path_append(dir, PSENSOR_DESKTOP_FILE);
free(dir);
return path;
}
-static const char *get_desktop_file()
+static const char *get_desktop_file(void)
{
- return DATADIR"/applications/psensor.desktop";
+ return DATADIR"/applications/"PSENSOR_DESKTOP_FILE;
}
static int is_file_exists(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)
NULL);
}
-int pxdg_is_autostarted()
+int pxdg_is_autostarted(void)
{
char *user_desktop;
unsigned int ret;
ret = is_user_desktop_autostarted(kfile);
else
ret = -1;
+ g_key_file_free(kfile);
}
- g_key_file_free(kfile);
}
free(user_desktop);
void pxdg_set_autostart(unsigned int enable)
{
- char *user_desktop;
+ char *user_desktop, *dir;
log_fct_enter();
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