#include "log.h"
#include "strv.h"
#include "label.h"
+#include "exit-status.h"
bool streq_ptr(const char *a, const char *b) {
return false;
}
+bool is_clean_exit_lsb(int code, int status) {
+
+ if (is_clean_exit(code, status))
+ return true;
+
+ return
+ code == CLD_EXITED &&
+ (status == EXIT_NOTINSTALLED || status == EXIT_NOTCONFIGURED);
+}
+
bool is_device_path(const char *path) {
/* Returns true on paths that refer to a device, either in
int getttyname_malloc(char **r) {
char path[PATH_MAX], *p, *c;
+ int k;
assert(r);
- if (ttyname_r(STDIN_FILENO, path, sizeof(path)) < 0)
- return -errno;
+ if ((k = ttyname_r(STDIN_FILENO, path, sizeof(path))) != 0)
+ return -k;
char_array_0(path);
return r;
}
-void nss_disable_nscd(void) {
-
- void (*func)(void);
-
- /* This is an internal glibc function call. We are not
- * supposed to call this, because we are not nscd. However
- * sometimes we feel really dangerous and do it
- * nonetheless. Muahahah! But at least we protect this with a
- * dlsym() just in case glibc takes this away from us. */
-
- if ((func = dlsym(RTLD_DEFAULT, "__nss_disable_nscd"))) {
- log_debug("Disabling nscd.");
- func();
- } else
- log_debug("Cannot disable nscd.");
-}
-
int touch(const char *path) {
int fd;
return 0;
}
+char *unquote(const char *s, const char quote) {
+ size_t l;
+ assert(s);
+
+ if ((l = strlen(s)) < 2)
+ return strdup(s);
+
+ if (s[0] == quote && s[l-1] == quote)
+ return strndup(s+1, l-2);
+
+ return strdup(s);
+}
+
static const char *const ioprio_class_table[] = {
[IOPRIO_CLASS_NONE] = "none",
[IOPRIO_CLASS_RT] = "realtime",