aboutsummaryrefslogtreecommitdiff
path: root/development/icdiff/fix-pipe-handling-installed.patch
diff options
context:
space:
mode:
Diffstat (limited to 'development/icdiff/fix-pipe-handling-installed.patch')
-rw-r--r--development/icdiff/fix-pipe-handling-installed.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/development/icdiff/fix-pipe-handling-installed.patch b/development/icdiff/fix-pipe-handling-installed.patch
new file mode 100644
index 0000000000000..fcc9c84dd9e79
--- /dev/null
+++ b/development/icdiff/fix-pipe-handling-installed.patch
@@ -0,0 +1,51 @@
+Description: fix closed pipe handling
+Author: Sascha Steinbiss <satta@debian.org>
+Bug: https://github.com/jeffkaufman/icdiff/issues/156
+Forwarded: https://github.com/jeffkaufman/icdiff/pull/165
+Last-Update: 2019-09-25
+--- a/icdiff
++++ b/icdiff
+@@ -594,7 +594,22 @@
+ validate_has_two_arguments(parser, args)
+ if not options.cols:
+ set_cols_option(options)
+- diff(options, *args)
++ try:
++ diff(options, *args)
++ except KeyboardInterrupt:
++ pass
++ except IOError as e:
++ if e.errno == errno.EPIPE:
++ pass
++ else:
++ raise
++
++ # Close stderr to prevent printing errors when icdiff is piped to
++ # something that closes before icdiff is done writing
++ #
++ # See: https://stackoverflow.com/questions/26692284/...
++ # ...how-to-prevent-brokenpipeerror-when-doing-a-flush-in-python
++ sys.stderr.close()
+
+
+ def codec_print(s, options):
+@@ -755,18 +770,4 @@
+
+
+ if __name__ == "__main__":
+- try:
+- start()
+- except KeyboardInterrupt:
+- pass
+- except IOError as e:
+- if e.errno == errno.EPIPE:
+- pass
+- else:
+- raise
+- # Close stderr to prevent printing errors when icdiff is piped to
+- # something that closes before icdiff is done writing
+- #
+- # See: https://stackoverflow.com/questions/26692284/
+- # how-to-prevent-brokenpipeerror-when-doing-a-flush-in-python
+- sys.stderr.close()
++ start()