delta: diff returns 1 when files differ, ignore this

https://bugs.debian/org/771397
(cherry picked from commit 820d3acfe9)

Conflicts:
	src/quotacheck/quotacheck.c
This commit is contained in:
Zbigniew Jędrzejewski-Szmek
2015-01-15 22:05:54 -05:00
parent 9c521fc99e
commit 0a5e13d4be
8 changed files with 24 additions and 19 deletions
+1 -1
View File
@@ -371,7 +371,7 @@ int main(int argc, char *argv[]) {
execv(args[0], (char * const *) args);
_exit(EXIT_FAILURE);
} else
wait_for_terminate_and_warn("kexec", pid);
wait_for_terminate_and_warn("kexec", pid, true);
}
cmd = RB_AUTOBOOT;
+1 -1
View File
@@ -194,7 +194,7 @@ static int found_override(const char *top, const char *bottom) {
_exit(1);
}
wait_for_terminate_and_warn("diff", pid);
wait_for_terminate_and_warn("diff", pid, false);
putchar('\n');
return k;
+1 -1
View File
@@ -280,7 +280,7 @@ int main(int argc, char *argv[]) {
_exit(EXIT_FAILURE);
}
r = wait_for_terminate_and_warn(argv[optind], pid);
r = wait_for_terminate_and_warn(argv[optind], pid, true);
return r < 0 ? EXIT_FAILURE : r;
}
+2 -2
View File
@@ -2757,7 +2757,7 @@ static int change_uid_gid(char **_home) {
truncate_nl(line);
wait_for_terminate_and_warn("getent passwd", pid);
wait_for_terminate_and_warn("getent passwd", pid, true);
x = strchr(line, ':');
if (!x) {
@@ -2841,7 +2841,7 @@ static int change_uid_gid(char **_home) {
truncate_nl(line);
wait_for_terminate_and_warn("getent initgroups", pid);
wait_for_terminate_and_warn("getent initgroups", pid, true);
/* Skip over the username and subsequent separator whitespace */
x = line;
+4 -1
View File
@@ -74,6 +74,7 @@ int main(int argc, char *argv[]) {
};
pid_t pid;
int r;
if (argc > 1) {
log_error("This program takes no arguments.");
@@ -107,5 +108,7 @@ int main(int argc, char *argv[]) {
_exit(1); /* Operational error */
}
return wait_for_terminate_and_warn("quotacheck", pid) >= 0 ? EXIT_SUCCESS : EXIT_FAILURE;
r = wait_for_terminate_and_warn("quotacheck", pid, true);
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
}
+12 -10
View File
@@ -3599,8 +3599,11 @@ int wait_for_terminate(pid_t pid, siginfo_t *status) {
*
* That is, success is indicated by a return value of zero, and an
* error is indicated by a non-zero value.
*
* A warning is emitted if the process terminates abnormally,
* and also if it returns non-zero unless check_exit_code is true.
*/
int wait_for_terminate_and_warn(const char *name, pid_t pid) {
int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_code) {
int r;
siginfo_t status;
@@ -3614,14 +3617,13 @@ int wait_for_terminate_and_warn(const char *name, pid_t pid) {
}
if (status.si_code == CLD_EXITED) {
if (status.si_status != 0) {
log_warning("%s failed with error code %i.", name, status.si_status);
return status.si_status;
}
log_debug("%s succeeded.", name);
return 0;
if (status.si_status != 0)
log_full(check_exit_code ? LOG_WARNING : LOG_DEBUG,
"%s failed with error code %i.", name, status.si_status);
else
log_debug("%s succeeded.", name);
return status.si_status;
} else if (status.si_code == CLD_KILLED ||
status.si_code == CLD_DUMPED) {
@@ -3976,13 +3978,13 @@ void execute_directory(const char *directory, DIR *d, usec_t timeout, char *argv
path = hashmap_remove(pids, UINT_TO_PTR(pid));
assert(path);
wait_for_terminate_and_warn(path, pid);
wait_for_terminate_and_warn(path, pid, true);
}
_exit(EXIT_SUCCESS);
}
wait_for_terminate_and_warn(directory, executor_pid);
wait_for_terminate_and_warn(directory, executor_pid, true);
}
int kill_and_sigcont(pid_t pid, int sig) {
+1 -1
View File
@@ -505,7 +505,7 @@ char *unquote(const char *s, const char *quotes);
char *normalize_env_assignment(const char *s);
int wait_for_terminate(pid_t pid, siginfo_t *status);
int wait_for_terminate_and_warn(const char *name, pid_t pid);
int wait_for_terminate_and_warn(const char *name, pid_t pid, bool check_exit_code);
noreturn void freeze(void);
+2 -2
View File
@@ -310,7 +310,7 @@ int main(int argc, char **argv) {
}
if (font_pid > 0)
wait_for_terminate_and_warn(KBD_SETFONT, font_pid);
wait_for_terminate_and_warn(KBD_SETFONT, font_pid, true);
r = keymap_load(vc, vc_keymap, vc_keymap_toggle, utf8, &keymap_pid);
if (r < 0) {
@@ -319,7 +319,7 @@ int main(int argc, char **argv) {
}
if (keymap_pid > 0)
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid);
wait_for_terminate_and_warn(KBD_LOADKEYS, keymap_pid, true);
/* Only copy the font when we started setfont successfully */
if (font_copy && font_pid > 0)