From 726ddc395ff2af94e85c1a8423c1327c760cb0bc Mon Sep 17 00:00:00 2001 From: Christos Zoulas Date: Tue, 25 Jan 2011 18:36:19 +0000 Subject: [PATCH] add msooxml stuff. --- magic/Magdir/msooxml | 33 +++++++++++++++++++++++++++++++++ magic/Makefile.am | 3 ++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 magic/Magdir/msooxml diff --git a/magic/Magdir/msooxml b/magic/Magdir/msooxml new file mode 100644 index 00000000..6f19559e --- /dev/null +++ b/magic/Magdir/msooxml @@ -0,0 +1,33 @@ + +#------------------------------------------------------------------------------ +# $File: matroska,v 1.6 2010/09/20 21:11:35 rrt Exp $ +# msooxml: file(1) magic for Microsoft Office XML +# From: Ralf Brown + +# .docx, .pptx, and .xlsx are XML plus other files inside a ZIP +# archive. The first member file is normally "[Content_Types].xml". +# Since MSOOXML doesn't have anything like the uncompressed "mimetype" +# file of ePub or OpenDocument, we'll have to scan for a filename +# which can distinguish between the three types + +# start by checking for ZIP local file header signature +0 string PK\003\004 +# make sure the first file is correct +>0x1E string [Content_Types].xml +# skip to the second local file header +# since some documents include a 520-byte extra field following the file +# header, we need to scan for the next header +>>(18.l+49) search/2000 PK\003\004 +# now skip to the *third* local file header; again, we need to scan due to a +# 520-byte extra field following the file header +>>>&26 search/1000 PK\003\004 +# and check the subdirectory name to determine which type of OOXML +# file we have +>>>>&26 string word/ Microsoft Word 2007+ +!:mime application/msword +>>>>&26 string ppt/ Microsoft PowerPoint 2007+ +!:mime application/vnd.ms-powerpoint +>>>>&26 string xl/ Microsoft Excel 2007+ +!:mime application/vnd.ms-excel +>>>>&26 default x Microsoft OOXML +!:strength +10 diff --git a/magic/Makefile.am b/magic/Makefile.am index c9a2f290..5e4c1137 100644 --- a/magic/Makefile.am +++ b/magic/Makefile.am @@ -1,5 +1,5 @@ # -# $File: Makefile.am,v 1.60 2011/01/17 16:51:09 christos Exp $ +# $File: Makefile.am,v 1.61 2011/01/19 19:35:21 christos Exp $ # MAGIC_FRAGMENT_BASE = Magdir MAGIC_DIR = $(top_srcdir)/magic @@ -135,6 +135,7 @@ $(MAGIC_FRAGMENT_DIR)/modem \ $(MAGIC_FRAGMENT_DIR)/motorola \ $(MAGIC_FRAGMENT_DIR)/mozilla \ $(MAGIC_FRAGMENT_DIR)/msdos \ +$(MAGIC_FRAGMENT_DIR)/msooxml \ $(MAGIC_FRAGMENT_DIR)/msvc \ $(MAGIC_FRAGMENT_DIR)/mup \ $(MAGIC_FRAGMENT_DIR)/natinst \ -- 2.49.0