gboolean ve_first_word_executable (const char *s, gboolean only_existance) { char *bin = ve_first_word (s); if (bin == NULL) return FALSE; if (access (bin, only_existance ? F_OK : X_OK) == 0) { g_free (bin); return TRUE; } else { g_free (bin); return FALSE; } }
/* doesn't check for executability, just for existance */ static gboolean bin_exists (const char *command) { char *bin; if (ve_string_empty (command)) return FALSE; /* Note, check only for existance, not for executability */ bin = ve_first_word (command); if (bin != NULL && g_access (bin, F_OK) == 0) { g_free (bin); return TRUE; } else { g_free (bin); return FALSE; } }