diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-01-25 22:07:13 -0500 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2022-01-25 22:07:13 -0500 |
commit | 1a5302435ff0d2822b823f5a6fe01faa7a85c629 (patch) | |
tree | ac7810c88b560532f22d2bab2e59609cd7305c21 /gnu/packages/patches/diffutils-fix-signal-processing.patch | |
parent | 3ff2ac4980dacf10087e4b42bd9fbc490591900c (diff) | |
parent | 070b8a893febd6e7d8b2b7c8c4dcebacf7845aa9 (diff) | |
download | guix-1a5302435ff0d2822b823f5a6fe01faa7a85c629.tar.gz |
Merge branch 'master' into staging.
With "conflicts" solved (all in favor of master except git) in: gnu/local.mk gnu/packages/databases.scm gnu/packages/glib.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/gnuzilla.scm gnu/packages/graphics.scm gnu/packages/gstreamer.scm gnu/packages/gtk.scm gnu/packages/linux.scm gnu/packages/machine-learning.scm gnu/packages/networking.scm gnu/packages/polkit.scm gnu/packages/pulseaudio.scm gnu/packages/rpc.scm gnu/packages/rust.scm gnu/packages/version-control.scm gnu/packages/w3m.scm
Diffstat (limited to 'gnu/packages/patches/diffutils-fix-signal-processing.patch')
-rw-r--r-- | gnu/packages/patches/diffutils-fix-signal-processing.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/gnu/packages/patches/diffutils-fix-signal-processing.patch b/gnu/packages/patches/diffutils-fix-signal-processing.patch new file mode 100644 index 0000000000..134dd3f718 --- /dev/null +++ b/gnu/packages/patches/diffutils-fix-signal-processing.patch @@ -0,0 +1,58 @@ +Author: Frédéric Bonnard <frediz@debian.org> + +Obtained from: + +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=922552#19 + +Fixes bug reported upstream at: + +https://debbugs.gnu.org/cgi/bugreport.cgi?bug=34519 + +diff --git a/src/diff.c b/src/diff.c +index e2eb32437353..b574e8282dc9 100644 +--- a/src/diff.c ++++ b/src/diff.c +@@ -1451,6 +1451,8 @@ compare_files (struct comparison const *parent, + } + } + ++ final_process_signals (); ++ + /* Now the comparison has been done, if no error prevented it, + and STATUS is the value this function will return. */ + +diff --git a/src/diff.h b/src/diff.h +index 03daaa4a0530..e177fe600a25 100644 +--- a/src/diff.h ++++ b/src/diff.h +@@ -390,6 +390,7 @@ extern enum changes analyze_hunk (struct change *, lin *, lin *, lin *, lin *); + extern void begin_output (void); + extern void debug_script (struct change *); + extern void fatal (char const *) __attribute__((noreturn)); ++extern void final_process_signals (void); + extern void finish_output (void); + extern void message (char const *, char const *, char const *); + extern void message5 (char const *, char const *, char const *, +diff --git a/src/util.c b/src/util.c +index 4f4d9bb285eb..56d292de2927 100644 +--- a/src/util.c ++++ b/src/util.c +@@ -237,6 +237,18 @@ process_signals (void) + } + } + ++/* Process remaining signals once before exit */ ++void ++final_process_signals (void) ++{ ++ static int last = 1; ++ ++ if (last) { ++ process_signals (); ++ last = 0; ++ } ++} ++ + static void + install_signal_handlers (void) + { |