diff --git a/ext/RMagick/rmilist.c b/ext/RMagick/rmilist.c index c7f1e468d..9008a3934 100644 --- a/ext/RMagick/rmilist.c +++ b/ext/RMagick/rmilist.c @@ -1178,7 +1178,12 @@ ImageList_write(VALUE self, VALUE file) // Ensure file is open - raise error if not GetOpenFile(file, fptr); +#if defined(_WIN32) + add_format_prefix(info, fptr->pathv); + SetImageInfoFile(info, NULL); +#else SetImageInfoFile(info, GetReadFile(fptr)); +#endif } else { diff --git a/ext/RMagick/rmimage.c b/ext/RMagick/rmimage.c index 90b138b24..098e7c63a 100644 --- a/ext/RMagick/rmimage.c +++ b/ext/RMagick/rmimage.c @@ -14733,8 +14733,14 @@ Image_write(VALUE self, VALUE file) // Ensure file is open - raise error if not GetOpenFile(file, fptr); rb_io_check_writable(fptr); +#if defined(_WIN32) + add_format_prefix(info, fptr->pathv); + strcpy(image->filename, info->filename); + SetImageInfoFile(info, NULL); +#else SetImageInfoFile(info, GetWriteFile(fptr)); memset(image->filename, 0, sizeof(image->filename)); +#endif } else {