X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Fexit-status.c;h=c09efdd2cb79c1643aed2c8042e3f90f361d8f07;hb=d896ac2d2fbce41a0b11a0618a685adeaf18b8fe;hp=57022c5b8aebd2b523df640f801683548acad59e;hpb=2eec67acbb00593e414549a7e5b35eb7dd776b1b;p=elogind.git diff --git a/src/shared/exit-status.c b/src/shared/exit-status.c index 57022c5b8..c09efdd2c 100644 --- a/src/shared/exit-status.c +++ b/src/shared/exit-status.c @@ -166,7 +166,7 @@ const char* exit_status_to_string(ExitStatus status, ExitStatusLevel level) { return "NOPERMISSION"; case EXIT_NOTINSTALLED: - return "NOTINSSTALLED"; + return "NOTINSTALLED"; case EXIT_NOTCONFIGURED: return "NOTCONFIGURED"; @@ -225,3 +225,17 @@ bool exit_status_set_is_empty(ExitStatusSet *x) { return set_isempty(x->status) && set_isempty(x->signal); } + +bool exit_status_set_test(ExitStatusSet *x, int code, int status) { + + if (exit_status_set_is_empty(x)) + return false; + + if (code == CLD_EXITED && set_contains(x->status, INT_TO_PTR(status))) + return true; + + if (IN_SET(code, CLD_KILLED, CLD_DUMPED) && set_contains(x->signal, INT_TO_PTR(status))) + return true; + + return false; +}