summaryrefslogtreecommitdiff
path: root/debian/patches/96_fix_cdda2wav_parsing.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/96_fix_cdda2wav_parsing.patch')
-rw-r--r--debian/patches/96_fix_cdda2wav_parsing.patch33
1 files changed, 33 insertions, 0 deletions
diff --git a/debian/patches/96_fix_cdda2wav_parsing.patch b/debian/patches/96_fix_cdda2wav_parsing.patch
new file mode 100644
index 0000000..8b40b07
--- /dev/null
+++ b/debian/patches/96_fix_cdda2wav_parsing.patch
@@ -0,0 +1,33 @@
+Make cdda2wav parsing more robust, in particular when errors occur.
+
+
+diff -urN jack-3.1.1~/jack_helpers.py jack-3.1.1/jack_helpers.py
+--- jack-3.1.1~/jack_helpers.py 2006-01-23 23:40:49.000000000 +0000
++++ jack-3.1.1/jack_helpers.py 2006-01-24 00:44:57.000000000 +0000
+@@ -321,10 +321,23 @@
+ 'status_fkt': r"""
+ tmp = string.split(i['buf'], "\r")
+ if len(tmp) >= 2:
+- if string.find(tmp[-2], '%') != -1:
+- new_status = "ripping: " + string.strip(tmp[-2])
+- else:
++ tmp = tmp[-2].lstrip()
++ pct = tmp.find("%")
++ if pct == -1:
+ new_status = "waiting..."
++ else:
++ # A normal line when it's ripping looks like this:
++ # 7%
++ # However, when an error occurs, it'll look something like this:
++ # 0%cdda2wav: Operation not permitted. Cannot send SCSI cmd via ioctl
++ info = tmp[:pct+1]
++ error = info + "cdda2wav:"
++ if tmp == info:
++ new_status = "ripping: " + info
++ elif tmp.startswith(error):
++ new_status = "Error: " + tmp[len(error):].lstrip()
++ else:
++ new_status = "Cannot parse status"
+ else:
+ new_status = "Cannot parse status"
+ """,