]> granicus.if.org Git - file/commitdiff
PR/346: New sereal magic
authorChristos Zoulas <christos@zoulas.com>
Wed, 14 May 2014 23:04:59 +0000 (23:04 +0000)
committerChristos Zoulas <christos@zoulas.com>
Wed, 14 May 2014 23:04:59 +0000 (23:04 +0000)
magic/Magdir/sereal [new file with mode: 0644]
magic/Makefile.am

diff --git a/magic/Magdir/sereal b/magic/Magdir/sereal
new file mode 100644 (file)
index 0000000..21dabf5
--- /dev/null
@@ -0,0 +1,24 @@
+#------------------------------------------------------------------------------
+# $File$
+# sereal: file(1) magic the Sereal binary serialization format
+#
+# From: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
+#
+# See the specification of the format at
+# https://github.com/Sereal/Sereal/blob/master/sereal_spec.pod#document-header-format
+#
+# I'd have liked to do the byte&0xF0 matching against 0, 1, 2 ... by
+# doing (byte&0xF0)>>4 here, but unfortunately that's not
+# supported. So when we print out a message about an unknown format
+# we'll print out e.g. 0x30 instead of the more human-readable
+# 0x30>>4.
+#
+# See https://github.com/Sereal/Sereal/commit/35372ae01d in the
+# Sereal.git repository for test Sereal data.
+0      string             \=srl   Sereal data
+!:mime application/sereal
+>4     byte&0x0F          x       (version %d,
+>4     byte&0xF0          0x00    uncompressed)
+>4     byte&0xF0          0x10    compressed with non-incremental Snappy)
+>4     byte&0xF0          0x20    compressed with incremental Snappy)
+>4     byte&0xF0          >0x20   unknown subformat, flag: %d>>4)
index 7fa58436a7443aacd9e859a144505190f90b3337..bf93468a98f7bf3e2eb36a1fa1e9d09ebb508b89 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $File: Makefile.am,v 1.95 2014/01/31 01:51:32 christos Exp $
+# $File: Makefile.am,v 1.96 2014/03/07 17:25:17 christos Exp $
 #
 MAGIC_FRAGMENT_BASE = Magdir
 MAGIC_DIR = $(top_srcdir)/magic
@@ -208,6 +208,7 @@ $(MAGIC_FRAGMENT_DIR)/securitycerts \
 $(MAGIC_FRAGMENT_DIR)/selinux \
 $(MAGIC_FRAGMENT_DIR)/sendmail \
 $(MAGIC_FRAGMENT_DIR)/sequent \
+$(MAGIC_FRAGMENT_DIR)/sereal \
 $(MAGIC_FRAGMENT_DIR)/sgi \
 $(MAGIC_FRAGMENT_DIR)/sgml \
 $(MAGIC_FRAGMENT_DIR)/sharc \