aboutsummaryrefslogtreecommitdiff
path: root/src/cache.c
diff options
context:
space:
mode:
authortaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-04-01 17:42:13 +0000
committertaw27 <taw27@bf6ca9ba-c028-0410-8290-897cf20841d1>2007-04-01 17:42:13 +0000
commit63affa283744195cd6bd3de6b9c45b2362b8b1b9 (patch)
tree07485f750f11a1d03db81b43b265fd596a376046 /src/cache.c
parent3a6347591e01e019d25df3faf274152cb97edb1d (diff)
(Slightly) More advanced detection of input file type
git-svn-id: svn://cook.msm.cam.ac.uk:745/diff-tomo/dtr@21 bf6ca9ba-c028-0410-8290-897cf20841d1
Diffstat (limited to 'src/cache.c')
-rw-r--r--src/cache.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/cache.c b/src/cache.c
index 61fe4bd..f1998b7 100644
--- a/src/cache.c
+++ b/src/cache.c
@@ -90,3 +90,30 @@ int cache_save(const char *filename, ReflectionContext *rctx) {
return 0;
}
+
+unsigned int cache_is_cachefile(const char *filename) {
+
+ FILE *fh;
+ CacheHeader ch;
+ size_t nread;
+
+ fh = fopen(filename, "rb");
+ nread = fread(&ch, sizeof(CacheHeader), 1, fh);
+ fclose(fh);
+
+ if ( nread != 1 ) {
+ return 0;
+ }
+
+ if ( strncmp(ch.top, "DTRCACHE", 8) == 0 ) {
+ return 1;
+ }
+
+ /* Backwards compatability */
+ if ( strncmp(ch.top, "DTR-CACHE", 9) == 0 ) {
+ return 1;
+ }
+
+ return 0;
+
+}