From 65ff1cd35826d8ec718f6681c2c8f88597128dca Mon Sep 17 00:00:00 2001 From: Alexander Larsson Date: Fri, 2 Oct 2009 07:59:11 +0000 Subject: [PATCH] 2009-10-02 Alexander Larsson * src/xdgmimecache.c: (_xdg_mime_cache_new_from_file): Support reading cache files with minor number 2 --- ChangeLog | 5 +++++ src/xdgmimecache.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index c92d919e..6db6a441 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-10-02 Alexander Larsson + * src/xdgmimecache.c: (_xdg_mime_cache_new_from_file): + Support reading cache files with minor number 2 + +2009-10-02 Alexander Larsson + * src/xdgmime.c: (xdg_mime_init_from_directory): * src/xdgmimeglob.c: (_xdg_glob_hash_append_glob), (_xdg_mime_glob_read_from_file): diff --git a/src/xdgmimecache.c b/src/xdgmimecache.c index 290bfe3a..a5edefea 100644 --- a/src/xdgmimecache.c +++ b/src/xdgmimecache.c @@ -72,11 +72,13 @@ #endif #define MAJOR_VERSION 1 -#define MINOR_VERSION 1 +#define MINOR_VERSION_MIN 1 +#define MINOR_VERSION_MAX 2 struct _XdgMimeCache { int ref_count; + int minor; size_t size; char *buffer; @@ -115,6 +117,7 @@ _xdg_mime_cache_new_from_file (const char *file_name) int fd = -1; struct stat st; char *buffer = NULL; + int minor; /* Open the file and map it into memory */ fd = open (file_name, O_RDONLY|_O_BINARY, 0); @@ -130,9 +133,11 @@ _xdg_mime_cache_new_from_file (const char *file_name) if (buffer == MAP_FAILED) goto done; + minor = GET_UINT16 (buffer, 2); /* Verify version */ if (GET_UINT16 (buffer, 0) != MAJOR_VERSION || - GET_UINT16 (buffer, 2) != MINOR_VERSION) + (minor < MINOR_VERSION_MIN || + minor > MINOR_VERSION_MAX)) { munmap (buffer, st.st_size); @@ -140,6 +145,7 @@ _xdg_mime_cache_new_from_file (const char *file_name) } cache = (XdgMimeCache *) malloc (sizeof (XdgMimeCache)); + cache->minor = minor; cache->ref_count = 1; cache->buffer = buffer; cache->size = st.st_size; -- 2.11.4.GIT