Bump version to 2.3.95.
+2006-04-19 Patrick Lam <plam@mit.edu>
+ Dominic Lachowicz <cinamod@hotmail.com>
+
+ * src/fccache.c (FcDirCacheConsume):
+
+ Implement mmap-like code for Windows using MapViewOfFile.
+
2006-04-19 Patrick Lam <plam@mit.edu>
* src/fccache.c (FcDirCacheConsume, FcCacheNextOffset):
#include <dirent.h>
#include <string.h>
#include <sys/types.h>
-#include <unistd.h>
#include "fcint.h"
-#include <unistd.h>
#if defined(HAVE_MMAP) || defined(__CYGWIN__)
+# include <unistd.h>
# include <sys/mman.h>
-# include <sys/utsname.h>
+#elif defined(_WIN32)
+# include <windows.h>
#endif
#define ENDIAN_TEST 0x12345678
PROT_READ, MAP_SHARED, fd, pos);
if (current_dir_block == MAP_FAILED)
return FcFalse;
+#elif defined(_WIN32)
+ {
+ HANDLE hFileMap;
+
+ hFileMap = CreateFileMapping((HANDLE) _get_osfhandle(fd), NULL, PAGE_READONLY, 0, 0, NULL);
+ if (hFileMap == NULL)
+ return FcFalse;
+
+ current_dir_block = MapViewOfFile (hFileMap, FILE_MAP_READ, 0, 0, metadata.count + pos);
+ if (current_dir_block == NULL)
+ {
+ CloseHandle (hFileMap);
+ return FcFalse;
+ }
+
+ current_dir_block = (void *)((char *)current_dir_block + pos);
+ }
#else
current_dir_block = malloc (metadata.count);
if (!current_dir_block)