From: Quentin Glidic <sardemff7+...@sardemff7.net> This is to be used by tests or when developping to load modules directly from the build tree
Signed-off-by: Quentin Glidic <sardemff7+...@sardemff7.net> --- man/weston.man | 5 +++-- src/compositor.c | 9 ++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/man/weston.man b/man/weston.man index 39d854b..50c8ba1 100644 --- a/man/weston.man +++ b/man/weston.man @@ -99,7 +99,8 @@ Load .I backend.so instead of the default backend. The file is searched for in .IR "__weston_modules_dir__" , -or you can pass an absolute path. The default backend is +or you can pass a path (absolute, .-relative or ..-relative). The default +backend is .I __weston_native_backend__ unless the environment suggests otherwise, see .IR DISPLAY " and " WAYLAND_DISPLAY . @@ -128,7 +129,7 @@ instead of writing them to stderr. Load the comma-separated list of modules. Only used by the test suite. The file is searched for in .IR "__weston_modules_dir__" , -or you can pass an absolute path. +or you can pass a path (absolute, .-relative or ..-relative). .TP \fB\-\^S\fR\fIname\fR, \fB\-\-socket\fR=\fIname\fR Weston will listen in the Wayland socket called diff --git a/src/compositor.c b/src/compositor.c index 37fce0a..29510f1 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -3021,10 +3021,13 @@ load_module(const char *name, const char *entrypoint) char path[PATH_MAX]; void *module, *init; - if (name[0] != '/') - snprintf(path, sizeof path, "%s/%s", MODULEDIR, name); + if (name[0] == '/' || /* If the path is absolute or .. */ + (name[0] == '.' && /* ... relative to ... */ + (name[1] == '/' || /* ... current dir or ... */ + (name[1] == '.' && name[2] == '/')))) /* ... parent dir ... */ + snprintf(path, sizeof path, "%s", name); /* ... load the exact specified module */ else - snprintf(path, sizeof path, "%s", name); + snprintf(path, sizeof path, "%s/%s", MODULEDIR, name); module = dlopen(path, RTLD_NOW | RTLD_NOLOAD); if (module) { -- 1.8.2.3 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel