* 19 Feb 98 - Version 1.2 by Jareth Hein (Support for user specified I/O) *
******************************************************************************/
-#ifdef __MSDOS__
-#include <io.h>
-#include <alloc.h>
-#include <stdlib.h>
-#include <sys\stat.h>
-#else
-#include <sys/types.h>
-#include <sys/stat.h>
-#endif /* __MSDOS__ */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include <config.h>
+#include "lisp.h"
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
+#include "sysfile.h"
#include "gifrlib.h"
FILE *f;
if ((f = fopen(FileName,
-#ifdef __MSDOS__
+#ifdef WIN32_NATIVE
"rb"
#else
"r"
-#endif /* __MSDOS__ */
+#endif /* WIN32_NATIVE */
)) == NULL)
GifInternError(GifFile, D_GIF_ERR_OPEN_FAILED);
{
FILE *f;
-#ifdef __MSDOS__
+#ifdef WIN32_NATIVE
setmode(FileHandle, O_BINARY); /* Make sure it is in binary mode. */
f = fdopen(FileHandle, "rb"); /* Make it into a stream: */
setvbuf(f, NULL, _IOFBF, GIF_FILE_BUFFER_SIZE);/* And inc. stream buffer.*/
#else
f = fdopen(FileHandle, "r"); /* Make it into a stream: */
-#endif /* __MSDOS__ */
+#endif /* WIN32_NATIVE */
GifStdIOInit(GifFile, f, -1);
DGifInitRead(GifFile);
if (!LineLen) LineLen = GifFile->Image.Width;
-#if defined(__MSDOS__) || defined(__GNUC__)
+#if defined(WIN32_NATIVE) || defined(__GNUC__)
if ((Private->PixelCount -= LineLen) > 0xffff0000UL)
#else
if ((Private->PixelCount -= LineLen) > 0xffff0000)
-#endif /* __MSDOS__ */
+#endif /* WIN32_NATIVE */
{
GifInternError(GifFile, D_GIF_ERR_DATA_TOO_BIG);
}
GifInternError(GifFile, D_GIF_ERR_NOT_READABLE);
}
-#if defined(__MSDOS__) || defined(__GNUC__)
+#if defined(WIN32_NATIVE) || defined(__GNUC__)
if (--Private->PixelCount > 0xffff0000UL)
#else
if (--Private->PixelCount > 0xffff0000)
-#endif /* __MSDOS__ */
+#endif /* WIN32_NATIVE */
{
GifInternError(GifFile, D_GIF_ERR_DATA_TOO_BIG);
}
******************************************************************************/
int DGifCloseFile(GifFileType *GifFile)
{
- GifFilePrivateType *Private = (GifFilePrivateType *)GifFile->Private;
+ GifFilePrivateType *Private;
if (GifFile == NULL) return -1;
+ Private = (GifFilePrivateType *)GifFile->Private;
if (!IS_READABLE(Private))
{
/* This file was NOT open for reading: */
case EXTENSION_RECORD_TYPE:
DGifGetExtension(GifFile,&sp->Function,&ExtData);
- do {
+ while (ExtData != NULL) {
if (AddExtensionBlock(sp, ExtData[0], ExtData+1) == GIF_ERROR)
GifInternError(GifFile, D_GIF_ERR_NOT_ENOUGH_MEM);
DGifGetExtensionNext(GifFile, &ExtData);
- } while (ExtData != NULL);
+ }
break;
case TERMINATE_RECORD_TYPE:
Object->Colors = (GifColorType *)calloc(ColorCount, sizeof(GifColorType));
if (Object->Colors == (GifColorType *)NULL)
+ {
+ free (Object);
return((ColorMapObject *)NULL);
+ }
Object->ColorCount = ColorCount;
Object->BitsPerPixel = BitSize(ColorCount);