summaryrefslogtreecommitdiffstats
path: root/tools/gifconv
diff options
context:
space:
mode:
Diffstat (limited to 'tools/gifconv')
-rw-r--r--tools/gifconv/decompress.c12
-rw-r--r--tools/gifconv/gif.h1
-rw-r--r--tools/gifconv/gif2hdf.c9
-rw-r--r--tools/gifconv/gif2mem.c1
-rw-r--r--tools/gifconv/gifread.c39
-rw-r--r--tools/gifconv/hdf2gif.c21
-rw-r--r--tools/gifconv/hdfgifwr.c60
-rw-r--r--tools/gifconv/readhdf.c19
-rw-r--r--tools/gifconv/writehdf.c18
9 files changed, 68 insertions, 112 deletions
diff --git a/tools/gifconv/decompress.c b/tools/gifconv/decompress.c
index 18dbb3e..abccb7f 100644
--- a/tools/gifconv/decompress.c
+++ b/tools/gifconv/decompress.c
@@ -19,13 +19,8 @@ static int BitOffset = 0, /* Bit Offset of next code */
XC = 0, YC = 0, /* Output X and Y coords of current pixel */
Pass = 0, /* Used by output routine if WORDerlaced pic */
OutCount = 0, /* Decompressor output 'stack count' */
-RWidth, RHeight, /* screen dimensions */
IWidth, IHeight, /* image dimensions */
-LeftOfs, TopOfs, /* image offset */
-BitsPerPixel, /* Bits per pixel, read from GIF header */
BytesPerScanline, /* Bytes per scanline in output raster */
-ColorMapSize, /* number of colors */
-Background, /* background color */
CodeSize, /* Code size, read from GIF header */
InitCodeSize, /* Starting code size, used during Clear */
Code, /* Value returned by ReadCode */
@@ -73,7 +68,7 @@ int numused;
* three BYTEs, compute the bit Offset WORDo our 24-bit chunk, shift to
* bring the desired code to the bottom, then mask it off and return it.
*/
-ReadCode()
+static int ReadCode(void)
{
int RawCode, ByteOffset;
@@ -87,8 +82,7 @@ ReadCode()
}
-AddToPixel(Index)
-BYTE Index;
+static void AddToPixel(BYTE Index)
{
if (YC<IHeight)
*(Image + YC * BytesPerScanline + XC) = Index;
@@ -202,7 +196,7 @@ GIFHEAD *GifHead;
/* Allocate the Image */
- if (!(Image = (BYTE *)malloc(IWidth*IHeight))) {
+ if (!(Image = (BYTE *)malloc((size_t)IWidth*(size_t)IHeight))) {
printf("Out of memory");
exit(-1);
}
diff --git a/tools/gifconv/gif.h b/tools/gifconv/gif.h
index f697881..3f2a8da 100644
--- a/tools/gifconv/gif.h
+++ b/tools/gifconv/gif.h
@@ -169,7 +169,6 @@ int WriteHDF(GIFTOMEM , CHAR * , CHAR *);
*/
int ReadHDF(BYTE** data , BYTE palette[256][3] , hsize_t *image_size , CHAR *h5_file , CHAR *dset_name , CHAR *pal_name);
-BYTE *ReadDataSubBlocks(BYTE ** , WORD *);
BYTE *Decompress (GIFIMAGEDESC * , GIFHEAD *);
BYTE GetByte(BYTE *);
WORD GetWord(BYTE *);
diff --git a/tools/gifconv/gif2hdf.c b/tools/gifconv/gif2hdf.c
index 0211143..6b4ae2b 100644
--- a/tools/gifconv/gif2hdf.c
+++ b/tools/gifconv/gif2hdf.c
@@ -3,10 +3,9 @@
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
+
int
-main(argv , argc)
-int argv;
-char *argc[];
+main(int argv , char *argc[])
{
GIFTOMEM GifMemoryStruct;
@@ -60,11 +59,11 @@ char *argc[];
filesize = ftell(fpGif);
fseek(fpGif, 0L , 0);
if (filesize == 0) printf("File Size Zero");
- if (!(MemGif = StartPos = (BYTE *)malloc(filesize))) {
+ if (!(MemGif = StartPos = (BYTE *)malloc((size_t)filesize))) {
printf("Out of memory");
exit (-1);
}
- if (fread(MemGif,filesize,1,fpGif) != 1) {
+ if (fread(MemGif,(size_t)filesize,1,fpGif) != 1) {
printf("Corrupted Input File");
exit(-1);
}
diff --git a/tools/gifconv/gif2mem.c b/tools/gifconv/gif2mem.c
index 92ca8e5..830eba7 100644
--- a/tools/gifconv/gif2mem.c
+++ b/tools/gifconv/gif2mem.c
@@ -25,7 +25,6 @@
/* #include <hdf.h> */
#define VERSION "1.00"
-extern int EndianOrder;
GIFTOMEM
Gif2Mem(MemGif)
diff --git a/tools/gifconv/gifread.c b/tools/gifconv/gifread.c
index 1196241..cb033d9 100644
--- a/tools/gifconv/gifread.c
+++ b/tools/gifconv/gifread.c
@@ -3,14 +3,14 @@
#include "gif.h"
int EndianOrder;
-int i;
+static BYTE * ReadDataSubBlocks(BYTE **MemGif2, WORD *DSize);
WORD
GetWord (MemGif)
BYTE *MemGif;
{
- register WORD w;
+ WORD w;
if (EndianOrder == 1) /* LittleEndian */
{
w = (WORD) (*MemGif++ & 0xFF);
@@ -46,14 +46,14 @@ ReadGifHeader(GifHead, MemGif2)
GIFHEAD *GifHead; /* Pointer to GIF header structure */
BYTE **MemGif2; /* GIF image file input FILE stream */
{
- register WORD i; /* Loop counter */
+ WORD i; /* Loop counter */
WORD tableSize; /* Number of entires in the Global Color Table */
GifHead->TableSize = 0;
for (i = 0 ; i < 6 ; i++) {
GifHead->HeaderDump[i] = *(*MemGif2)++;
}
- if (strncmp(GifHead->HeaderDump , "GIF" , 3)) {
+ if (strncmp((const char *)GifHead->HeaderDump , "GIF" , 3)) {
printf("The file does not appear to be a valid GIF file.\n");
exit(-1);
}
@@ -114,9 +114,9 @@ ReadGifImageDesc(GifImageDesc, MemGif2)
GIFIMAGEDESC *GifImageDesc; /* Pointer to GIF image descriptor structure */
BYTE **MemGif2; /* GIF image file input FILE stream */
{
- register WORD i; /* Loop counter */
+ WORD i; /* Loop counter */
WORD tableSize; /* Number of entries in the Local Color Table */
- BYTE Interlace; /* PackedField & 0x20 gives information on interlacing */
+ /* BYTE Interlace; */ /* PackedField & 0x20 gives information on interlacing */
BYTE *TempPtr;
int ch , ch1;
@@ -210,11 +210,11 @@ ReadGifGraphicControl(GifGraphicControl, MemGif2)
GIFGRAPHICCONTROL *GifGraphicControl; /* Pointer to GC Extension structure */
BYTE **MemGif2; /* GIF image file input FILE stream */
{
+ int i;
-
- for (i = 0 ; i < 5 ; i++) {
- GifGraphicControl->GCEDump[i] = *(*MemGif2)++;
- }
+ for (i = 0 ; i < 5 ; i++) {
+ GifGraphicControl->GCEDump[i] = *(*MemGif2)++;
+ }
return(0); /* No FILE stream error occured */
}
@@ -234,6 +234,8 @@ ReadGifPlainText(GifPlainText, MemGif2)
GIFPLAINTEXT *GifPlainText; /* Pointer to Plain Text Extension structure */
BYTE **MemGif2; /* GIF image file input FILE stream */
{
+ int i;
+
for (i = 0 ; i < 13 ; i++) {
GifPlainText->PTEDump[i] = *(*MemGif2)++;
}
@@ -270,6 +272,8 @@ ReadGifApplication(GifApplication, MemGif2)
GIFAPPLICATION *GifApplication; /* Pointer to Application Extension structure */
BYTE **MemGif2; /* GIF image file input FILE stream */
{
+ int i;
+
for (i = 0 ; i < 12 ; i++) {
GifApplication->AEDump[i] = *(*MemGif2)++;
}
@@ -327,9 +331,8 @@ BYTE **MemGif2; /* GIF image file input FILE stream */
** otherwise a valid pointer if no error occured.
*/
static BYTE *
-ReadDataSubBlocks(MemGif2 , DSize)
-BYTE **MemGif2; /* GIF image file input FILE stream */
-WORD *DSize;
+ReadDataSubBlocks(BYTE **MemGif2, /* GIF image file input FILE stream */
+ WORD *DSize)
{
BYTE *ptr1; /* Pointer used to "walk the heap" */
BYTE *ptr2; /* Pointer used to mark the top of the heap */
@@ -342,7 +345,7 @@ WORD *DSize;
dataSize = *(*MemGif2)++; /* Get the size of the first sub-block */
/* Allocate initial data buffer */
- if (!(ptr1 = ptr2 = (BYTE *) malloc(dataSize + 1))) {
+ if (!(ptr1 = ptr2 = (BYTE *) malloc((size_t)dataSize + 1))) {
printf("Out of memory. Allocation of memory for data sub-blocks for\neither Comment, Plain Text or Application Extensions failed");
return((BYTE *) NULL);
}
@@ -352,7 +355,9 @@ WORD *DSize;
bufSize += (dataSize); /* Running total of the buffer size */
*DSize = bufSize;
- /* *ptr1++ = dataSize; /* Write the data count */
+#ifdef COMMENTED_OUT
+ *ptr1++ = dataSize; /* Write the data count */
+#endif /* COMMENTED_OUT */
while (dataSize--) /* Read/write the Plain Text data */
*ptr1++ = *(*MemGif2)++;
@@ -370,7 +375,9 @@ WORD *DSize;
}
- /**ptr1++ = (BYTE) NULL; /* Add NULL to simulate Terminator value */
+#ifdef COMMENTED_OUT
+ *ptr1++ = (BYTE) NULL; /* Add NULL to simulate Terminator value */
+#endif /* COMMENTED_OUT */
*ptr1++ = '\0';
return(ptr2); /* Return a pointer to the sub-block data */
diff --git a/tools/gifconv/hdf2gif.c b/tools/gifconv/hdf2gif.c
index 9c4133e..39c75d1 100644
--- a/tools/gifconv/hdf2gif.c
+++ b/tools/gifconv/hdf2gif.c
@@ -19,16 +19,18 @@ extern int hdfWriteGIF(FILE *fp, BYTE *pic, int ptype, int w, int h, BYTE *rmap,
int EndianOrder;
-void PutByte(BYTE b , FILE *fpGif)
+#ifdef NOT_USED
+static void PutByte(BYTE b , FILE *fpGif)
{
if (fputc(b , fpGif) == EOF) {
printf("File Writing Error, cannot continue");
exit(-1);
}
}
+#endif /* NOT_USED */
-void putword(int w, FILE *fp)
+static void putword(int w, FILE *fp)
{
/* writes a 16-bit integer in GIF order (LSB first) */
@@ -37,7 +39,8 @@ void putword(int w, FILE *fp)
fputc((w>>8)&0xff,fp);
}
-void usage() {
+static void usage(void )
+{
printf("Usage: h52gif <h5_file> <gif_file> -i <h5_image> [-p <h5_palette>]\n");
printf("h52gif expects *at least* one h5_image. You may repeat -i <h5_image> [-p <h5_palette>] at most 50 times (maximum of 50 images).\n");
}
@@ -53,8 +56,6 @@ int main(int argc , char **argv) {
CHAR *HDFName = NULL;
CHAR *GIFName = NULL;
- CHAR *image_path = NULL;
- CHAR *pal_path = NULL;
/* reference variables */
int has_local_palette; /* treated as a flag */
@@ -76,7 +77,7 @@ int main(int argc , char **argv) {
int CountDown;
int curx , cury;
int time_out = 0; /* time between two images in the animation */
- int n_images , index;
+ int n_images , idx;
BYTE pc2nc[256] , r1[256] , g1[256] , b1[256];
@@ -172,7 +173,7 @@ int main(int argc , char **argv) {
n_images = number_of_images;
Background = 0;
- for (index = 0 ; index < n_images ; index++) {
+ for (idx = 0 ; idx < n_images ; idx++) {
/* try to read the image and the palette */
/* Lots of funky stuff to support multiple images has been taken off.
@@ -183,7 +184,7 @@ int main(int argc , char **argv) {
** to write the global palette out and then independantly write the smaller local
** palettes
*/
- if (ReadHDF(&Image , GlobalPalette , dim_sizes , HDFName , image_name_arr[index] , pal_name_arr[index]) < 0) {
+ if (ReadHDF(&Image , GlobalPalette , dim_sizes , HDFName , image_name_arr[idx] , pal_name_arr[idx]) < 0) {
fprintf(stderr , "Unable to read HDF file\n");
return -1;
}
@@ -257,7 +258,7 @@ int main(int argc , char **argv) {
/* If it is the first image we do all the header stuff that isn't required for the
** rest of the images.
*/
- if (index == 0) {
+ if (idx == 0) {
/* Write out the GIF header and logical screen descriptor */
if (n_images > 1) {
fwrite("GIF89a", 1, 6, fpGif); /* the GIF magic number */
@@ -331,7 +332,7 @@ int main(int argc , char **argv) {
fputc (InitCodeSize , fpGif);
- i = hdfWriteGIF(fpGif , Image , 0 , dim_sizes[0] , dim_sizes[1] , r1, g1 , b1 , pc2nc , 256 , 8 , BitsPerPixel);
+ i = hdfWriteGIF(fpGif , Image , 0 , (int)dim_sizes[0] , (int)dim_sizes[1] , r1, g1 , b1 , pc2nc , 256 , 8 , BitsPerPixel);
fputc(0x00 , fpGif);
free (Image);
}
diff --git a/tools/gifconv/hdfgifwr.c b/tools/gifconv/hdfgifwr.c
index 28d556e..62b3eae 100644
--- a/tools/gifconv/hdfgifwr.c
+++ b/tools/gifconv/hdfgifwr.c
@@ -67,7 +67,6 @@ static long CountDown;
static int Interlace;
#ifdef __STDC__
-static void putword(int, FILE *);
static void compress(int, FILE *, byte *, int);
static void output(int);
static void cl_block(void);
@@ -76,27 +75,16 @@ static void char_init(void);
static void char_out(int);
static void flush_char(void);
#else
-static void putword(), compress(), output(), cl_block(), cl_hash();
+static void compress(), output(), cl_block(), cl_hash();
static void char_init(), char_out(), flush_char();
#endif
static byte pc2nc[256],r1[256],g1[256],b1[256];
-void xvbzero(s, len)
- char *s;
- int len;
-{
- for ( ; len>0; len--) *s++ = 0;
-}
-
/*************************************************************/
-int hdfWriteGIF(fp, pic, ptype, w, h, rmap, gmap, bmap, pc2ncmap, numcols, colorstyle, BitsPerPixel)
- FILE *fp;
- byte *pic;
- int ptype, w,h;
- byte *rmap, *gmap, *bmap , *pc2ncmap;
- int numcols, colorstyle;
- int BitsPerPixel;
+int hdfWriteGIF(FILE *fp, byte *pic, int ptype, int w, int h, byte *rmap,
+ byte *gmap, byte *bmap, byte *pc2ncmap, int numcols, int colorstyle,
+ int BitsPerPixel)
{
int RWidth, RHeight;
int LeftOfs, TopOfs;
@@ -143,21 +131,6 @@ int hdfWriteGIF(fp, pic, ptype, w, h, rmap, gmap, bmap, pc2ncmap, numcols, colo
-/******************************/
-static void putword(w, fp)
-int w;
-FILE *fp;
-{
- /* writes a 16-bit integer in GIF order (LSB first) */
-
- fputc(w &0xff, fp);
-
- fputc((w>>8)&0xff,fp);
-}
-
-
-
-
/***********************************************************************/
static unsigned long cur_accum = 0;
static int cur_bits = 0;
@@ -252,8 +225,8 @@ int len;
/* initialize 'compress' globals */
maxbits = XV_BITS;
maxmaxcode = 1<<XV_BITS;
- xvbzero((char *) htab, sizeof(htab));
- xvbzero((char *) codetab, sizeof(codetab));
+ memset(htab, 0, sizeof(htab));
+ memset(codetab, 0, sizeof(codetab));
hsize = HSIZE;
free_ent = 0;
clear_flg = 0;
@@ -375,7 +348,7 @@ int code;
cur_bits += n_bits;
while( cur_bits >= 8 ) {
- char_out( (unsigned int) (cur_accum & 0xff) );
+ char_out( (int)((unsigned int) cur_accum & 0xff) );
cur_accum >>= 8;
cur_bits -= 8;
}
@@ -403,7 +376,7 @@ int code;
if( code == EOFCode ) {
/* At EOF, write the rest of the buffer */
while( cur_bits > 0 ) {
- char_out( (unsigned int)(cur_accum & 0xff) );
+ char_out( (int)((unsigned int)cur_accum & 0xff) );
cur_accum >>= 8;
cur_bits -= 8;
}
@@ -434,14 +407,14 @@ static void cl_block () /* table clear for block compress */
/********************************/
-static void cl_hash(hsize) /* reset code table */
-register count_int hsize;
+static void cl_hash(hashsize) /* reset code table */
+count_int hashsize;
{
- register count_int *htab_p = htab+hsize;
- register long i;
- register long m1 = -1;
+ count_int *htab_p = htab+hashsize;
+ long i;
+ long m1 = -1;
- i = hsize - 16;
+ i = hashsize - 16;
do { /* might use Sys V memset(3) here */
*(htab_p-16) = m1;
*(htab_p-15) = m1;
@@ -495,8 +468,7 @@ static char accum[ 256 ];
* Add a character to the end of the current packet, and if it is 254
* characters, flush the packet to disk.
*/
-static void char_out(c)
-int c;
+static void char_out(int c)
{
accum[ a_count++ ] = c;
if( a_count >= 254 )
@@ -510,7 +482,7 @@ static void flush_char()
{
if( a_count > 0 ) {
fputc( a_count, g_outfile );
- fwrite( accum, 1, a_count, g_outfile );
+ fwrite( accum, 1, (size_t)a_count, g_outfile );
a_count = 0;
}
}
diff --git a/tools/gifconv/readhdf.c b/tools/gifconv/readhdf.c
index a7101c9..52a1837 100644
--- a/tools/gifconv/readhdf.c
+++ b/tools/gifconv/readhdf.c
@@ -35,14 +35,10 @@ int ReadHDF(BYTE** data ,
herr_t status; /* status variable */
hid_t dspace; /* dataspace identifier for the the dataset */
hid_t dset; /* dataset identifier */
-
hid_t pal_set; /* dataset for palette */
hid_t pal_space;/* dataspace for palette */
- hsize_t pal_size; /* size of the palette */
-
hsize_t datasize; /* size of the image */
hsize_t maxdims; /* dummy */
-
int pal_exist = 0; /* do we have a palette? */
/* check stuff */
@@ -85,7 +81,7 @@ int ReadHDF(BYTE** data ,
datasize = image_size[0] * image_size[1];
/* allocate memory to store the image */
- if ((*data = (BYTE*) malloc(datasize)) == NULL) {
+ if ((*data = (BYTE*) malloc((size_t)datasize)) == NULL) {
fprintf(stderr , "Out of memory, exiting");
return -1;
}
@@ -98,11 +94,8 @@ int ReadHDF(BYTE** data ,
}
if (pal_exist) {
- hsize_t pal_size[2];
- hsize_t max_pal_dims[2];
+ hsize_t loc_pal_size[2];
hsize_t pal_datasize;
- CHAR *pal_path;
-
BYTE *temp_buf;
hsize_t temp_size;
@@ -121,19 +114,19 @@ int ReadHDF(BYTE** data ,
}
/* get the dimension size of the palette. */
- if (H5Sget_simple_extent_dims(pal_space , pal_size , &max_pal_dims) !=2 ) {
+ if (H5Sget_simple_extent_dims(pal_space , loc_pal_size , NULL) !=2 ) {
fprintf(stderr , "Unable to get dimension info\n");
pal_exist = 0;
return -1;
}
/* size needed to store the image */
- pal_datasize = pal_size[0] * pal_size[1];
+ pal_datasize = loc_pal_size[0] * loc_pal_size[1];
/* copy stuff into a temp buffer and then copy 256*3 elements to palette */
temp_size = H5Dget_storage_size(pal_set);
- temp_buf = (BYTE*) malloc (temp_size * sizeof(BYTE));
+ temp_buf = (BYTE*) malloc ((size_t)temp_size * sizeof(BYTE));
/* make sure that the palette is actually 256 X 3 so that we don't create overflows */
if (pal_datasize > 256 * 3)
@@ -152,7 +145,7 @@ int ReadHDF(BYTE** data ,
}
/* copy stuff into the actual palette */
- memcpy(palette , temp_buf , pal_datasize);
+ memcpy(palette , temp_buf , (size_t)pal_datasize);
/* get rid of the temp memory */
cleanup(temp_buf);
diff --git a/tools/gifconv/writehdf.c b/tools/gifconv/writehdf.c
index 7afccdf..5426c27 100644
--- a/tools/gifconv/writehdf.c
+++ b/tools/gifconv/writehdf.c
@@ -7,7 +7,8 @@
** Function: write_text_attribute
** Use: Just a small wrapper to write text attributes easily
********************************************************************/
-int write_text_attribute(hid_t dataset_id , char *attr_name , char *attr_value) {
+static int write_text_attribute(hid_t dataset_id , const char *attr_name , const char *attr_value)
+{
/* variables for the attributes */
hsize_t attr_dims_size; /* dimensions for the attribute */
@@ -26,7 +27,7 @@ int write_text_attribute(hid_t dataset_id , char *attr_name , char *attr_value)
/* set the type to string */
attr_type_id = H5Tcopy(H5T_C_S1);
- H5Tset_size(attr_type_id , attr_dims_size);
+ H5Tset_size(attr_type_id , (size_t)attr_dims_size);
/* create the dataspace for the attribute */
attr_dataspace_id = H5Screate_simple(1 , &attr_dims_size , NULL);
@@ -59,18 +60,14 @@ char *HDFName;
char *GIFFileName;
{
GIFHEAD gifHead; /* GIF Header structure */
- GIFIMAGEDESC* gifImageDesc; /* Logical Image Descriptor struct */
+ GIFIMAGEDESC* gifImageDesc; /* Logical Image Descriptor struct */
long ImageCount , /* number of images */
CommentCount, /* number of comments */
ApplicationCount , /* number of application extensions */
PlainTextCount; /* number of plain text extensions */
- char ImageName[256], /* Image name for the GR Image */
- CommentName[256],
- ApplicationName[256],
- PlainTextName[256];
-
+ char ImageName[256]; /* Image name for the GR Image */
char GroupName[VSNAMELENMAX]; /* so that we can name the subgroups appropriately */
/* H5 variables */
@@ -82,11 +79,6 @@ char *GIFFileName;
/* temp counter */
int i;
-
-
-
-
-
/* get the GIFMem stuff */
gifHead = *(GifMemoryStruct.GifHeader);