From: Christos Zoulas Date: Tue, 25 Jan 2011 18:36:19 +0000 (+0000) Subject: add msooxml stuff. X-Git-Tag: FILE5_06~40 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=78de5d9778190fb5dffa519f90f86adc45bd36e7;p=file add msooxml stuff. --- diff --git a/magic/Magdir/msooxml b/magic/Magdir/msooxml new file mode 100644 index 00000000..6ccebf64 --- /dev/null +++ b/magic/Magdir/msooxml @@ -0,0 +1,33 @@ + +#------------------------------------------------------------------------------ +# $File: msooxml,v 1.1 2011/01/25 18:36:19 christos 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 2dd7c1f0..a7c91d16 100644 --- a/magic/Makefile.am +++ b/magic/Makefile.am @@ -1,5 +1,5 @@ # -# $File: Makefile.am,v 1.61 2011/01/19 19:35:21 christos Exp $ +# $File: Makefile.am,v 1.62 2011/01/25 18:36:19 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 \