[PATCH v2 7/7] weston.ini: Allow a relative path for screensaver
Quentin Glidic
sardemff7+wayland at sardemff7.net
Tue Jun 18 00:37:26 PDT 2013
From: Quentin Glidic <sardemff7+git at sardemff7.net>
Signed-off-by: Quentin Glidic <sardemff7+git at sardemff7.net>
---
Fixed "path" to be [PATH_MAX] and fixed the case where the path is NULL
man/weston.ini.man | 3 ++-
src/shell.c | 9 ++++++++-
weston.ini | 2 +-
3 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/man/weston.ini.man b/man/weston.ini.man
index e348c44..f6ad5c2 100644
--- a/man/weston.ini.man
+++ b/man/weston.ini.man
@@ -205,11 +205,12 @@ The
section is optional, as are all of the entries that may be specified in
it.
.TP 7
-.BI "path=" /usr/libexec/weston-screensaver
+.BI "path=" /usr/libexec/weston/weston-screensaver
This instructs the compositor to use the selected screensaver client on a given
path (string). If this line is missing or commented out, the screensaver in
.B "weston(1)"
is disabled.
+May be relative to __weston_libexec_dir__.
.RE
.TP 7
.BI "duration=" 600
diff --git a/src/shell.c b/src/shell.c
index 9d4999e..720de73 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -27,6 +27,7 @@
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
+#include <limits.h>
#include <unistd.h>
#include <linux/input.h>
#include <assert.h>
@@ -388,12 +389,18 @@ shell_configuration(struct desktop_shell *shell)
{
struct weston_config_section *section;
int duration;
- char *s;
+ char *s, path[PATH_MAX];
section = weston_config_get_section(shell->compositor->config,
"screensaver", NULL, NULL);
weston_config_section_get_string(section,
"path", &shell->screensaver.path, NULL);
+ if (shell->screensaver.path != NULL &&
+ shell->screensaver.path[0] != '/') {
+ snprintf(path, sizeof path, "%s/%s", PKGLIBEXECDIR, shell->screensaver.path);
+ free(shell->screensaver.path);
+ shell->screensaver.path = strdup(path);
+ }
weston_config_section_get_int(section, "duration", &duration, 60);
shell->screensaver.duration = duration * 1000;
diff --git a/weston.ini b/weston.ini
index a9ddbc9..7fa60a4 100644
--- a/weston.ini
+++ b/weston.ini
@@ -36,7 +36,7 @@ path=./clients/flower
[screensaver]
# Uncomment path to disable screensaver
-path=/usr/libexec/weston-screensaver
+path=weston-screensaver
duration=600
[input-method]
--
1.8.3
More information about the wayland-devel
mailing list