diff --git a/Formula/zbar.rb b/Formula/zbar.rb index 3ec07872a1d37..b3b447aa01e68 100644 --- a/Formula/zbar.rb +++ b/Formula/zbar.rb @@ -11,6 +11,13 @@ class Zbar < Formula depends_on 'imagemagick' depends_on 'ufraw' + def patches + # fix JPEG handling using patch from + # http://sourceforge.net/p/zbar/discussion/664596/thread/58b8d79b#8f67 + # already applied upstream but not present in the 0.10 release + DATA + end + def install args = %W[ --disable-dependency-tracking @@ -31,3 +38,27 @@ def install system "make install" end end + +__END__ +diff --git a/zbar/jpeg.c b/zbar/jpeg.c +index fb566f4..d1c1fb2 100644 +--- a/zbar/jpeg.c ++++ b/zbar/jpeg.c +@@ -79,8 +79,15 @@ int fill_input_buffer (j_decompress_ptr cinfo) + void skip_input_data (j_decompress_ptr cinfo, + long num_bytes) + { +- cinfo->src->next_input_byte = NULL; +- cinfo->src->bytes_in_buffer = 0; ++ if (num_bytes > 0) { ++ if (num_bytes < cinfo->src->bytes_in_buffer) { ++ cinfo->src->next_input_byte += num_bytes; ++ cinfo->src->bytes_in_buffer -= num_bytes; ++ } ++ else { ++ fill_input_buffer(cinfo); ++ } ++ } + } + + void term_source (j_decompress_ptr cinfo)