#include "magick/semaphore.h"
#include "magick/string_.h"
#include "magick/string-private.h"
+#include "magick/token.h"
#include "magick/utility.h"
-#if defined(MAGICKCORE_HAVE_MMAP_FILEIO) && !defined(__WINDOWS__)
+#if defined(MAGICKCORE_HAVE_MMAP_FILEIO) && !defined(MAGICKCORE_WINDOWS_SUPPORT)
# include <sys/mman.h>
#endif
#if defined(MAGICKCORE_ZLIB_DELEGATE)
flags|=MAP_SHARED;
map=(unsigned char *) mmap((char *) NULL,length,protection,flags,file,
(off_t) offset);
+#if defined(MAGICKCORE_HAVE_POSIX_MADVISE)
+ (void) posix_madvise(map,length,POSIX_MADV_SEQUENTIAL |
+ POSIX_MADV_WILLNEED);
+#endif
break;
}
case IOMode:
((*filename == '\0') && (image_info->file == (FILE *) NULL)))
{
image->blob->file=(*type == 'r') ? stdin : stdout;
-#if defined(__WINDOWS__) || defined(__OS2__)
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__OS2__)
if (strchr(type,'b') != (char *) NULL)
setmode(_fileno(image->blob->file),_O_BINARY);
#endif
*mode=(*type);
mode[1]='\0';
image->blob->file=fdopen(StringToLong(filename+3),mode);
-#if defined(__WINDOWS__) || defined(__OS2__)
+#if defined(MAGICKCORE_WINDOWS_SUPPORT) || defined(__OS2__)
if (strchr(type,'b') != (char *) NULL)
setmode(_fileno(image->blob->file),_O_BINARY);
#endif
if (*type == 'w')
{
(void) CopyMagickString(filename,image->filename,MaxTextExtent);
- if (image_info->adjoin == MagickFalse)
+ if ((image_info->adjoin == MagickFalse) ||
+ (IsGlob(filename) != MagickFalse))
{
/*
Form filename for multi-part images.
ExceptionInfo
*sans_exception;
- struct stat
- *properties;
+ struct stat
+ *properties;
sans_exception=AcquireExceptionInfo();
magick_info=GetMagickInfo(image_info->magick,sans_exception);
% %
% %
% %
++ W r i t e B l o b M S B L o n g L o n g %
+% %
+% %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% WriteBlobMSBLongLong() writes a long long value as a 64-bit quantity in
+% most-significant byte first order.
+%
+% The format of the WriteBlobMSBLongLong method is:
+%
+% ssize_t WriteBlobMSBLongLong(Image *image,const MagickSizeType value)
+%
+% A description of each parameter follows.
+%
+% o value: Specifies the value to write.
+%
+% o image: the image.
+%
+*/
+MagickExport ssize_t WriteBlobMSBLongLong(Image *image,
+ const MagickSizeType value)
+{
+ unsigned char
+ buffer[8];
+
+ assert(image != (Image *) NULL);
+ assert(image->signature == MagickSignature);
+ buffer[0]=(unsigned char) (value >> 56);
+ buffer[1]=(unsigned char) (value >> 48);
+ buffer[2]=(unsigned char) (value >> 40);
+ buffer[3]=(unsigned char) (value >> 32);
+ buffer[4]=(unsigned char) (value >> 24);
+ buffer[5]=(unsigned char) (value >> 16);
+ buffer[6]=(unsigned char) (value >> 8);
+ buffer[7]=(unsigned char) value;
+ return(WriteBlobStream(image,8,buffer));
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% %
+% %
+ W r i t e B l o b M S B S h o r t %
% %
% %