From 105bd729e8341bacce630f2780f0a9a5a0102526 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Fri, 3 Jan 2003 16:06:10 +0000 Subject: provide capabilities to execute a command --- src/openbox.cc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/openbox.cc') diff --git a/src/openbox.cc b/src/openbox.cc index 655fe0d5..4d2f1024 100644 --- a/src/openbox.cc +++ b/src/openbox.cc @@ -326,5 +326,26 @@ void Openbox::setFocusedClient(OBClient *c) } } +void Openbox::execute(int screen, const std::string &bin) +{ +#ifdef __EMX__ + // XXX: whats this for? windows? + spawnlp(P_NOWAIT, "cmd.exe", "cmd.exe", "/c", bin.c_str(), NULL); +#else // __EMX__ + if (screen >= ScreenCount(otk::OBDisplay::display)) + screen = 0; + const std::string &dstr = + otk::OBDisplay::screenInfo(screen)->displayString(); + + if (! fork()) { + setsid(); + int ret = putenv(const_cast(dstr.c_str())); + assert(ret != -1); + ret = execl("/bin/sh", "/bin/sh", "-c", bin.c_str(), NULL); + exit(ret); + } +#endif // __EMX__ +} + } -- cgit v1.2.3