Skip to content

Commit

Permalink
zbar: add JPEG-related patch
Browse files Browse the repository at this point in the history
This patch was applied upstream, but has not yet made it into any
official release. Without this patch, libjpeg is unable to seek
within a JPEG datastream, resulting in hard-to-diagnose failures.

Closes Homebrew/legacy-homebrew#19291.

Signed-off-by: Jack Nagel <jacknagel@gmail.com>
  • Loading branch information
willglynn authored and jacknagel committed Apr 26, 2013
1 parent 5ffc620 commit 01d93d1
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions Formula/zbar.rb
Expand Up @@ -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
Expand All @@ -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)

0 comments on commit 01d93d1

Please sign in to comment.