diff options
| author | Felix Bùˆnemann | 2012-01-30 11:59:05 +0100 |
|---|---|---|
| committer | Charlie Sharpsteen | 2012-02-01 09:06:17 -0800 |
| commit | 201222ba5cd3357a6998dac181f00b85692ce1df (patch) | |
| tree | d9c32e8cf6108cb049edf3a523c9cf14a7e983d1 /Library/Formula/ghostscript.rb | |
| parent | a22d862c9afe5d0b7373f10526e2cdd006dc1ccd (diff) | |
| download | homebrew-201222ba5cd3357a6998dac181f00b85692ce1df.tar.bz2 | |
Ghostscript: Update to 9.04
Signed-off-by: Charlie Sharpsteen <source@sharpsteen.net>
Diffstat (limited to 'Library/Formula/ghostscript.rb')
| -rw-r--r-- | Library/Formula/ghostscript.rb | 176 |
1 files changed, 3 insertions, 173 deletions
diff --git a/Library/Formula/ghostscript.rb b/Library/Formula/ghostscript.rb index 2cca3cf64..4d82affc2 100644 --- a/Library/Formula/ghostscript.rb +++ b/Library/Formula/ghostscript.rb @@ -7,10 +7,10 @@ class GhostscriptFonts < Formula end class Ghostscript < Formula - url 'http://downloads.ghostscript.com/public/ghostscript-9.02.tar.bz2' + url 'http://downloads.ghostscript.com/public/ghostscript-9.04.tar.bz2' head 'git://git.ghostscript.com/ghostpdl.git' homepage 'http://www.ghostscript.com/' - md5 'f67151444bd56a7904579fc75a083dd6' + md5 '9f6899e821ab6d78ab2c856f10fa3023' depends_on 'pkg-config' => :build depends_on 'jpeg' @@ -69,181 +69,11 @@ class Ghostscript < Formula end __END__ -diff --git a/base/gdevpng.c b/base/gdevpng.c -index f58c4eb..3477fe3 100644 ---- a/base/gdevpng.c -+++ b/base/gdevpng.c -@@ -274,13 +274,30 @@ png_print_page(gx_device_printer * pdev, FILE * file) - char software_key[80]; - char software_text[256]; - png_text text_png; -+#if PNG_LIBPNG_VER >= 10500 -+ int color_type = 0; -+ png_color* palette = NULL; -+#define PNG_SET_IHDR(bit, color) \ -+ png_set_IHDR(png_ptr, info_ptr, pdev->width, pdev->height, (bit), (color_type = (color)), \ -+ PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); -+#define COLOR_TYPE color_type -+#define PALETTE palette -+#define PNG_JMPBUF png_jmpbuf(png_ptr) -+#else -+#define PNG_SET_IHDR(bit, color) \ -+ info_ptr->bit_depth = (bit); \ -+ info_ptr->color_type = (color); -+#define COLOR_TYPE info_ptr->color_type -+#define PALETTE info_ptr->palette -+#define PNG_JMPBUF png_ptr->jmpbuf -+#endif - - if (row == 0 || png_ptr == 0 || info_ptr == 0) { - code = gs_note_error(gs_error_VMerror); - goto done; - } - /* set error handling */ -- if (setjmp(png_ptr->jmpbuf)) { -+ if (setjmp(PNG_JMPBUF)) { - /* If we get here, we had a problem reading the file */ - code = gs_note_error(gs_error_VMerror); - goto done; -@@ -289,6 +306,12 @@ png_print_page(gx_device_printer * pdev, FILE * file) - /* set up the output control */ - png_init_io(png_ptr, file); - -+#if PNG_LIBPNG_VER >= 10500 -+ png_set_pHYs(png_ptr, info_ptr, -+ (png_uint_32) (pdev->HWResolution[0] * (100.0 / 2.54)), -+ (png_uint_32) (pdev->HWResolution[1] * (100.0 / 2.54)), -+ PNG_RESOLUTION_METER); -+#else - /* set the file information here */ - info_ptr->width = pdev->width; - info_ptr->height = pdev->height; -@@ -299,10 +322,10 @@ png_print_page(gx_device_printer * pdev, FILE * file) - (png_uint_32) (pdev->HWResolution[1] * (100.0 / 2.54)); - info_ptr->phys_unit_type = PNG_RESOLUTION_METER; - info_ptr->valid |= PNG_INFO_pHYs; -+#endif - switch (depth) { - case 32: -- info_ptr->bit_depth = 8; -- info_ptr->color_type = PNG_COLOR_TYPE_RGB_ALPHA; -+ PNG_SET_IHDR(8, PNG_COLOR_TYPE_RGB_ALPHA); - png_set_invert_alpha(png_ptr); - { gx_device_pngalpha *ppdev = (gx_device_pngalpha *)pdev; - png_color_16 background; -@@ -315,75 +338,78 @@ png_print_page(gx_device_printer * pdev, FILE * file) - } - break; - case 48: -- info_ptr->bit_depth = 16; -- info_ptr->color_type = PNG_COLOR_TYPE_RGB; -+ PNG_SET_IHDR(16, PNG_COLOR_TYPE_RGB); - #if defined(ARCH_IS_BIG_ENDIAN) && (!ARCH_IS_BIG_ENDIAN) - png_set_swap(png_ptr); - #endif - break; - case 24: -- info_ptr->bit_depth = 8; -- info_ptr->color_type = PNG_COLOR_TYPE_RGB; -+ PNG_SET_IHDR(8, PNG_COLOR_TYPE_RGB); - break; - case 8: -- info_ptr->bit_depth = 8; -- if (gx_device_has_color(pdev)) -- info_ptr->color_type = PNG_COLOR_TYPE_PALETTE; -- else -- info_ptr->color_type = PNG_COLOR_TYPE_GRAY; -+ PNG_SET_IHDR(8, (gx_device_has_color(pdev) ? PNG_COLOR_TYPE_PALETTE : PNG_COLOR_TYPE_GRAY)); - break; - case 4: -- info_ptr->bit_depth = 4; -- info_ptr->color_type = PNG_COLOR_TYPE_PALETTE; -+ PNG_SET_IHDR(4, PNG_COLOR_TYPE_PALETTE); - break; - case 1: -- info_ptr->bit_depth = 1; -- info_ptr->color_type = PNG_COLOR_TYPE_GRAY; -+ PNG_SET_IHDR(1, PNG_COLOR_TYPE_GRAY); - /* invert monocrome pixels */ - png_set_invert_mono(png_ptr); - break; - } - - /* set the palette if there is one */ -- if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE) { -+ if (COLOR_TYPE == PNG_COLOR_TYPE_PALETTE) { - int i; - int num_colors = 1 << depth; - gx_color_value rgb[3]; - -- info_ptr->palette = -+ PALETTE = - (void *)gs_alloc_bytes(mem, 256 * sizeof(png_color), - "png palette"); -- if (info_ptr->palette == 0) { -+ if (PALETTE == 0) { - code = gs_note_error(gs_error_VMerror); - goto done; - } -+#if PNG_LIBPNG_VER < 10500 - info_ptr->num_palette = num_colors; - info_ptr->valid |= PNG_INFO_PLTE; -+#endif - for (i = 0; i < num_colors; i++) { - (*dev_proc(pdev, map_color_rgb)) ((gx_device *) pdev, - (gx_color_index) i, rgb); -- info_ptr->palette[i].red = gx_color_value_to_byte(rgb[0]); -- info_ptr->palette[i].green = gx_color_value_to_byte(rgb[1]); -- info_ptr->palette[i].blue = gx_color_value_to_byte(rgb[2]); -+ PALETTE[i].red = gx_color_value_to_byte(rgb[0]); -+ PALETTE[i].green = gx_color_value_to_byte(rgb[1]); -+ PALETTE[i].blue = gx_color_value_to_byte(rgb[2]); - } -+#if PNG_LIBPNG_VER >= 10500 -+ png_set_PLTE(png_ptr, info_ptr, PALETTE, num_colors); -+#endif - } - /* add comment */ - strncpy(software_key, "Software", sizeof(software_key)); - sprintf(software_text, "%s %d.%02d", gs_product, - (int)(gs_revision / 100), (int)(gs_revision % 100)); -- text_png.compression = -1; /* uncompressed */ -+ text_png.compression = PNG_TEXT_COMPRESSION_NONE; /* uncompressed */ - text_png.key = software_key; - text_png.text = software_text; - text_png.text_length = strlen(software_text); -+#if PNG_LIBPNG_VER >= 10500 -+ png_set_text(png_ptr, info_ptr, &text_png, 1); -+#else - info_ptr->text = &text_png; - info_ptr->num_text = 1; -+#endif - - /* write the file information */ - png_write_info(png_ptr, info_ptr); - -+#if PNG_LIBPNG_VER < 10500 - /* don't write the comments twice */ - info_ptr->num_text = 0; - info_ptr->text = NULL; -+#endif - - /* Write the contents of the image. */ - for (y = 0; y < height; y++) { -@@ -395,7 +421,7 @@ png_print_page(gx_device_printer * pdev, FILE * file) - png_write_end(png_ptr, info_ptr); - - /* if you alloced the palette, free it here */ -- gs_free_object(mem, info_ptr->palette, "png palette"); -+ gs_free_object(mem, PALETTE, "png palette"); - - done: - /* free the structures */ diff --git a/base/Makefile.in b/base/Makefile.in index 5b7847d..85e1a32 100644 --- a/base/Makefile.in +++ b/base/Makefile.in -@@ -362,7 +362,7 @@ LDFLAGS=@LDFLAGS@ $(XLDFLAGS) +@@ -375,7 +375,7 @@ LDFLAGS=@LDFLAGS@ $(XLDFLAGS) # Solaris may need -lnsl -lsocket -lposix4. # (Libraries required by individual drivers are handled automatically.) |
