]> granicus.if.org Git - file/commitdiff
add msooxml stuff.
authorChristos Zoulas <christos@zoulas.com>
Tue, 25 Jan 2011 18:36:19 +0000 (18:36 +0000)
committerChristos Zoulas <christos@zoulas.com>
Tue, 25 Jan 2011 18:36:19 +0000 (18:36 +0000)
magic/Magdir/msooxml [new file with mode: 0644]
magic/Makefile.am

diff --git a/magic/Magdir/msooxml b/magic/Magdir/msooxml
new file mode 100644 (file)
index 0000000..6f19559
--- /dev/null
@@ -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 <ralf.brown@gmail.com>
+
+# .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
index c9a2f290b3c12b12744feac95c044045a4ddaeb4..5e4c1137dee9ebd42aaebdfb3d980afe4e9d5cec 100644 (file)
@@ -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 \