summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/urt/files/urt-3.1b-rle-fixes.patch')
-rw-r--r--media-libs/urt/files/urt-3.1b-rle-fixes.patch203
1 files changed, 203 insertions, 0 deletions
diff --git a/media-libs/urt/files/urt-3.1b-rle-fixes.patch b/media-libs/urt/files/urt-3.1b-rle-fixes.patch
new file mode 100644
index 000000000000..3720806960fe
--- /dev/null
+++ b/media-libs/urt/files/urt-3.1b-rle-fixes.patch
@@ -0,0 +1,203 @@
+Fixes taken from netpbm
+
+--- lib/rle_global.c
++++ lib/rle_global.c
+@@ -76,7 +76,7 @@ rle_hdr rle_dflt_hdr = {
+ 8, /* cmaplen (log2 of length of color map) */
+ NULL, /* pointer to color map */
+ NULL, /* pointer to comment strings */
+- stdout, /* output file */
++ NULL, /* output file -- must be set dynamically */
+ { 7 }, /* RGB channels only */
+ 0L, /* Can't free name and file fields. */
+ "Urt", /* Default "program name". */
+--- lib/rle_hdr.c
++++ lib/rle_hdr.c
+@@ -269,6 +273,9 @@
+ {
+ rle_hdr *ret_hdr;
+
++ rle_dflt_hdr.rle_file = stdout;
++ /* The rest of rle_dflt_hdr is set by the loader's data initialization */
++
+ if ( the_hdr == &rle_dflt_hdr )
+ return the_hdr;
+
+--- lib/dither.c
++++ lib/dither.c
+@@ -38,10 +38,10 @@ void make_square();
+ #endif
+
+ static int magic4x4[4][4] = {
+- 0, 14, 3, 13,
+- 11, 5, 8, 6,
+- 12, 2, 15, 1,
+- 7, 9, 4, 10
++{ 0, 14, 3, 13},
++{ 11, 5, 8, 6},
++{ 12, 2, 15, 1},
++{ 7, 9, 4, 10}
+ };
+
+ /* basic dithering macro */
+--- lib/rle_open_f.c
++++ lib/rle_open_f.c
+@@ -9,7 +9,11 @@
+ */
+
+ #include "rle_config.h"
++#define _XOPEN_SOURCE /* Make sure fdopen() is in stdio.h */
++
+ #include <stdio.h>
++#include <unistd.h>
++#include <fcntl.h>
+
+ #ifndef NO_OPEN_PIPES
+ /* Need to have a SIGCLD signal catcher. */
+@@ -260,7 +260,6 @@
+ int pipefd[2];
+ int i;
+ char *argv[4];
+- extern int errno;
+
+ /* Check args. */
+ if ( *mode != 'r' && *mode != 'w' )
+--- lib/rle_getcom.c
++++ lib/rle_getcom.c
+@@ -53,11 +53,12 @@
+ {
+ for ( ; *n != '\0' && *n != '=' && *n == *v; n++, v++ )
+ ;
+- if (*n == '\0' || *n == '=')
++ if (*n == '\0' || *n == '=') {
+ if ( *v == '\0' )
+ return v;
+ else if ( *v == '=' )
+ return ++v;
++ }
+
+ return NULL;
+ }
+--- lib/scanargs.c
++++ lib/scanargs.c
+@@ -128,10 +130,10 @@
+ va_list argl;
+ {
+
+- register check; /* check counter to be sure all argvs
++ int check; /* check counter to be sure all argvs
+ are processed */
+ register CONST_DECL char *cp;
+- register cnt;
++ int cnt;
+ int optarg = 0; /* where optional args start */
+ int nopt = 0;
+ char tmpflg, /* temp flag */
+@@ -375,11 +377,12 @@
+ if ( optarg > 0 ) /* end optional args? */
+ {
+ /* Eat the arg, too, if necessary */
+- if ( list_cnt == 0 )
++ if ( list_cnt == 0 ) {
+ if ( typchr == 's' )
+ (void)va_arg( argl, char * );
+ else
+ (void)va_arg( argl, ptr );
++ }
+ break;
+ }
+ else
+@@ -567,7 +570,7 @@
+ * Do conversion for n and N types
+ */
+ tmpflg = typchr;
+- if (typchr == 'n' || typchr == 'N' )
++ if (typchr == 'n' || typchr == 'N' ) {
+ if (*argp != '0')
+ tmpflg = 'd';
+ else if (*(argp+1) == 'x' ||
+@@ -578,6 +581,7 @@
+ }
+ else
+ tmpflg = 'o';
++ }
+ if (typchr == 'N')
+ tmpflg = toupper( tmpflg );
+
+--- lib/inv_cmap.c
++++ lib/inv_cmap.c
+@@ -42,7 +42,7 @@
+ static long cbinc, cginc, crinc;
+ static unsigned long *gdp, *rdp, *cdp;
+ static unsigned char *grgbp, *rrgbp, *crgbp;
+-static gstride, rstride;
++static long gstride, rstride;
+ static long x, xsqr, colormax;
+ static int cindex;
+ #ifdef INSTRUMENT_IT
+--- lib/rle_getrow.c
++++ lib/rle_getrow.c
+@@ -351,7 +351,7 @@
+ bzero( (char *)scanline[-1] + the_hdr->xmin,
+ the_hdr->xmax - the_hdr->xmin + 1 );
+ for ( nc = 0; nc < the_hdr->ncolors; nc++ )
+- if ( RLE_BIT( *the_hdr, nc ) )
++ if ( RLE_BIT( *the_hdr, nc ) ) {
+ /* Unless bg color given explicitly, use 0. */
+ if ( the_hdr->background != 2 || the_hdr->bg_color[nc] == 0 )
+ bzero( (char *)scanline[nc] + the_hdr->xmin,
+@@ -360,6 +360,7 @@
+ bfill( (char *)scanline[nc] + the_hdr->xmin,
+ the_hdr->xmax - the_hdr->xmin + 1,
+ the_hdr->bg_color[nc] );
++ }
+ }
+
+ /* If skipping, then just return */
+@@ -367,7 +368,7 @@
+ {
+ the_hdr->priv.get.vert_skip--;
+ the_hdr->priv.get.scan_y++;
+- if ( the_hdr->priv.get.vert_skip > 0 )
++ if ( the_hdr->priv.get.vert_skip > 0 ) {
+ if ( the_hdr->priv.get.scan_y >= the_hdr->ymax )
+ {
+ int y = the_hdr->priv.get.scan_y;
+@@ -377,6 +378,7 @@
+ }
+ else
+ return the_hdr->priv.get.scan_y;
++ }
+ }
+
+ /* If EOF has been encountered, return also */
+@@ -457,11 +459,12 @@
+ else
+ nc = DATUM(inst);
+ nc++;
+- if ( debug_f )
++ if ( debug_f ) {
+ if ( RLE_BIT( *the_hdr, channel ) )
+ fprintf( stderr, "Pixel data %d (to %d):", nc, scan_x+nc );
+ else
+ fprintf( stderr, "Pixel data %d (to %d)\n", nc, scan_x+nc);
++ }
+ if ( RLE_BIT( *the_hdr, channel ) )
+ {
+ /* Don't fill past end of scanline! */
+--- lib/rle_putcom.c
++++ lib/rle_putcom.c
+@@ -53,11 +53,12 @@
+ {
+ for ( ; *n != '\0' && *n != '=' && *n == *v; n++, v++ )
+ ;
+- if (*n == '\0' || *n == '=')
++ if (*n == '\0' || *n == '=') {
+ if ( *v == '\0' )
+ return v;
+ else if ( *v == '=' )
+ return ++v;
++ }
+
+ return NULL;
+ }