summaryrefslogtreecommitdiff
path: root/pkgs/tools/inputmethods/interception-tools/interception-tools-udevmon-path-fix.patch
blob: 2f2062c3f49a62b87548e942dd108ea460a61971 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
diff --git a/udevmon.cpp b/udevmon.cpp
index 70a28be..60fcbe2 100644
--- a/udevmon.cpp
+++ b/udevmon.cpp
@@ -101,7 +101,11 @@ struct cmd {
                     for (size_t j = 0; j < cmds[i].size(); ++j)
                         command[j] = const_cast<char *>(cmds[i][j].c_str());
                     command[cmds[i].size()] = nullptr;
-                    char *environment[]     = {nullptr};
+                    std::string path_env = "PATH=";
+                    path_env += std::getenv("PATH");
+                    char *environment[]     = {
+                        const_cast<char *>(path_env.c_str()),
+                        nullptr};
                     setpgid(0, 0);
                     execvpe(command[0], command.get(), environment);
                     std::string e = "exec failed for \"";
@@ -348,7 +352,10 @@ struct job {
                         command[j] = const_cast<char *>(cmds[i][j].c_str());
                     command[cmds[i].size()] = nullptr;
                     std::string variables   = "DEVNODE=" + devnode;
+                    std::string path_env = "PATH=";
+                    path_env += std::getenv("PATH");
                     char *environment[]     = {
+                        const_cast<char *>(path_env.c_str()),
                         const_cast<char *>(variables.c_str()), nullptr};
                     setpgid(0, 0);
                     execvpe(command[0], command.get(), environment);