From: cristy Date: Sat, 6 Aug 2011 02:11:06 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~7218 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c81eb6d3cd9e35a9a30384693379b9d7818604af;p=imagemagick --- diff --git a/MagickCore/utility.c b/MagickCore/utility.c index 1d5f45ea2..4aaf7a714 100644 --- a/MagickCore/utility.c +++ b/MagickCore/utility.c @@ -1102,124 +1102,6 @@ MagickExport ssize_t GetMagickPageSize(void) % o attributes: the path attributes are returned here. % */ - -#if defined(MAGICKCORE_HAVE__WFOPEN) -static size_t UTF8ToUTF16(const unsigned char *utf8,wchar_t *utf16) -{ - register const unsigned char - *p; - - if (utf16 != (wchar_t *) NULL) - { - register wchar_t - *q; - - wchar_t - c; - - /* - Convert UTF-8 to UTF-16. - */ - q=utf16; - for (p=utf8; *p != '\0'; p++) - { - if ((*p & 0x80) == 0) - *q=(*p); - else - if ((*p & 0xE0) == 0xC0) - { - c=(*p); - *q=(c & 0x1F) << 6; - p++; - if ((*p & 0xC0) != 0x80) - return(0); - *q|=(*p & 0x3F); - } - else - if ((*p & 0xF0) == 0xE0) - { - c=(*p); - *q=c << 12; - p++; - if ((*p & 0xC0) != 0x80) - return(0); - c=(*p); - *q|=(c & 0x3F) << 6; - p++; - if ((*p & 0xC0) != 0x80) - return(0); - *q|=(*p & 0x3F); - } - else - return(0); - q++; - } - *q++='\0'; - return(q-utf16); - } - /* - Compute UTF-16 string length. - */ - for (p=utf8; *p != '\0'; p++) - { - if ((*p & 0x80) == 0) - ; - else - if ((*p & 0xE0) == 0xC0) - { - p++; - if ((*p & 0xC0) != 0x80) - return(0); - } - else - if ((*p & 0xF0) == 0xE0) - { - p++; - if ((*p & 0xC0) != 0x80) - return(0); - p++; - if ((*p & 0xC0) != 0x80) - return(0); - } - else - return(0); - } - return(p-utf8); -} - -static wchar_t *ConvertUTF8ToUTF16(const unsigned char *source) -{ - size_t - length; - - wchar_t - *utf16; - - length=UTF8ToUTF16(source,(wchar_t *) NULL); - if (length == 0) - { - register ssize_t - i; - - /* - Not UTF-8, just copy. - */ - length=strlen((const char *) source); - utf16=(wchar_t *) AcquireQuantumMemory(length+1,sizeof(*utf16)); - if (utf16 == (wchar_t *) NULL) - return((wchar_t *) NULL); - for (i=0; i <= (ssize_t) length; i++) - utf16[i]=source[i]; - return(utf16); - } - utf16=(wchar_t *) AcquireQuantumMemory(length+1,sizeof(*utf16)); - if (utf16 == (wchar_t *) NULL) - return((wchar_t *) NULL); - length=UTF8ToUTF16(source,utf16); - return(utf16); -} -#endif - MagickExport MagickBooleanType GetPathAttributes(const char *path, void *attributes) { @@ -1241,10 +1123,11 @@ MagickExport MagickBooleanType GetPathAttributes(const char *path, wchar_t *unicode_path; - count=MultiByteToWideChar(CP_ACP,0,path,-1,NULL,0); + count=MultiByteToWideChar(CP_ACP,0,path,-1,(wchar_t *) NULL,0); unicode_path=(wchar_t *) AcquireQuantumMemory(count,sizeof(*unicode_path)); if (unicode_path == (wchar_t *) NULL) return(MagickFalse); + count=MultiByteToWideChar(CP_ACP,0,path,-1,unicode_path,count); status=wstat(unicode_path,(struct stat *) attributes) == 0 ? MagickTrue : MagickFalse; unicode_path=(wchar_t *) RelinquishMagickMemory(unicode_path); @@ -1935,17 +1818,19 @@ MagickExport FILE *OpenMagickStream(const char *path,const char *mode) *unicode_mode, *unicode_path; - count=MultiByteToWideChar(CP_ACP,0,path,-1,NULL,0); + count=MultiByteToWideChar(CP_ACP,0,path,-1,(wchar_t *) NULL,0); unicode_path=(wchar_t *) AcquireQuantumMemory(count,sizeof(*unicode_path)); if (unicode_path == (wchar_t *) NULL) return((FILE *) NULL); - count=MultiByteToWideChar(CP_ACP,0,mode,-1,NULL,0); + count=MultiByteToWideChar(CP_ACP,0,path,-1,unicode_path,count); + count=MultiByteToWideChar(CP_ACP,0,mode,-1,(wchar_t *) NULL,0); unicode_mode=(wchar_t *) AcquireQuantumMemory(count,sizeof(*unicode_mode)); if (unicode_mode == (wchar_t *) NULL) { unicode_path=(wchar_t *) RelinquishMagickMemory(unicode_path); return((FILE *) NULL); } + count=MultiByteToWideChar(CP_ACP,0,mode,-1,unicode_mode,count); file=_wfopen(unicode_path,unicode_mode); unicode_mode=(wchar_t *) RelinquishMagickMemory(unicode_mode); unicode_path=(wchar_t *) RelinquishMagickMemory(unicode_path); diff --git a/coders/emf.c b/coders/emf.c index 10b6d83e9..e1f026242 100644 --- a/coders/emf.c +++ b/coders/emf.c @@ -220,11 +220,12 @@ static HENHMETAFILE ReadEnhMetaFile(const char *path,ssize_t *width, wchar_t *unicode_path; - count=MultiByteToWideChar(CP_ACP,0,path,-1,NULL,0); + count=MultiByteToWideChar(CP_ACP,0,path,-1,(wchar_t) NULL,0); unicode_path=(wchar_t *) AcquireQuantumMemory(count, sizeof(*unicode_path)); if (unicode_path != (wchar_t *) NULL) { + count=MultiByteToWideChar(CP_ACP,0,path,-1,unicode_path,count); hTemp=GetEnhMetaFileW(unicode_path); unicode_path=(wchar_t *) RelinquishMagickMemory(unicode_path); }