Use glib's find in path

This commit is contained in:
Paul Fd 2021-07-16 16:48:32 +02:00
parent af902ee8b0
commit 4769e35ef6

View file

@ -198,12 +198,21 @@ static std::vector<char *> createForkEnviron()
return newEnv;
}
static constexpr char zenityPath[] = "/usr/bin/zenity";
static const std::string zenityPath = [] {
auto glibPath = g_find_program_in_path("zenity");
if (glibPath) {
std::string s { glibPath };
g_free(glibPath);
return s;
} else {
return std::string("/usr/bin/zenity");
}
}();
bool askQuestion(const char *text)
{
char *argv[] = {
const_cast<char *>(zenityPath),
const_cast<char *>(zenityPath.c_str()),
const_cast<char *>("--question"),
const_cast<char *>("--text"),
const_cast<char *>(text),
@ -236,7 +245,7 @@ bool askQuestion(const char *text)
bool isZenityAvailable()
{
return access(zenityPath, X_OK) == 0;
return access(zenityPath.c_str(), X_OK) == 0;
}
std::string getOperatingSystemName()