URT library: packaged

svn path=/nixpkgs/trunk/; revision=24278
This commit is contained in:
Evgeny Egorochkin 2010-10-14 11:54:06 +00:00
parent 0dfc76901b
commit 5a4bc5b072
8 changed files with 704 additions and 0 deletions

@ -0,0 +1,61 @@
{stdenv, fetchurl, ncompress}:
stdenv.mkDerivation rec {
name = "urt-${version}";
version = "3.1b";
src = fetchurl {
url = ftp://ftp.iastate.edu/pub/utah-raster/urt-3.1b.tar.Z;
sha256 = "0hbb3avgvkfb2cksqn6cmmgcr0278nb2qd1srayqx0876pq6g2vd";
};
buildInputs = [ ncompress ];
unpackPhase = ''
mkdir urt
tar xvf "$src" -C urt
'';
patchFlags = "-p0 -d urt";
patches = [ ./urt-3.1b-build-fixes.patch ./urt-3.1b-compile-updates.patch
./urt-3.1b-make.patch ./urt-3.1b-rle-fixes.patch ./urt-3.1b-tempfile.patch ];
postPatch = ''
cd urt
rm bin/README
rm man/man1/template.1
# stupid OS X declares a stack_t type already
sed -i -e 's:stack_t:_urt_stack:g' tools/clock/rleClock.c
sed -i -e '/^CFLAGS/s: -O : :' makefile.hdr
cp "${./gentoo-config}" config/gentoo
'';
configurePhase = ''
./Configure config/gentoo
'';
postInstall = ''
mkdir -p $out/bin
cp bin/* $out/bin
mkdir -p $out/lib
cp lib/librle.a $out/lib
mkdir -p $out/include
cp include/rle*.h $out/include
mkdir -p $out/share/man/man1
cp man/man1/*.1 $out/share/man/man1
mkdir -p $out/share/man/man3
cp man/man3/*.3 $out/share/man/man3
mkdir -p $out/share/man/man5
cp man/man5/*.5 $out/share/man/man5
'';
meta = {
homepage = http://www.cs.utah.edu/gdc/projects/urt/;
description = "The Utah Raster Toolkit is a library for dealing with raster images";
};
}

@ -0,0 +1,52 @@
#define ABEKASA60
#define ABEKASA62
#define ALIAS
##define CGM
#define CUBICOMP
##define DVIRLE
#define GRAYFILES
#define MACPAINT
##define PBMPLUS
##define SUNRASTER
#define TARGA
#define VICAR
#define WASATCH
#define WAVEFRONT
#define GCC
#define CONST_DECL
#define NO_MAKE_MAKEFILE
#define USE_TIME_H
#define SYS_V_SETPGRP
#define USE_PROTOTYPES
#define USE_RANDOM
#define USE_STDARG
#define USE_STDLIB_H
#define USE_UNISTD_H
#define USE_STRING_H
#define VOID_STAR
#define USE_XLIBINT_H
#define X_SHARED_MEMORY
#defpath DEST bin
#defpath RI include
#defpath RL lib
ROFF = nroff
ROFFOPT = -man
ROFFPIPE = | lpr
INCTIFF =
LIBTIFF = -ltiff
INCX11 =
LIBX11 = -lX11
# Most people have migrated X11 to /usr/lib, but just in case ...
check_x11=$(shell \
echo 'int main(){}' > test.c ; \
if ! $(CC) test.c -lX11 -o .urt-x11-test 2>/dev/null ; then \
echo "-L/usr/X11R6/lib" ; \
fi ; \
rm -f .urt-x11-test test.c)
LIBX11 += $(call check_x11)

@ -0,0 +1,151 @@
some hosts are more anal about ar usage than others
http://bugs.gentoo.org/107428
respect user LDFLAGS
http://bugs.gentoo.org/126872
--- lib/makefile.src
+++ lib/makefile.src
@@ -181,8 +181,7 @@
# Rebuild the library from all the .o files.
buildlib: $(OBJS)
-rm -f $(LIBNAME)
- ar rc $(LIBNAME)
- ar q $(LIBNAME) $(OBJS)
+ ar rc $(LIBNAME) $(OBJS)
#ifndef NO_RANLIB
ranlib $(LIBNAME)
#endif
--- tools/clock/makefile.src
+++ tools/clock/makefile.src
@@ -6,7 +6,7 @@ install: rleClock
mv rleClock ../rleClock.out
rleClock:rleClock.o font.o
- ${CC} ${CFLAGS} rleClock.o font.o -lm ${LIBS} -o rleClock
+ ${CC} ${CFLAGS} ${LDFLAGS} rleClock.o font.o ${LIBS} -o rleClock -lm
font.c:font.src makeFont
chmod +x makeFont
--- tools/makefile.src
+++ tools/makefile.src
@@ -62,21 +62,21 @@ applymap.out rlebg.out: $(RI)/rle_raw.h
pyrlib.o: pyrlib.c $(RI)/pyramid.h $(RI)/rle.h $(RI)/rle_config.h
$(CC) $(CFLAGS) pyrlib.c -c
pyrmask.out: pyrlib.o pyrmask.c $(RI)/pyramid.h
- $(CC) $(CFLAGS) -I$(RI) pyrmask.c pyrlib.o $(LIBS) -lm -o pyrmask.new
+ $(CC) $(LDFLAGS) $(CFLAGS) -I$(RI) pyrmask.c pyrlib.o $(LIBS) -lm -o pyrmask.new
mv pyrmask.new pyrmask.out
fant.out: fant.o mallocNd.o
- $(CC) $(CFLAGS) -I$(RI) fant.o mallocNd.o $(LIBS) -lm -o fant.new
+ $(CC) $(LDFLAGS) $(CFLAGS) -I$(RI) fant.o mallocNd.o $(LIBS) -lm -o fant.new
mv fant.new fant.out
# rlebox and crop use some common code.
rle_box.o: $(RI)/rle.h $(RI)/rle_config.h $(RI)/rle_raw.h
crop.out: crop.c rle_box.o
- ${CC} ${CFLAGS} crop.c rle_box.o ${LIBS} -o crop.new
+ ${CC} ${LDFLAGS} ${CFLAGS} crop.c rle_box.o ${LIBS} -o crop.new
mv crop.new crop.out
rlebox.out: rlebox.c rle_box.o
- ${CC} ${CFLAGS} rlebox.c rle_box.o ${LIBS} -o rlebox.new
+ ${CC} ${LDFLAGS} ${CFLAGS} rlebox.c rle_box.o ${LIBS} -o rlebox.new
mv rlebox.new rlebox.out
# rleClock has it's own directory, must be built special
@@ -100,7 +100,7 @@ clean: clean-pgm
.SUFFIXES:
.SUFFIXES: .out .c .o
.c.out:
- $(CC) $(CFLAGS) $< $(LIBS) -lm -o $*.new
+ $(CC) $(LDFLAGS) $(CFLAGS) $< $(LIBS) -lm -o $*.new
mv $*.new $@
.c.o:
--- cnv/makefile.src
+++ cnv/makefile.src
@@ -76,13 +76,13 @@ PBMDIR =
# ppmtorle - ppm format to RLE
# rletoppm - RLE to ppm format
pgmtorle.out: pgmtorle.c
- $(CC) $(CFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new
mv $*.new $@
ppmtorle.out: ppmtorle.c
- $(CC) $(CFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new
mv $*.new $@
rletoppm.out: rletoppm.c
- $(CC) $(CFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) $(INCPBMPLUS) $*.c $(LIBS) $(LIBPBMPLUS) -o $*.new
mv $*.new $@
#endif
@@ -95,10 +95,10 @@ rletoppm.out: rletoppm.c
# iristorle/rletoiris - Convert between RLE and SGI image format.
#
iristorle.out: iristorle.c
- $(CC) $(CFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new
mv $*.new $@
rletoiris.out: rletoiris.c
- $(CC) $(CFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) -I/usr/include/gl $*.c $(LIBS) -limage -o $*.new
mv $*.new $@
#endif
@@ -108,10 +108,10 @@ TIFFDIR =
# tifftorle - Convert TIFF images to RLE
# rletotiff - Convert RLE images to TIFF
rletotiff.out: rletotiff.c
- $(CC) $(CFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new
mv $*.new $@
tifftorle.out: tifftorle.c
- $(CC) $(CFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) $(INCTIFF) $*.c $(LIBS) $(LIBTIFF) -lm -o $*.new
mv $*.new $@
#endif
@@ -125,7 +125,7 @@ tifftorle.out: tifftorle.c
# Will build with the default rule.
# rletorla - RLE to Wavefront RLA
rletorla.out: rletorla.c
- $(CC) $(CFLAGS) $*.c $(LIBS) $(LIBWAVEFRONT) -lm -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBS) $(LIBWAVEFRONT) -lm -o $*.new
mv $*.new $@
#endif WAVEFRONT
@@ -144,7 +144,7 @@ pristine: pristine-pgm
.SUFFIXES:
.SUFFIXES: .out .c
.c.out:
- $(CC) $(CFLAGS) $*.c $(LIBS) -lm -o $*.new
+ $(CC) $(CFLAGS) $(LDFLAGS) $*.c $(LIBS) -lm -o $*.new
mv $*.new $@
# Dependency lines. Make sure to #ifdef them.
--- cnv/rletoabA62/makefile.src
+++ cnv/rletoabA62/makefile.src
@@ -15,7 +15,7 @@ all : $(PGMS)
# Executables. The .out will be stripped off in the install action.
rletoabA62.out : rletoabA62.o rle.o
- $(CC) $(CFLAGS) -o rletoabA62.new \
+ $(CC) $(CFLAGS) $(LDFLAGS) -o rletoabA62.new \
rletoabA62.o rle.o $(LIBS)
mv rletoabA62.new rletoabA62.out
--- cnv/rletogif/makefile.src
+++ cnv/rletogif/makefile.src
@@ -15,7 +15,7 @@ all: $(PGMS)
# The executable. The ".out" will be stripped off in the install action.
rletogif.out: ${OBJ}
- ${CC} ${CFLAGS} ${OBJ} ${LIBS} -o rletogif.new
+ ${CC} ${CFLAGS} ${LDFLAGS} ${OBJ} ${LIBS} -o rletogif.new
mv rletogif.new rletogif.out
# Incremental install, copies executable to DEST dir.

@ -0,0 +1,141 @@
--- get/getx11/XGetHClrs.c
+++ get/getx11/XGetHClrs.c
@@ -1,5 +1,4 @@
#ifndef XLIBINT_H_NOT_AVAILABLE
-#include <X11/copyright.h>
/* $XConsortium: XGetHClrs.c,v 11.10 88/09/06 16:07:50 martin Exp $ */
/* Copyright Massachusetts Institute of Technology 1986 */
--- tools/mallocNd.c
+++ tools/mallocNd.c
@@ -67,7 +67,7 @@
/* Imports */
#include <stdio.h>
-extern char *malloc();
+#include <string.h>
/* Forward declarations */
char *BuildIndirectionTable();
--- tools/into.c
+++ tools/into.c
@@ -40,8 +40,8 @@
static char buf[MAXPATHLEN+1];
short forceflg; /* overwrite an unwritable file? */
-extern int errno;
-extern char *sys_errlist[];
+#include <errno.h>
+#include <string.h>
void
main(argc, argv)
@@ -103,7 +103,7 @@
if (ferror(outf))
{
fprintf(stderr, "into: %s, \"%s\" not modified\n",
- sys_errlist[errno], argv[1]);
+ strerror(errno), argv[1]);
unlink(buf);
exit(1);
}
--- cnv/tex/dvirle2.c
+++ cnv/tex/dvirle2.c
@@ -55,7 +55,6 @@
void DumpTopOfBand(), MoveDown(), WriteBuf(), WriteBlanks();
char *ProgName;
-extern int errno;
extern char *optarg;
extern int optind;
--- cnv/wasatchrle.c
+++ cnv/wasatchrle.c
@@ -32,7 +32,6 @@
#include <errno.h>
#include "rle.h"
-extern int errno;
/* "short" in our world is 16 bits. Beware of swyte-bopping. */
--- get/getx11/x11_stuff.c
+++ get/getx11/x11_stuff.c
@@ -155,7 +155,6 @@
IPC_CREAT|0777 );
if ( img->shm_img.shmid < 0 )
{
- extern int errno;
if ( errno == ENOSPC )
{
if ( !no_shared_space )
@@ -361,7 +360,6 @@ Boolean reallocate;
XDestroyImage( image );
if ( img->shm_pix.shmid < 0 )
{
- extern int errno;
if ( errno == ENOSPC )
{
if ( !no_shared_space )
--- get/qcr/qcr.h
+++ get/qcr/qcr.h
@@ -6,8 +6,6 @@
#define GREEN 1
#define BLUE 2
-extern int errno;
-
/* Command defs for QCR-Z Film Recorder */
/* These are for 8 bit Look Up Tables */
--- get/gettaac.c
+++ get/gettaac.c
@@ -24,6 +24,7 @@
* Send bug fixes and improvements to: ksp@maxwell.nde.swri.edu
*/
+#include <errno.h>
#include <stdio.h>
#include <strings.h>
#include <signal.h>
@@ -459,7 +460,6 @@ char *template;
char nonUnique;
char twiddleUserCompletion;
- extern int errno;
struct direct *nameEntry;
DIR *dirChan;
struct passwd *pwdEntry;
--- tools/clock/rleClock.c
+++ tools/clock/rleClock.c
@@ -598,7 +598,7 @@
{ TRUE, "-tf", STRING, "Text area format string", (char *)&FormatString },
{ FALSE, "-Xm", BOOL, "Output the alpha channel on RGB", (char *)&DebugAlpha },
{ FALSE, "-D", BOOL, "Turn on debugging", (char *)&Debug },
- NULL
+ { FALSE, NULL }
};
void
--- tools/to8.c
+++ tools/to8.c
@@ -175,7 +175,7 @@
* Give it a background color of black, since the real background
* will be dithered anyway.
*/
- if ( in_hdr.background != NULL )
+ if ( in_hdr.background != 0 )
{
out_hdr.bg_color = (int *)malloc( sizeof( int ) );
RLE_CHECK_ALLOC( cmd_name( argv ), out_hdr.bg_color, 0 );
--- cnv/rletoabA62/rletoabA62.c
+++ cnv/rletoabA62/rletoabA62.c
@@ -157,7 +157,7 @@
exit(1);
}
if (optind < argc) {
- if ((file = open(argv[optind], 0)) == NULL) {
+ if ((file = open(argv[optind], 0)) == -1) {
perror(argv[optind]);
exit(1);
}

@ -0,0 +1,75 @@
Index: makefile.src
===================================================================
--- makefile.src
+++ makefile.src
@@ -17,7 +17,7 @@ all: default
# clean deletes all but source, pristine (below) deletes installed stuff, too
default clean: doit
@for d in $(DIRS) ; do \
- ( cd $$d ; echo make $@ on $$d ; make $(MFLAGS) $@ ) ; \
+ ( cd $$d ; echo $(MAKE) $@ on $$d ; $(MAKE) $(MFLAGS) $@ ) ; \
done
# install puts library, binaries and documentation into global location
@@ -29,7 +29,7 @@ MAKE_TARGET =
install $(MAKE_TARGET) pristine depend:: doit
@for d in $(ALLDIRS) ; do \
- ( cd $$d ; echo make $@ on $$d ; make $(MFLAGS) $@ ) ; \
+ ( cd $$d ; echo $(MAKE) $@ on $$d ; $(MAKE) $(MFLAGS) $@ ) ; \
done
Index: tools/makefile.src
===================================================================
--- tools/makefile.src
+++ tools/makefile.src
@@ -82,7 +82,7 @@ rlebox.out: rlebox.c rle_box.o
# rleClock has it's own directory, must be built special
rleClock.out: clock/font.c clock/font.h clock/font.src clock/rleClock.c
- (cd clock ; make)
+ (cd clock ; $(MAKE))
# Incremental install, copies everything ("$?") since last install to DEST dir.
install: $(PGMS) install-pgm
Index: makefile.tlr
===================================================================
--- makefile.tlr
+++ makefile.tlr
@@ -7,7 +7,7 @@ subdirs:
@sh -c "if test 'x$(DIRS)' != x ; then eval \
'set -e ; for dir in $(DIRS) ; do \
(cd \$$dir ; echo Make ${HERE}\$$dir ; \
- make $(MFLAGS) $(DIRMFLAGS) ) ; \
+ $(MAKE) $(MFLAGS) $(DIRMFLAGS) ) ; \
done' ; \
else \
true ; \
@@ -46,7 +46,7 @@ install-subdirs: subdirs
@sh -c "if test 'x$(DIRS)' != x ; then eval \
'for dir in $(DIRS) ; do \
(cd \$$dir ; echo Install ${HERE}\$$dir ; \
- make $(MFLAGS) $(DIRMFLAGS) install) ; \
+ $(MAKE) $(MFLAGS) $(DIRMFLAGS) install) ; \
done' ; \
else \
true ; \
@@ -105,7 +105,7 @@ pristine-pgm: clean-pgm
'for dir in $(ALLDIRS); do \
if test -d $$dir ; then \
(cd $$dir; echo Make ${HERE}$$dir pristine ; \
- make $(MFLAGS) pristine); \
+ $(MAKE) $(MFLAGS) pristine); \
else \
true; \
fi; \
@@ -124,7 +124,7 @@ clean-pgm:
'for dir in $(ALLDIRS); do \
if test -d $$dir ; then \
(cd $$dir; echo Clean ${HERE}$$dir ; \
- make $(MFLAGS) clean); \
+ $(MAKE) $(MFLAGS) clean); \
else \
true; \
fi; \

@ -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;
}

@ -0,0 +1,19 @@
--- tools/rlecat.c
+++ tools/rlecat.c
@@ -110,8 +110,14 @@
nflag = 0; /* Not really repeating! */
else
{
- mktemp( temp ); /* Make a temporary file name */
- tmpfile = rle_open_f( cmd_name( argv ), temp, "w+" );
+ /* we dont have to use rle_open_f() because all it does in
+ * this case is run fopen() ... we're creating a file so all
+ * the checks for opening an existing file aren't needed */
+ int fd = mkstemp(temp);
+ if (fd == -1 || (tmpfile = fdopen(fd, "w+")) == NULL) {
+ perror("Unable to open tempfile");
+ exit(-1);
+ }
}
}

@ -3845,6 +3845,8 @@ let
inherit postgresql mysql sqlite;
});
urt = callPackage ../development/libraries/urt { };
vamp = callPackage ../development/libraries/audio/vamp { };
vigra = callPackage ../development/libraries/vigra { };