Browse Source

Import upstream version 5.19

Christos Zoulas 5 years ago
parent
commit
463c3112b3
99 changed files with 1615 additions and 1127 deletions
  1. 57 4
      ChangeLog
  2. 14 0
      config.h.in
  3. 83 10
      configure
  4. 3 1
      configure.ac
  5. 19 10
      doc/magic.man
  6. 7 7
      magic/Magdir/android
  7. 6 6
      magic/Magdir/animation
  8. 5 5
      magic/Magdir/apple
  9. 70 6
      magic/Magdir/archive
  10. 5 5
      magic/Magdir/att3b
  11. 3 3
      magic/Magdir/audio
  12. 2 2
      magic/Magdir/bflt
  13. 4 4
      magic/Magdir/bsdi
  14. 2 2
      magic/Magdir/c-lang
  15. 2 2
      magic/Magdir/cafebabe
  16. 2 2
      magic/Magdir/clarion
  17. 2 2
      magic/Magdir/claris
  18. 3 3
      magic/Magdir/clipper
  19. 2 2
      magic/Magdir/commands
  20. 10 3
      magic/Magdir/compress
  21. 4 4
      magic/Magdir/cups
  22. 11 11
      magic/Magdir/database
  23. 5 5
      magic/Magdir/dump
  24. 50 40
      magic/Magdir/dyadic
  25. 2 2
      magic/Magdir/efi
  26. 15 1
      magic/Magdir/elf
  27. 3 3
      magic/Magdir/encore
  28. 70 132
      magic/Magdir/filesystems
  29. 18 8
      magic/Magdir/flash
  30. 3 3
      magic/Magdir/fonts
  31. 2 2
      magic/Magdir/fortran
  32. 10 10
      magic/Magdir/games
  33. 3 3
      magic/Magdir/gimp
  34. 3 3
      magic/Magdir/gnome
  35. 1 2
      magic/Magdir/gpt
  36. 3 3
      magic/Magdir/graphviz
  37. 15 15
      magic/Magdir/hp
  38. 5 5
      magic/Magdir/ibm370
  39. 22 19
      magic/Magdir/images
  40. 6 6
      magic/Magdir/intel
  41. 1 1
      magic/Magdir/isz
  42. 2 2
      magic/Magdir/karma
  43. 18 1
      magic/Magdir/linux
  44. 53 53
      magic/Magdir/mach
  45. 25 0
      magic/Magdir/map
  46. 6 6
      magic/Magdir/marc21
  47. 23 23
      magic/Magdir/mips
  48. 15 15
      magic/Magdir/motorola
  49. 26 104
      magic/Magdir/msdos
  50. 1 1
      magic/Magdir/msx
  51. 2 2
      magic/Magdir/natinst
  52. 8 8
      magic/Magdir/ncr
  53. 7 7
      magic/Magdir/netbsd
  54. 1 1
      magic/Magdir/nitpicker
  55. 2 2
      magic/Magdir/oasis
  56. 7 3
      magic/Magdir/palm
  57. 4 4
      magic/Magdir/pdp
  58. 32 1
      magic/Magdir/perl
  59. 19 3
      magic/Magdir/printer
  60. 2 2
      magic/Magdir/python
  61. 3 3
      magic/Magdir/riff
  62. 6 6
      magic/Magdir/scientific
  63. 19 9
      magic/Magdir/sequent
  64. 24 0
      magic/Magdir/sereal
  65. 9 9
      magic/Magdir/sgi
  66. 2 2
      magic/Magdir/sharc
  67. 2 2
      magic/Magdir/sql
  68. 19 19
      magic/Magdir/sun
  69. 1 1
      magic/Magdir/symbos
  70. 2 2
      magic/Magdir/sysex
  71. 2 2
      magic/Magdir/ti-8x
  72. 3 3
      magic/Magdir/troff
  73. 1 1
      magic/Magdir/uterus
  74. 2 2
      magic/Magdir/varied.out
  75. 3 3
      magic/Magdir/vax
  76. 104 8
      magic/Magdir/virtual
  77. 6 6
      magic/Magdir/vorbis
  78. 2 2
      magic/Magdir/windows
  79. 2 2
      magic/Magdir/xilinx
  80. 7 7
      magic/Magdir/xwindows
  81. 4 4
      magic/Magdir/zfs
  82. 3 1
      magic/Makefile.am
  83. 3 1
      magic/Makefile.in
  84. 21 14
      python/magic.py
  85. 3 3
      src/Makefile.in
  86. 92 41
      src/apprentice.c
  87. 45 26
      src/cdf.c
  88. 3 0
      src/cdf.h
  89. 4 3
      src/cdf_time.c
  90. 16 3
      src/file.h
  91. 37 4
      src/fsmagic.c
  92. 48 16
      src/funcs.c
  93. 46 14
      src/magic.c
  94. 1 1
      src/magic.h
  95. 53 20
      src/readcdf.c
  96. 31 1
      src/readelf.c
  97. 173 283
      src/softmagic.c
  98. 2 0
      src/strcasestr.c
  99. 5 8
      src/vasprintf.c

+ 57 - 4
ChangeLog

@@ -1,10 +1,63 @@
+2014-06-12  12:28  Christos Zoulas <christos@zoulas.com>
+
+	* release 5.19
+
+2014-06-09   9:04  Christos Zoulas <christos@zoulas.com>
+	
+	* Misc buffer overruns and missing buffer size tests in cdf parsing
+	  (Francisco Alonso, Jan Kaluza)
+
+2014-06-02  14:50  Christos Zoulas <christos@zoulas.com>
+
+	* Enforce limit of 8K on regex searches that have no limits
+	* Allow the l modifier for regex to mean line count. Default
+	  to byte count. If line count is specified, assume a max
+	  of 80 characters per line to limit the byte count.
+	* Don't allow conversions to be used for dates, allowing
+	  the mask field to be used as an offset.
+
+2014-05-30  12:51  Christos Zoulas <christos@zoulas.com>
+
+	* Make the range operator limit the length of the
+	  regex search.
+
+2014-05-14  19:23  Christos Zoulas <christos@zoulas.com>
+
+	* PR/347: Windows fixes
+	* PR/352: Hangul word processor recognition
+	* PR/354: Encoding irregularities in text files
+
+2014-05-06  6:12  Christos Zoulas <christos@zoulas.com>
+
+	* Fix uninitialized title in CDF files (Jan Kaluza)
+
+2014-05-04  14:55  Christos Zoulas <christos@zoulas.com>
+
+	* PR/351: Fix compilation of empty files 
+
+2014-04-30  17:39  Christos Zoulas <christos@zoulas.com>
+
+	* Fix integer formats: We don't specify 'l' or
+	  'h' and 'hh' specifiers anymore, only 'll' for
+	  quads and nothing for the rest. This is so that
+	  magic writing is simpler.
+
+2014-04-01  15:25  Christos Zoulas <christos@zoulas.com>
+
+	* PR/341: Jan Kaluza, fix memory leak
+	* PR/342: Jan Kaluza, fix out of bounds read
+
+2014-03-28  15:25  Christos Zoulas <christos@zoulas.com>
+
+	* Fix issue with long formats not matching fmtcheck
+
 2014-03-26  11:25  Christos Zoulas <christos@zoulas.com>
 
 	* release 5.18
 
 2014-03-15  17:45  Christos Zoulas <christos@zoulas.com>
 
-        * add fmtcheck(3) for those who don't have it
+	* add fmtcheck(3) for those who don't have it
 
 2014-03-14  15:12  Christos Zoulas <christos@zoulas.com>
 
@@ -1040,7 +1093,7 @@
 
 	* Identify gnu tar vs. posix tar
 
-	* When keep going, don't print spurious newlines (Radek Vokál)
+	* When keep going, don't print spurious newlines (Radek Vokal)
 
 2006-04-01 12:02 Christos Zoulas <christos@astron.com>
 
@@ -1064,7 +1117,7 @@
 2005-10-31 8:54 Christos Zoulas <christos@astron.com>
 
 	* Fix regression where the core info was not completely processed
-	    (Radek Vokál)
+	    (Radek Vokal)
 
 2005-10-20 11:15 Christos Zoulas <christos@astron.com>
 
@@ -1081,7 +1134,7 @@
 2005-09-20 13:33 Christos Zoulas <christos@astron.com>
 
 	* Don't print SVR4 Style in core files multiple times
-	    (Radek Vokál)
+	    (Radek Vokal)
 
 2005-08-27 04:09 Christos Zoulas <christos@astron.com>
 

+ 14 - 0
config.h.in

@@ -59,6 +59,9 @@
 /* Define to 1 if you have the `getpagesize' function. */
 #undef HAVE_GETPAGESIZE
 
+/* Define to 1 if the system has the type `intptr_t'. */
+#undef HAVE_INTPTR_T
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
@@ -173,6 +176,9 @@
 /* HAVE_TZNAME */
 #undef HAVE_TZNAME
 
+/* Define to 1 if the system has the type `uintptr_t'. */
+#undef HAVE_UINTPTR_T
+
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
@@ -342,6 +348,10 @@
    such a type exists and the standard includes do not define it. */
 #undef int64_t
 
+/* Define to the type of a signed integer type wide enough to hold a pointer,
+   if such a type exists, and if the system does not define it. */
+#undef intptr_t
+
 /* Define to a type if <wchar.h> does not define. */
 #undef mbstate_t
 
@@ -370,5 +380,9 @@
    such a type exists and the standard includes do not define it. */
 #undef uint8_t
 
+/* Define to the type of an unsigned integer type wide enough to hold a
+   pointer, if such a type exists, and if the system does not define it. */
+#undef uintptr_t
+
 /* Define as `fork' if `vfork' does not work. */
 #undef vfork

+ 83 - 10
configure

@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for file 5.18.
+# Generated by GNU Autoconf 2.69 for file 5.19.
 #
 # Report bugs to <christos@astron.com>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='file'
 PACKAGE_TARNAME='file'
-PACKAGE_VERSION='5.18'
-PACKAGE_STRING='file 5.18'
+PACKAGE_VERSION='5.19'
+PACKAGE_STRING='file 5.19'
 PACKAGE_BUGREPORT='christos@astron.com'
 PACKAGE_URL=''
 
@@ -1327,7 +1327,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures file 5.18 to adapt to many kinds of systems.
+\`configure' configures file 5.19 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1397,7 +1397,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of file 5.18:";;
+     short | recursive ) echo "Configuration of file 5.19:";;
    esac
   cat <<\_ACEOF
 
@@ -1507,7 +1507,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-file configure 5.18
+file configure 5.19
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2163,7 +2163,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by file $as_me 5.18, which was
+It was created by file $as_me 5.19, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3029,7 +3029,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='file'
- VERSION='5.18'
+ VERSION='5.19'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -13634,6 +13634,79 @@ _ACEOF
 esac
 
 
+  ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default"
+if test "x$ac_cv_type_intptr_t" = xyes; then :
+
+$as_echo "#define HAVE_INTPTR_T 1" >>confdefs.h
+
+else
+  for ac_type in 'int' 'long int' 'long long int'; do
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define intptr_t $ac_type
+_ACEOF
+
+	  ac_type=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       test -z "$ac_type" && break
+     done
+fi
+
+
+
+  ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
+if test "x$ac_cv_type_uintptr_t" = xyes; then :
+
+$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
+
+else
+  for ac_type in 'unsigned int' 'unsigned long int' \
+	'unsigned long long int'; do
+       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
+test_array [0] = 0;
+return test_array [0];
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define uintptr_t $ac_type
+_ACEOF
+
+	  ac_type=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+       test -z "$ac_type" && break
+     done
+fi
+
+
+
 
 
   for ac_header in $ac_header_list
@@ -14925,7 +14998,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by file $as_me 5.18, which was
+This file was extended by file $as_me 5.19, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14991,7 +15064,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-file config.status 5.18
+file config.status 5.19
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

+ 3 - 1
configure.ac

@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([file],[5.18],[christos@astron.com])
+AC_INIT([file],[5.19],[christos@astron.com])
 AM_INIT_AUTOMAKE([subdir-objects foreign])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
@@ -107,6 +107,8 @@ AC_TYPE_UINT32_T
 AC_TYPE_INT32_T
 AC_TYPE_UINT64_T
 AC_TYPE_INT64_T
+AC_TYPE_INTPTR_T
+AC_TYPE_UINTPTR_T
 AC_FUNC_MMAP
 AC_FUNC_FORK
 AC_FUNC_MBRTOWC

+ 19 - 10
doc/magic.man

@@ -1,5 +1,5 @@
-.\" $File: magic.man,v 1.81 2014/03/08 17:28:08 christos Exp $
-.Dd April 22, 2013
+.\" $File: magic.man,v 1.84 2014/06/03 19:01:34 christos Exp $
+.Dd June 3, 2014
 .Dt MAGIC __FSECTION__
 .Os
 .\" install as magic.4 on USG, magic.5 on V7, Berkeley and Linux systems.
@@ -228,19 +228,25 @@ Regular expressions can take exponential time to process, and their
 performance is hard to predict, so their use is discouraged.
 When used in production environments, their performance
 should be carefully checked.
-The type specification can be optionally followed by
-.Dv /[c][s] .
+The size of the string to search should also be limited by specifying
+.Dv /<length> ,
+to avoid performance issues scanning long files.
+The type specification can also be optionally followed by
+.Dv /[c][s][l] .
 The
 .Dq c
 flag makes the match case insensitive, while the
 .Dq s
 flag update the offset to the start offset of the match, rather than the end.
-The regular expression is tested against line
-.Dv N + 1
-onwards, where
-.Dv N
-is the given offset.
-Line endings are assumed to be in the machine's native format.
+The
+.Dq l
+modifier, changes the limit of length to mean number of lines instead of a
+byte count.
+Lines are delimited by the platforms native line delimiter.
+When a line count is specified, an implicit byte count also computed assuming
+each line is 80 characters long.
+If neither a byte or line count is specified, the search is limited automatically
+to 8KiB.
 .Dv ^
 and
 .Dv $
@@ -409,6 +415,9 @@ is octal, and
 .Dv 0x13
 is hexadecimal.
 .Pp
+Numeric operations are not performed on date types, instead the numeric
+value is interpreted as an offset.
+.Pp
 For string values, the string from the
 file must match the specified string.
 The operators

+ 7 - 7
magic/Magdir/android

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------
-# $File: android,v 1.3 2013/11/08 01:24:22 christos Exp $
+# $File: android,v 1.4 2014/06/03 19:01:34 christos Exp $
 # Various android related magic entries
 #------------------------------------------------------------
 
@@ -89,12 +89,12 @@
 >17	string		0\n			\b, Not-Compressed
 >17	string		1\n			\b, Compressed
 # any string as long as it's not the word none (which is matched below)
->>19    regex/1		\^([^n\n]|n[^o]|no[^n]|non[^e]|none.+).*	\b, Encrypted (%s)
+>>19    regex/1l	\^([^n\n]|n[^o]|no[^n]|non[^e]|none.+).*	\b, Encrypted (%s)
 >>19	string		none\n			\b, Not-Encrypted
 # Commented out because they don't seem useful to print
 # (but they are part of the header - the tar file comes after them):
-#>>>&1		regex/1 .*	\b, Password salt: %s
-#>>>>&1		regex/1 .*	\b, Master salt: %s
-#>>>>>&1	regex/1 .*	\b, PBKDF2 rounds: %s
-#>>>>>>&1	regex/1 .*	\b, IV: %s
-#>>>>>>>&1	regex/1 .*	\b, Key: %s
+#>>>&1		regex/1l .*	\b, Password salt: %s
+#>>>>&1		regex/1l .*	\b, Master salt: %s
+#>>>>>&1	regex/1l .*	\b, PBKDF2 rounds: %s
+#>>>>>>&1	regex/1l .*	\b, IV: %s
+#>>>>>>>&1	regex/1l .*	\b, Key: %s

+ 6 - 6
magic/Magdir/animation

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: animation,v 1.51 2014/03/14 18:47:29 christos Exp $
+# $File: animation,v 1.53 2014/04/30 21:41:02 christos Exp $
 # animation:  file(1) magic for animation/movie formats
 #
 # animation formats
@@ -621,7 +621,7 @@
 # Live MPEG-4 audio streams (instead of RTP FlexMux)
 0       beshort&0xFFE0  0x56E0         MPEG-4 LOAS
 !:mime	audio/x-mp4a-latm
-#>1     beshort&0x1FFF  x              \b, %u byte packet
+#>1     beshort&0x1FFF  x              \b, %hu byte packet
 >3      byte&0xE0       0x40
 >>4     byte&0x3C       0x04           \b, single stream
 >>4     byte&0x3C       0x08           \b, 2 streams
@@ -719,16 +719,16 @@
 !:mime	video/x-mng
 >4	belong			!0x0d0a1a0a	CORRUPTED,
 >4	belong			0x0d0a1a0a
->>16    belong	x				%ld x
->>20    belong	x				%ld
+>>16    belong	x				%d x
+>>20    belong	x				%d
 
 # JNG Video Format, <URL:http://www.libpng.org/pub/mng/spec/>
 0	string			\x8bJNG		JNG video data,
 !:mime	video/x-jng
 >4	belong			!0x0d0a1a0a	CORRUPTED,
 >4	belong			0x0d0a1a0a
->>16    belong	x				%ld x
->>20    belong	x				%ld
+>>16    belong	x				%d x
+>>20    belong	x				%d
 
 # Vivo video (Wolfram Kleff)
 3	string		\x0D\x0AVersion:Vivo	Vivo video data

+ 5 - 5
magic/Magdir/apple

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: apple,v 1.27 2013/03/09 22:36:00 christos Exp $
+# $File: apple,v 1.29 2014/04/30 21:41:02 christos Exp $
 # apple:  file(1) magic for Apple file formats
 #
 0	search/1/t	FiLeStArTfIlEsTaRt	binscii (apple ][) text
@@ -204,15 +204,15 @@
 #  purposes in YellowStep/Cocoa, including some nib files.
 # From: David Remahl <dremahl@apple.com>
 2		string		typedstream	NeXT/Apple typedstream data, big endian
->0		byte		x		\b, version %hhd
+>0		byte		x		\b, version %d
 >0		byte		<5		\b
 >>13	byte		0x81	\b
->>>14	ubeshort	x		\b, system %hd
+>>>14	ubeshort	x		\b, system %d
 2		string		streamtyped NeXT/Apple typedstream data, little endian
->0		byte		x		\b, version %hhd
+>0		byte		x		\b, version %d
 >0		byte		<5		\b
 >>13	byte		0x81	\b
->>>14	uleshort	x		\b, system %hd
+>>>14	uleshort	x		\b, system %d
 
 #------------------------------------------------------------------------------
 # CAF: Apple CoreAudio File Format

+ 70 - 6
magic/Magdir/archive

@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: archive,v 1.82 2014/03/14 18:47:29 christos Exp $
+# $File: archive,v 1.87 2014/06/03 19:15:58 christos Exp $
 # archive:  file(1) magic for archive formats (see also "msdos" for self-
 #           extracting compressed archives)
 #
@@ -93,9 +93,9 @@
 #
 0	string		=!<arch>\ndebian
 >8	string		debian-split	part of multipart Debian package
-!:mime	application/x-debian-package
+!:mime	application/vnd.debian.binary-package
 >8	string		debian-binary	Debian binary package
-!:mime	application/x-debian-package
+!:mime	application/vnd.debian.binary-package
 >8	string		!debian
 >68	string		>\0		(format %s)
 # These next two lines do not work, because a bzip2 Debian archive
@@ -269,7 +269,7 @@
 >9	string	\0
 >>0	string	KWAJ
 >>>7	string	\321\003	MS Compress archive data
->>>>14	ulong	>0		\b, original size: %ld bytes
+>>>>14	ulong	>0		\b, original size: %d bytes
 >>>>18		ubyte	>0x65
 >>>>>18		string	x       \b, was %.8s
 >>>>>(10.b-4)	string	x       \b.%.3s
@@ -498,7 +498,7 @@
 # This is a really bad format. A file containing HAWAII will match this...
 #0	string		HA		HA archive data,
 #>2	leshort		=1		1 file,
-#>2	leshort		>1		%u files,
+#>2	leshort		>1		%hu files,
 #>4	byte&0x0f	=0		first is type CPY
 #>4	byte&0x0f	=1		first is type ASC
 #>4	byte&0x0f	=2		first is type HSC
@@ -874,7 +874,7 @@
 # From: Dirk Jagdmann <doj@cubic.org>
 # xar archive format: http://code.google.com/p/xar/
 0	string	xar!		xar archive
->6	beshort	x		- version %ld
+>6	beshort	x		- version %d
 
 # From: "Nelson A. de Oliveira" <naoliv@gmail.com>
 # .kgb
@@ -921,3 +921,67 @@
 >36	byte	16		\b, back-to-front
 >42	beshort	x		\b, (%dx,
 >44	beshort	x		%d)
+
+# Symantec GHOST image by Joerg Jenderek at May 2014
+# http://us.norton.com/ghost/
+# http://www.garykessler.net/library/file_sigs.html
+0		ubelong&0xFFFFf7f0	0xFEEF0100	Norton GHost image
+# *.GHO
+>2		ubyte&0x08		0x00		\b, first file
+# *.GHS or *.[0-9] with cns program option
+>2		ubyte&0x08		0x08		\b, split file
+# part of split index interesting for *.ghs
+>>4		ubyte			x		id=0x%x
+# compression tag minus one equals numeric compression command line switch z[1-9]
+>3		ubyte			0		\b, no compression
+>3		ubyte			2		\b, fast compression (Z1)
+>3		ubyte			3		\b, medium compression (Z2)
+>3		ubyte			>3		
+>>3		ubyte			<11		\b, compression (Z%d-1)
+>2		ubyte&0x08		0x00		
+# ~ 30 byte password field only for *.gho
+>>12		ubequad			!0		\b, password protected
+>>44		ubyte			!1		
+# 1~Image All, sector-by-sector only for *.gho
+>>>10		ubyte			1		\b, sector copy
+# 1~Image Boot track only for *.gho
+>>>43		ubyte			1		\b, boot track
+# 1~Image Disc only for *.gho implies Image Boot track and sector copy
+>>44		ubyte			1		\b, disc sector copy
+# optional image description only *.gho
+>>0xff		string			>\0		"%-.254s"
+# look for DOS sector end sequence
+>0xE08	search/7776		\x55\xAA	
+>>&-512	indirect		x		\b; contains 
+
+# Symantec GHOST image by Joerg Jenderek at May 2014
+# http://us.norton.com/ghost/
+# http://www.garykessler.net/library/file_sigs.html
+0		ubelong&0xFFFFf7f0	0xFEEF0100	Norton GHost image
+# *.GHO
+>2		ubyte&0x08		0x00		\b, first file
+# *.GHS or *.[0-9] with cns program option
+>2		ubyte&0x08		0x08		\b, split file
+# part of split index interesting for *.ghs
+>>4		ubyte			x		id=0x%x
+# compression tag minus one equals numeric compression command line switch z[1-9]
+>3		ubyte			0		\b, no compression
+>3		ubyte			2		\b, fast compression (Z1)
+>3		ubyte			3		\b, medium compression (Z2)
+>3		ubyte			>3		
+>>3		ubyte			<11		\b, compression (Z%d-1)
+>2		ubyte&0x08		0x00		
+# ~ 30 byte password field only for *.gho
+>>12		ubequad			!0		\b, password protected
+>>44		ubyte			!1		
+# 1~Image All, sector-by-sector only for *.gho
+>>>10		ubyte			1		\b, sector copy
+# 1~Image Boot track only for *.gho
+>>>43		ubyte			1		\b, boot track
+# 1~Image Disc only for *.gho implies Image Boot track and sector copy
+>>44		ubyte			1		\b, disc sector copy
+# optional image description only *.gho
+>>0xff		string			>\0		"%-.254s"
+# look for DOS sector end sequence
+>0xE08	search/7776		\x55\xAA	
+>>&-512	indirect		x		\b; contains 

+ 5 - 5
magic/Magdir/att3b

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: att3b,v 1.8 2009/09/19 16:28:08 christos Exp $
+# $File: att3b,v 1.9 2014/04/30 21:41:02 christos Exp $
 # att3b:  file(1) magic for AT&T 3B machines
 #
 # The `versions' should be un-commented if they work for you.
@@ -11,10 +11,10 @@
 # The 3B20 conflicts with SCCS.
 #0	beshort		0550		3b20 COFF executable
 #>12	belong		>0		not stripped
-#>22	beshort		>0		- version %ld
+#>22	beshort		>0		- version %d
 #0	beshort		0551		3b20 COFF executable (TV)
 #>12	belong		>0		not stripped
-#>22	beshort		>0		- version %ld
+#>22	beshort		>0		- version %d
 #
 # WE32K
 #
@@ -29,12 +29,12 @@
 >20	beshort		0410		(pure)
 >20	beshort		0413		(demand paged)
 >20	beshort		0443		(target shared library)
->22	beshort		>0		- version %ld
+>22	beshort		>0		- version %d
 0	beshort		0561		WE32000 COFF executable (TV)
 >12	belong		>0		not stripped
 #>18	beshort		&00020000	- 32100 required
 #>18	beshort		&00040000	and MAU hardware required
-#>22	beshort		>0		- version %ld
+#>22	beshort		>0		- version %d
 #
 # core file for 3b2 
 0	string		\000\004\036\212\200	3b2 core file

+ 3 - 3
magic/Magdir/audio

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: audio,v 1.68 2013/12/02 13:32:26 christos Exp $
+# $File: audio,v 1.71 2014/05/14 23:30:28 christos Exp $
 # audio:  file(1) magic for sound formats (see also "iff")
 #
 # Jan Nicolai Langfeldt (janl@ifi.uio.no), Dan Quinlan (quinlan@yggdrasil.com),
@@ -104,7 +104,7 @@
 
 # first entry is also the string "NTRK"
 0	belong		0x4e54524b	MultiTrack sound data
->4	belong		x		- version %ld
+>4	belong		x		- version %d
 
 # Extended MOD format (*.emd) (Greg Roelofs, newt@uchicago.edu); NOT TESTED
 # [based on posting 940824 by "Dirk/Elastik", husberg@lehtori.cc.tut.fi]
@@ -638,7 +638,7 @@
 # From: Mike Melanson <mike@multimedia.cx>
 0	string	wvpk	WavPack Lossless Audio
 
-# From Fábio R. Schmidlin <frs@pop.com.br>
+# From Fabio R. Schmidlin <frs@pop.com.br>
 # VGM music file
 0	string		Vgm\ 
 >9	ubyte		>0	VGM Video Game Music dump v

+ 2 - 2
magic/Magdir/bflt

@@ -1,12 +1,12 @@
 
 #------------------------------------------------------------------------------
-# $File: bflt,v 1.4 2009/09/19 16:28:08 christos Exp $
+# $File: bflt,v 1.5 2014/04/30 21:41:02 christos Exp $
 # bFLT: file(1) magic for BFLT uclinux binary files
 #
 # From Philippe De Muyter <phdm@macqel.be>
 #
 0	string		bFLT		BFLT executable
->4	belong		x		- version %ld
+>4	belong		x		- version %d
 >4	belong		4
 >>36	belong&0x1	0x1		ram
 >>36	belong&0x2	0x2		gotpic

+ 4 - 4
magic/Magdir/bsdi

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: bsdi,v 1.6 2013/01/09 22:37:24 christos Exp $
+# $File: bsdi,v 1.7 2014/03/29 15:40:34 christos Exp $
 # bsdi:  file(1) magic for BSD/OS (from BSDI) objects
 # Some object/executable formats use the same magic numbers as are used
 # in other OSes; those are handled by entries in aout.
@@ -11,7 +11,7 @@
 >32	byte		0x6a		(uses shared libs)
 
 # same as in SunOS 4.x, except for static shared libraries
-0	belong&077777777	0600413		sparc demand paged
+0	belong&077777777	0600413		SPARC demand paged
 >0	byte		&0x80
 >>20	belong		<4096		shared library
 >>20	belong		=4096		dynamically linked executable
@@ -20,13 +20,13 @@
 >16	belong		>0		not stripped
 >36	belong		0xb4100001	(uses shared libs)
 
-0	belong&077777777	0600410		sparc pure
+0	belong&077777777	0600410		SPARC pure
 >0	byte		&0x80		dynamically linked executable
 >0	byte		^0x80		executable
 >16	belong		>0		not stripped
 >36	belong		0xb4100001	(uses shared libs)
 
-0	belong&077777777	0600407		sparc
+0	belong&077777777	0600407		SPARC
 >0	byte		&0x80		dynamically linked executable
 >0	byte		^0x80		executable
 >16	belong		>0		not stripped

+ 2 - 2
magic/Magdir/c-lang

@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: c-lang,v 1.18 2013/08/14 13:06:43 christos Exp $
+# $File: c-lang,v 1.19 2014/06/03 19:17:27 christos Exp $
 # c-lang:  file(1) magic for C and related languages programs
 #
 
@@ -50,7 +50,7 @@
 >7	string		x		version %.2s
 # We skip the path here, because it is often long (so file will
 # truncate it) and mostly redundant.
-# The inverted index functionality was added some time betwen
+# The inverted index functionality was added some time between
 # versions 11 and 15, so look for -q if version is above 14:
 >7	string		>14
 >>10	search/100	\ -q\ 		with inverted index

+ 2 - 2
magic/Magdir/cafebabe

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: cafebabe,v 1.15 2014/03/14 18:47:29 christos Exp $
+# $File: cafebabe,v 1.16 2014/04/30 21:41:02 christos Exp $
 # Cafe Babes unite!
 #
 # Since Java bytecode and Mach-O universal binaries have the same magic number,
@@ -52,7 +52,7 @@
 >4	belong		1		Mach-O universal binary with 1 architecture:
 >>8	use		mach-o		\b
 >4	belong		>1
->>4	belong		<20		Mach-O universal binary with %ld architectures:
+>>4	belong		<20		Mach-O universal binary with %d architectures:
 >>>8	use		mach-o		\b
 >>>28	use		mach-o		\b
 >>4	belong		>2

+ 2 - 2
magic/Magdir/clarion

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: clarion,v 1.4 2009/09/19 16:28:08 christos Exp $
+# $File: clarion,v 1.5 2014/04/30 21:41:02 christos Exp $
 # clarion:  file(1) magic for # Clarion Personal/Professional Developer
 # (v2 and above)
 # From: Julien Blache <jb@jblache.org>
@@ -15,7 +15,7 @@
 >2	leshort	&0x0010	\b, compressed
 >2	leshort	&0x0040	\b, read only
 # number of records
->5	lelong	x	\b, %ld records
+>5	lelong	x	\b, %d records
 
 # Memo files
 0	leshort	0x334d	Clarion Developer (v2 and above) memo data

+ 2 - 2
magic/Magdir/claris

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: claris,v 1.6 2012/06/20 21:19:05 christos Exp $
+# $File: claris,v 1.7 2014/06/03 19:17:27 christos Exp $
 # claris:  file(1) magic for claris
 # "H. Nanosecond" <aldomel@ix.netcom.com>
 # Claris Works a word processor, etc.
@@ -20,7 +20,7 @@
 # .cwk
 0	string	\002\000\210\003\102\117\102\117\000\001\206 Claris works document
 # .plt
-0	string	\020\341\000\000\010\010	Claris Works pallete files .plt
+0	string	\020\341\000\000\010\010	Claris Works palette files .plt
 
 # .msp a dictionary file I am not sure about this I have only one .msp file
 0	string	\002\271\262\000\040\002\000\164	Claris works dictionary

+ 3 - 3
magic/Magdir/clipper

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: clipper,v 1.6 2009/09/19 16:28:08 christos Exp $
+# $File: clipper,v 1.7 2014/04/30 21:41:02 christos Exp $
 # clipper:  file(1) magic for Intergraph (formerly Fairchild) Clipper.
 #
 # XXX - what byte order does the Clipper use?
@@ -35,7 +35,7 @@
 >20	short		0413		(demand paged)
 >20	short		0443		(target shared library)
 >12	long		>0		not stripped
->22	short		>0		- version %ld
+>22	short		>0		- version %d
 0	short		0577		CLIPPER COFF executable
 >18	short&074000	000000		C1 R1 
 >18	short&074000	004000		C2 R1
@@ -47,7 +47,7 @@
 >20	short		0413		(paged)
 >20	short		0443		(target shared library)
 >12	long		>0		not stripped
->22	short		>0		- version %ld
+>22	short		>0		- version %d
 >48	long&01		01		alignment trap enabled
 >52	byte		1		-Ctnc
 >52	byte		2		-Ctsw

+ 2 - 2
magic/Magdir/commands

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: commands,v 1.48 2014/03/04 12:20:42 kim Exp $
+# $File: commands,v 1.50 2014/05/30 16:48:44 christos Exp $
 # commands:  file(1) magic for various shells and interpreters
 #
 #0	string/w	:			shell archive or script for antique kernel text
@@ -56,7 +56,7 @@
 !:mime	text/x-awk
 0	string/wt	#!\ /usr/bin/awk	awk script text executable
 !:mime	text/x-awk
-0	regex		=^\\s{0,100}BEGIN\\s{0,100}[{]	awk script text
+0	regex/4096	=^\\s{0,100}BEGIN\\s{0,100}[{]	awk script text
 
 # AT&T Bell Labs' Plan 9 shell
 0	string/wt	#!\ /bin/rc	Plan 9 rc shell script text executable

+ 10 - 3
magic/Magdir/compress

@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: compress,v 1.54 2014/03/14 18:47:29 christos Exp $
+# $File: compress,v 1.58 2014/05/07 19:36:59 christos Exp $
 # compress:  file(1) magic for pure-compression formats (no archives)
 #
 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
@@ -210,9 +210,12 @@
 !:mime	application/x-lrzip
 
 # http://fastcompression.blogspot.fi/2013/04/lz4-streaming-format-final.html
-0	lelong		0x184d2204	LZ4 compressed data
+0	lelong		0x184d2204	LZ4 compressed data (v1.4+)
 !:mime	application/x-lz4
-0	lelong		0x184c2102	LZ4 compressed data, legacy format
+# Added by osm0sis@xda-developers.com
+0 	lelong		0x184c2103	LZ4 compressed data (v1.0-v1.3)
+!:mime	application/x-lz4
+0	lelong		0x184c2102	LZ4 compressed data (v0.1-v0.9)
 !:mime	application/x-lz4
 
 # AFX compressed files (Wolfram Kleff)
@@ -244,3 +247,7 @@
 >0x4	lelong	x		\b, version %u
 >0x8	lelong	x		\b, %u entries
 
+# Snappy framing format
+# http://code.google.com/p/snappy/source/browse/trunk/framing_format.txt
+0	string	\377\006\0\0sNaPpY	snappy framed data
+!:mime	application/x-snappy-framed

+ 4 - 4
magic/Magdir/cups

@@ -1,12 +1,12 @@
 
 #------------------------------------------------------------------------------
-# $File: cups,v 1.2 2012/11/02 21:50:29 christos Exp $
+# $File: cups,v 1.3 2014/05/28 19:50:41 christos Exp $
 # Cups: file(1) magic for the cups raster file format
 # From: Laurent Martelli <martellilaurent@gmail.com>
 # http://www.cups.org/documentation.php/spec-raster.html
 #
 
-0	name		cups-be
+0	name		cups-le
 >280	lelong		x		\b, %d
 >284	lelong		x		\bx%d dpi
 >376	lelong		x		\b, %dx
@@ -44,7 +44,7 @@
 >3	string		2		Cups Raster version 2, Big Endian
 >3	string		3		Cups Raster version 3, Big Endian
 !:mime	application/vnd.cups-raster
->0	use		^cups-be
+>0	use		^cups-le
 
 
 # Cups Raster image format, Little Endian
@@ -53,4 +53,4 @@
 >0	string		2		Cups Raster version 2, Little Endian
 >0	string		3		Cups Raster version 3, Little Endian
 !:mime	application/vnd.cups-raster
->0	use		\^cups-be
+>0	use		cups-le

+ 11 - 11
magic/Magdir/database

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: database,v 1.37 2014/03/14 18:47:29 christos Exp $
+# $File: database,v 1.41 2014/06/03 19:17:27 christos Exp $
 # database:  file(1) magic for various databases
 #
 # extracted from header/code files by Graeme Wilford (eep2gw@ee.surrey.ac.uk)
@@ -105,7 +105,7 @@
 >>8	quad		0		64bit aligned
 >>>16	bedouble	8.642135e+130	big-endian
 >>>>24	long		0		64bit long (s390x)
->>>>24	long		!0		32bit long (hppa/mips/ppc/s390/sparc)
+>>>>24	long		!0		32bit long (hppa/mips/ppc/s390/SPARC)
 >>>16	ledouble	8.642135e+130	little-endian
 >>>>28	long		0		64bit long (alpha/amd64/ia64)
 >>>>28	long		!0		32bit long (armel/mipsel)
@@ -176,7 +176,7 @@
 # database file
 >>>>>>>>>>>>0	ubyte			x		\b DBF
 >>>>>>>>>>>>4	lelong			0		\b, no records
->>>>>>>>>>>>4	lelong			>0		\b, %ld record
+>>>>>>>>>>>>4	lelong			>0		\b, %d record
 # plural s appended
 >>>>>>>>>>>>>4	lelong			>1		\bs
 # http://www.clicketyclick.dk/databases/xbase/format/dbf_check.html#CHECK_DBF
@@ -364,22 +364,22 @@
 >>16	ubyte			0		
 >>>512	ubelong			<0x00000003	FoxPro FPT
 # Size of blocks for FoxPro
->>>>6	ubeshort		x		\b, blocks size %lu
+>>>>6	ubeshort		x		\b, blocks size %u
 # Number of next available block for appending data for FoxPro
->>>>0	ubelong			=0		\b, next free block index %lu
->>>>0	ubelong			!0		\b, next free block index %lu
+>>>>0	ubelong			=0		\b, next free block index %u
+>>>>0	ubelong			!0		\b, next free block index %u
 >>>512	default			x		dBase IV DBT
-# DBF file name without extention 
+# DBF file name without extension
 >>>>8	string			>\0		\b of %-.8s.DBF
 # size of blocks  ; not reliable 0x2020204C
-#>>>>4	ulelong			=0		\b, blocks size %lu
->>>>4	ulelong			!0		\b, blocks size %lu
+#>>>>4	ulelong			=0		\b, blocks size %u
+>>>>4	ulelong			!0		\b, blocks size %u
 # Block length found 0 , 512
 #>>>>20	uleshort		=0		\b, block length %u
 >>>>20	uleshort		!0		\b, block length %u
 # Number of next available block for appending data
->>>>0	ulelong			=0		\b, next free block index %lu
->>>>0	ulelong			!0		\b, next free block index %lu
+>>>>0	ulelong			=0		\b, next free block index %u
+>>>>0	ulelong			!0		\b, next free block index %u
 >>512	ubelong			x		
 >>>512	ubelong			=0xFFFF0800	
 >>>>520	string			>\0		\b, 1st used item "%s"

+ 5 - 5
magic/Magdir/dump

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: dump,v 1.12 2012/11/01 04:26:40 christos Exp $
+# $File: dump,v 1.13 2014/04/30 21:41:02 christos Exp $
 # dump:  file(1) magic for dump file format--for new and old dump filesystems
 #
 # We specify both byte orders in order to recognize byte-swapped dumps.
@@ -8,7 +8,7 @@
 0	name	new-dump-be
 >4	bedate	x		Previous dump %s,
 >8	bedate	x		This dump %s,
->12	belong	>0		Volume %ld,
+>12	belong	>0		Volume %d,
 >692	belong	0		Level zero, type:
 >692	belong	>0		Level %d, type:
 >0	belong	1		tape header,
@@ -27,7 +27,7 @@
 0	name	old-dump-be
 #>4	bedate	x		Previous dump %s,
 #>8	bedate	x		This dump %s,
->12	belong	>0		Volume %ld,
+>12	belong	>0		Volume %d,
 >692	belong	0		Level zero, type:
 >692	belong	>0		Level %d, type:
 >0	belong	1		tape header,
@@ -46,7 +46,7 @@
 0	name	ufs2-dump-be
 >896	beqdate	x		Previous dump %s,
 >904	beqdate	x		This dump %s,
->12	belong	>0		Volume %ld,
+>12	belong	>0		Volume %d,
 >692	belong	0		Level zero, type:
 >692	belong	>0		Level %d, type:
 >0	belong	1		tape header,
@@ -84,7 +84,7 @@
 18	leshort	60011		old-fs dump file (16-bit, assuming PDP-11 endianness),
 >2	medate	x		Previous dump %s,
 >6	medate	x		This dump %s,
->10	leshort	>0		Volume %ld,
+>10	leshort	>0		Volume %d,
 >0	leshort	1		tape header.
 >0	leshort	2		beginning of file record.
 >0	leshort	3		map of inodes on tape.

+ 50 - 40
magic/Magdir/dyadic

@@ -1,46 +1,56 @@
 
 #------------------------------------------------------------------------------
-# $File: dyadic,v 1.5 2010/09/20 18:55:20 rrt Exp $
+# $File: dyadic,v 1.6 2014/06/01 19:14:42 christos Exp $
 # Dyadic: file(1) magic for Dyalog APL.
 #
-0	byte	0xaa
->1	byte	<4		Dyalog APL
->>1	byte	0x00		incomplete workspace
->>1	byte	0x01		component file
->>1	byte	0x02		external variable
->>1	byte	0x03		workspace
->>2	byte	x		version %d
->>3	byte	x		.%d
-
-0	beshort		0xaa03		Dyalog APL
->2	byte		x		workspace type %d
->3	byte		x		subtype %d
->7	byte&0x28	0x00		32-bit
->7	byte&0x28	0x20		64-bit
->7	byte&0x0c	0x00		classic
->7	byte&0x0c	0x04		unicode
->7	byte&0x88	0x00		big-endian
->7	byte&0x88	0x80		little-endian
-
-0	byte		0xaa		Dyalog APL
->1	byte		0x00		aplcore
->1	byte		0x01		component file 32-bit non-journaled non-checksummed
->1	byte		0x02		external variable exclusive
->1	byte		0x06		external variable shared
->1	byte		0x07		session
->1	byte		0x08		mapped file 32-bit
->1	byte		0x09		component file 64-bit non-journaled non-checksummed
->1	byte		0x0a		mapped file 64-bit
->1	byte		0x0b		component file 32-bit level 1 journaled non-checksummed
->1	byte		0x0c		component file 64-bit level 1 journaled non-checksummed
->1	byte		0x0d		component file 32-bit level 1 journaled checksummed
->1	byte		0x0e		component file 64-bit level 1 journaled checksummed
->1	byte		0x0f		component file 32-bit level 2 journaled checksummed
->1	byte		0x10		component file 64-bit level 2 journaled checksummed
->1	byte		0x11		component file 32-bit level 3 journaled checksummed
->1	byte		0x12		component file 64-bit level 3 journaled checksummed
->1	byte		0x13		component file 32-bit non-journaled checksummed
->1	byte		0x14		component file 64-bit non-journaled checksummed
->1	byte		0x80		DDB
+# updated by Joerg Jenderek at Oct 2013
+# http://en.wikipedia.org/wiki/Dyalog_APL
+# http://www.dyalog.com/
+# .DXV Dyalog APL External Variable
+# .DIN Dyalog APL Input Table
+# .DOT Dyalog APL Output Table
+# .DFT Dyalog APL Format File
+0	ubeshort&0xFF60	0xaa00		
+# skip biblio.dbt
+>1	byte		!4		
+# real Dyalog APL have non zero version numbers like 7.3 or 13.4
+>>2	ubeshort	>0x0000		Dyalog APL
+>>>1	byte		0x00		aplcore
+#>>>1	byte		0x00		incomplete workspace
+# *.DCF Dyalog APL Component File
+>>>1	byte		0x01		component file 32-bit non-journaled non-checksummed
+#>>>1	byte		0x01		component file
+>>>1	byte		0x02		external variable exclusive
+#>>>1	byte		0x02		external variable
+# *.DWS Dyalog APL Workspace
+>>>1	byte		0x03		workspace
+>>>>7	byte&0x28	0x00		32-bit
+>>>>7	byte&0x28	0x20		64-bit
+>>>>7	byte&0x0c	0x00		classic
+>>>>7	byte&0x0c	0x04		unicode
+>>>>7	byte&0x88	0x00		big-endian
+>>>>7	byte&0x88	0x80		little-endian
+>>>1	byte		0x06		external variable shared
+# *.DSE Dyalog APL Session , *.DLF Dyalog APL Session Log File
+>>>1	byte		0x07		session
+>>>1	byte		0x08		mapped file 32-bit
+>>>1	byte		0x09		component file 64-bit non-journaled non-checksummed
+>>>1	byte		0x0a		mapped file 64-bit
+>>>1	byte		0x0b		component file 32-bit level 1 journaled non-checksummed
+>>>1	byte		0x0c		component file 64-bit level 1 journaled non-checksummed
+>>>1	byte		0x0d		component file 32-bit level 1 journaled checksummed
+>>>1	byte		0x0e		component file 64-bit level 1 journaled checksummed
+>>>1	byte		0x0f		component file 32-bit level 2 journaled checksummed
+>>>1	byte		0x10		component file 64-bit level 2 journaled checksummed
+>>>1	byte		0x11		component file 32-bit level 3 journaled checksummed
+>>>1	byte		0x12		component file 64-bit level 3 journaled checksummed
+>>>1	byte		0x13		component file 32-bit non-journaled checksummed
+>>>1	byte		0x14		component file 64-bit non-journaled checksummed
+>>>1	byte		0x80		DDB
+>>>2	byte		x		version %d
+>>>3	byte		x		\b.%d
+#>>>2	byte		x		type %d
+#>>>3	byte		x		subtype %d
 
+# *.DXF Dyalog APL Transfer File
 0	short		0x6060		Dyalog APL transfer

+ 2 - 2
magic/Magdir/efi

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: efi,v 1.4 2009/09/19 16:28:09 christos Exp $
+# $File: efi,v 1.5 2014/04/30 21:41:02 christos Exp $
 # efi:  file(1) magic for Universal EFI binaries
 
 0	lelong	0x0ef1fab9
@@ -12,4 +12,4 @@
 >>&0	lelong	0x01000007	\b, x86_64
 >>&20	lelong	7		\b, i386
 >>&20	lelong	0x01000007	\b, x86_64
->4	lelong	>2		Universal EFI binary with %ld architectures
+>4	lelong	>2		Universal EFI binary with %d architectures

+ 15 - 1
magic/Magdir/elf

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: elf,v 1.66 2014/03/06 16:37:39 christos Exp $
+# $File: elf,v 1.67 2014/06/12 13:52:48 christos Exp $
 # elf:  file(1) magic for ELF executables
 #
 # We have to check the byte order flag to see what byte order all the
@@ -243,6 +243,20 @@
 >18	leshort		191		Tilera TILE-Gx,
 >18	leshort		197		Renesas RL78 family,
 >18	leshort		199		Renesas 78K0R,
+>18	leshort		200		Freescale 56800EX,
+>18	leshort		201		Beyond BA1,
+>18	leshort		202		Beyond BA2,
+>18	leshort		203		XMOS xCORE,
+>18	leshort		204		Microchip 8-bit PIC(r),
+>18	leshort		210		KM211 KM32,
+>18	leshort		211		KM211 KMX32,
+>18	leshort		212		KM211 KMX16,
+>18	leshort		213		KM211 KMX8,
+>18	leshort		214		KM211 KVARC,
+>18	leshort		215		Paneve CDP,
+>18	leshort		216		Cognitive Smart Memory,
+>18	leshort		217		iCelero CoolEngine,
+>18	leshort		218		Nanoradio Optimized RISC,
 >18	leshort		0x1057		AVR (unofficial),
 >18	leshort		0x1059		MSP430 (unofficial),
 >18	leshort		0x1223		Adapteva Epiphany (unofficial),

+ 3 - 3
magic/Magdir/encore

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: encore,v 1.6 2009/09/19 16:28:09 christos Exp $
+# $File: encore,v 1.7 2014/04/30 21:41:02 christos Exp $
 # encore:  file(1) magic for Encore machines
 #
 # XXX - needs to have the byte order specified (NS32K was little-endian,
@@ -12,11 +12,11 @@
 >20	short		0x10b		demand-paged executable
 >20	short		0x10f		unsupported executable
 >12	long		>0		not stripped
->22	short		>0		- version %ld
+>22	short		>0		- version %d
 >22	short		0		-
 #>4	date		x		stamp %s
 0	short		0x155		Encore unsupported executable
 >12	long		>0		not stripped
->22	short		>0		- version %ld
+>22	short		>0		- version %d
 >22	short		0		-
 #>4	date		x		stamp %s

+ 70 - 132
magic/Magdir/filesystems

@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: filesystems,v 1.87 2014/03/01 03:04:06 christos Exp $
+# $File: filesystems,v 1.95 2014/06/03 19:17:27 christos Exp $
 # filesystems:  file(1) magic for different filesystems
 #
 0	name	partid  
@@ -204,8 +204,8 @@
 >>0752	short		>0		%d alt cyls,
 >>0754	short		>0		%d heads/partition,
 >>0756	short		>0		%d sectors/track,
->>0764	long		>0		start cyl %ld,
->>0770	long		x		%ld blocks
+>>0764	long		>0		start cyl %d,
+>>0770	long		x		%d blocks
 # Is there a boot block written 1 sector in?
 >512    belong&077777777	0600407	\b, boot block present
 
@@ -249,7 +249,7 @@
 0	string	PNCIUNDO		Norton Disk Doctor UnDo file
 #
 
-# DOS/MBR boot sector updated by Joerg Jenderek at Sep 2007,May 2011
+# DOS/MBR boot sector updated by Joerg Jenderek at Sep 2007,May 2011,2013
 # for any allowed sector sizes
 30		search/481	\x55\xAA	
 # to display DOS/MBR boot sector (40) before old one (strength=50+21),Syslinux bootloader (71),SYSLINUX MBR (37+36),NetBSD mbr (110),AdvanceMAME mbr (111)
@@ -262,10 +262,10 @@
 >0x1FE		leshort		0xAA55		DOS/MBR boot sector
 # keep old DOS/MBR boot sector as dummy for mbr and bootloader displaying
 # only for sector sizes with 512 or more Bytes
-0x1FE		leshort		0xAA55		DOS/MBR boot sector
-!:strength +72
+0x1FE		leshort		0xAA55		
+#
 # to display information (50) before DOS BPB (strength=70) and after DOS floppy (120) like in old file version
-#!:strength +21
+!:strength +21
 >2	string	OSBS			\b, OS/BS MBR
 # added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/
 # and http://en.wikipedia.org/wiki/Master_Boot_Record
@@ -319,8 +319,8 @@
 # assembler instructions: rep;movsb;retf;mov si,07be;mov cl,04
 >>>24		ubequad	0xf3a4cbbebe07b104		9M
 # "Invalid partition table"				nn=0x10F for english version
-# "Ungültige Partitionstabelle"				nn=0x10F for german version
-# "Table de partition erronée"				nn=0x10F for french version
+# "Ung\201ltige Partitionstabelle"				nn=0x10F for german version
+# "Table de partition erron\202e"				nn=0x10F for french version
 # "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"	nn=0x10F for russian version
 >>>>(0x3C.b+0x0FF)	string	Invalid\ partition\ table		english
 >>>>(0x3C.b+0x0FF)	string	Ung\201ltige\ Partitionstabelle		german
@@ -330,13 +330,13 @@
 >>>>(0x3C.b+0x0FF)	string	>\0			"%s"
 # "Error loading operating system"			nn=0x127 for english version
 # "Fehler beim Laden des Betriebssystems"		nn=0x12b for german version
-# "Erreur lors du chargement du système d'exploitation"	nn=0x12a for french version
+# "Erreur lors du chargement du syst\212me d'exploitation"	nn=0x12a for french version
 # "\216\350\250\241\252\240 \257\340\250 \247\240\243\340\343\247\252\245 \256\257\245\340\240\346\250\256\255\255\256\251 \341\250\341\342\245\254\353"	nn=0x12d for russian version
 >>>>0xBD		ubyte	x			at offset 0x1%x
 >>>>(0xBD.b+0x100)	string	>\0			"%s"
 # "Missing operating system"				nn=0x146 for english version
 # "Betriebssystem fehlt"				nn=0x151 for german version
-# "Système d'exploitation manquant"			nn=0x15e for french version
+# "Syst\212me d'exploitation manquant"			nn=0x15e for french version
 # "\216\257\245\340\240\346\250\256\255\255\240\357 \341\250\341\342\245\254\240 \255\245 \255\240\251\244\245\255\240"	nn=0x156 for russian version
 >>>>0xA9		ubyte	x			at offset 0x1%x
 >>>>(0xA9.b+0x100)	string	>\0			"%s"
@@ -347,7 +347,7 @@
 >>>>0x1B4	ubelong&0x00FFFFFF	0x002c4463	english
 >>>>0x1B4	ubelong&0x00FFFFFF	0x002c486e	german
 # "Invalid partition table"				xx=0x12C for english version
-# "Ungültige Partitionstabelle"				xx=0x12C for german version
+# "Ung\201ltige Partitionstabelle"				xx=0x12C for german version
 >>>>0x1b5	ubyte		>0			at offset 0x1%x
 >>>>(0x1b5.b+0x100)	string	>\0			"%s"
 # "Error loading operating system"			yy=0x144 for english version
@@ -368,7 +368,7 @@
 >>>>0x1B4	ubelong&0x00FFFFFF	0x00627a99	english
 #>>>>0x1B4	ubelong&0x00FFFFFF	?		german
 # "Invalid partition table"				xx=0x162 for english version
-# "Ungültige Partitionstabelle"				xx=0x1?? for german version
+# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
 >>>>0x1b5	ubyte		>0			at offset 0x1%x
 >>>>(0x1b5.b+0x100)	string	>\0			"%s"
 # "Error loading operating system"			yy=0x17a for english version
@@ -386,7 +386,7 @@
 >>>>0x1B4	ubelong&0x00FFFFFF	0x00637b9a	english
 #>>>>0x1B4	ubelong&0x00FFFFFF	?		german
 # "Invalid partition table"				xx=0x163 for english version
-# "Ungültige Partitionstabelle"				xx=0x1?? for german version
+# "Ung\201ltige Partitionstabelle"				xx=0x1?? for german version
 >>>>0x1b5	ubyte		>0			at offset 0x1%x
 >>>>(0x1b5.b+0x100)	string	>\0			"%s"
 # "Error loading operating system"			yy=0x17b for english version
@@ -519,7 +519,7 @@
 >>>>>379	string	GRUB\ \0		\b, GRUB version 0.95 or 0.96
 >>>>391		string	Geom\0Hard\ Disk\0Read\0\ Error\0
 >>>>>385	string	GRUB\ \0		\b, GRUB version 0.97
-#unkown version
+# unknown version
 >>>343		string	Geom\0Read\0\ Error\0	
 >>>>321		string	Loading\ stage1.5	\b, GRUB version x.y
 >>>380		string	Geom\0Hard\ Disk\0Read\0\ Error\0
@@ -566,16 +566,11 @@
 #OEM-ID=BOOTWIZ0
 >442	string	Non-system\ disk,\ 	
 >>459	string	press\ any\ key...\x7\0		\b, Acronis Startup Recovery Loader
-# updated by Joerg Jenderek at Nov 2012
+# updated by Joerg Jenderek at Nov 2012, Sep 2013
 # DOS names like F11.SYS or BOOTWIZ.SYS are 8 right space padded bytes+3 bytes
->>>477		ubyte&0xDF	>0		
->>>>477		string		x 		\b %-.3s
->>>>>480	ubyte&0xDF	>0		
->>>>>>480	string		x 		\b%-.4s
->>>>>>>484	ubyte&0xDF	>0		
->>>>>>>>484	string		x 		\b%-.1s
->>>>485		ubyte&0xDF	>0		
->>>>>485	string		x 		\b.%-.3s
+# display 1 space
+>>>447	ubyte	x		\b 
+>>>477	use	DOS-filename
 #
 >185	string	FDBOOT\ Version\ 			
 >>204	string	\rNo\ Systemdisk.\ 			
@@ -1015,75 +1010,45 @@
 # It just looks for a program file name at the root directory
 # and loads corresponding file with following execution.
 # DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
->>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
->>>>>499		string		x 		\b %-.1s
->>>>>>500		ubyte&0xDF	>0		
->>>>>>>500		string		x 		\b%-.1s
->>>>>>>>501		ubyte&0xDF	>0		
->>>>>>>>>501		string		x 		\b%-.1s
->>>>>>>>>>502		ubyte&0xDF	>0		
->>>>>>>>>>>502		string		x 		\b%-.1s
->>>>>>>>>>>>503		ubyte&0xDF	>0		
->>>>>>>>>>>>>503	string		x 		\b%-.1s
->>>>>>>>>>>>>>504	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>504	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
-#name extension
->>>>>507		ubyte&0xDF	>0		\b.
->>>>>>507		string		x 		\b%-.1s
->>>>>>>508		ubyte&0xDF	>0		
->>>>>>>>508		string		x 		\b%-.1s
->>>>>>>>>509		ubyte&0xDF	>0		
->>>>>>>>>>509		string		x 		\b%-.1s
+>>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader 
+>>>>>499		use		DOS-filename
 #If the boot sector fails to read any other sector,
 #it prints a very short message ("RE") to the screen and hangs the computer.
 #If the boot sector fails to find needed program in the root directory,
 #it also hangs with another message ("NF").
 >>>>>492		string		RENF		\b, FAT (12 bit)
 >>>>>495		string		RENF		\b, FAT (16 bit)
-# http://alexfru.chat.ru/epm.html#bootprog
->494	ubyte	>0x4D					
->>495	string	>E					
->>>495	string	<S					
-#OEM-ID is not reliable
->>>>3	string	BootProg				
-# It just looks for a program file name at the root directory
-# and loads corresponding file with following execution.
-# DOS names like STARTUP.BIN,STARTUPC.COM,STARTUPE.EXE are 8 right space padded bytes+3 bytes
->>>>499			ubyte&0xDF	>0		\b, COM/EXE Bootloader
->>>>>499		string		x 		\b %-.1s
->>>>>>500		ubyte&0xDF	>0		
->>>>>>>500		string		x 		\b%-.1s
->>>>>>>>501		ubyte&0xDF	>0		
->>>>>>>>>501		string		x 		\b%-.1s
->>>>>>>>>>502		ubyte&0xDF	>0		
->>>>>>>>>>>502		string		x 		\b%-.1s
->>>>>>>>>>>>503		ubyte&0xDF	>0		
->>>>>>>>>>>>>503	string		x 		\b%-.1s
->>>>>>>>>>>>>>504	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>504	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>505	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>505	string		x 		\b%-.1s
->>>>>>>>>>>>>>>>>>506	ubyte&0xDF	>0		
->>>>>>>>>>>>>>>>>>>506	string		x 		\b%-.1s
-#name extension
->>>>>507		ubyte&0xDF	>0		\b.
->>>>>>507		string		x 		\b%-.1s
->>>>>>>508		ubyte&0xDF	>0		
->>>>>>>>508		string		x 		\b%-.1s
->>>>>>>>>509		ubyte&0xDF	>0		
->>>>>>>>>>509		string		x 		\b%-.1s
 #If the boot sector fails to read any other sector,
 #it prints a very short message ("RE") to the screen and hangs the computer.
-#If the boot sector fails to find needed program in the root directory,
-#it also hangs with another message ("NF").
->>>>>492		string		RENF		\b, FAT (12 bit)
->>>>>495		string		RENF		\b, FAT (16 bit)
 # x86 bootloader end
 
+# added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
+# and http://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector
+>0		string		RRaA		
+>>0x1E4		string		rrAa		\b, FSInfosector
+#>>0x1FC	uleshort	=0		SHOULD BE ZERO
+>>>0x1E8	ulelong		<0xffffffff	\b, %u free clusters
+>>>0x1EC	ulelong		<0xffffffff	\b, last allocated cluster %u
+
+# updated by Joerg Jenderek at Sep 2007
+>3	ubyte	0			
+#no active flag
+>>446	ubyte	0			
+# partition 1 not empty
+>>>450	ubyte	>0			
+# partitions 3,4 empty
+>>>>482		ubyte	0			
+>>>>>498	ubyte	0			
+# partition 2 ID=0,5,15
+>>>>>>466	ubyte	<0x10			
+>>>>>>>466	ubyte	0x05			\b, extended partition table
+>>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
+>>>>>>>466	ubyte	0x0			\b, extended partition table (last)	
+
+# DOS x86 sector separated and moved from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
+
+>0x200	lelong	0x82564557		\b, BSD disklabel
+
 # by Joerg Jenderek at Apr 2013
 #	Print the DOS filenames from directory entry form with 8 right space padded bytes + 3 bytes for extension
 #	like IO.SYS. MSDOS.SYS , KERNEL.SYS , DRBIO.SYS
@@ -1121,33 +1086,6 @@
 >11			ubyte		x		\b+
 >11			use		DOS-filename
 
-# added by Joerg Jenderek at Feb 2013 according to http://thestarman.pcministry.com/asm/mbr/MSWIN41.htm#FSINFO
-# and http://en.wikipedia.org/wiki/File_Allocation_Table#FS_Information_Sector
->0		string		RRaA		
->>0x1E4		string		rrAa		\b, FSInfosector
-#>>0x1FC	uleshort	=0		SHOULD BE ZERO
->>>0x1E8	ulelong		<0xffffffff	\b, %u free clusters
->>>0x1EC	ulelong		<0xffffffff	\b, last allocated cluster %u
-
-# updated by Joerg Jenderek at Sep 2007
->3	ubyte	0			
-#no active flag
->>446	ubyte	0			
-# partition 1 not empty
->>>450	ubyte	>0			
-# partitions 3,4 empty
->>>>482		ubyte	0			
->>>>>498	ubyte	0			
-# partition 2 ID=0,5,15
->>>>>>466	ubyte	<0x10			
->>>>>>>466	ubyte	0x05			\b, extended partition table
->>>>>>>466	ubyte	0x0F			\b, extended partition table (LBA)
->>>>>>>466	ubyte	0x0			\b, extended partition table (last)	
-
-# DOS x86 sector separated and moved from "DOS/MBR boot sector" by Joerg Jenderek at May 2011
-
->0x200	lelong	0x82564557		\b, BSD disklabel
-
 # http://en.wikipedia.org/wiki/Master_boot_record#PTE
 # display standard partition table
 0	name				partition-table
@@ -1330,7 +1268,7 @@
 #>>>(0x1BC.s+11)		ubyte		x			\b,cfg_def 0x%x
 # for older versions
 >>>(0x1BC.s+9)		ubyte		<2			
-#>>>>(0x1BC.s+12)	ubyte		18			\b,%u/18 seconds
+#>>>>(0x1BC.s+12)	ubyte		18			\b,%hhu/18 seconds
 >>>>(0x1BC.s+12)	ubyte		!18			\b,%u/18 seconds
 # floppy A: or B:
 >>>>(0x1BC.s+13)	ubyte		<2			\b,floppy 0x%x
@@ -1373,7 +1311,7 @@
 >>>>0x207	ubyte		x		\b.%u
 # module_size for 1.94
 >>>>0x208	ulelong		<0xffffff	\b, installed partition %u
-#>>>>0x208	ulelong		=0xffffff	\b, %u (default)
+#>>>>0x208	ulelong		=0xffffff	\b, %lu (default)
 >>>>0x208	ulelong		>0xffffff	\b, installed partition %u
 # GRUB 0.5.95 unofficial
 >>>>0x20C	ulelong&0x2E300000 0x2E300000	
@@ -1447,14 +1385,14 @@
 >>>>>16		ubyte		=1		\b, FAT  %u
 >>>>>16		ubyte		>0
 >>>>>17		uleshort	>0		\b, root entries %u
-#>>>>>17	uleshort	=0		\b, root entries %u=0 (usual Fat32)
+#>>>>>17	uleshort	=0		\b, root entries %hu=0 (usual Fat32)
 >>>>>19		uleshort	>0		\b, sectors %u (volumes <=32 MB) 
-#>>>>>19	uleshort	=0		\b, sectors %u=0 (usual Fat32)
+#>>>>>19	uleshort	=0		\b, sectors %hu=0 (usual Fat32)
 >>>>>21		ubyte		>0xF0		\b, Media descriptor 0x%x
 #>>>>>21	ubyte		=0xF0		\b, Media descriptor 0x%x (usual floppy)
 >>>>>21		ubyte		<0xF0		\b, Media descriptor 0x%x
 >>>>>22		uleshort	>0		\b, sectors/FAT %u
-#>>>>>22	uleshort	=0		\b, sectors/FAT %u=0 (usual Fat32)
+#>>>>>22	uleshort	=0		\b, sectors/FAT %hu=0 (usual Fat32)
 >>>>>24		uleshort	x		\b, sectors/track %u
 >>>>>26		ubyte		>2		\b, heads %u
 #>>>>>26	ubyte		=2		\b, heads %u (usual floppy)
@@ -1496,7 +1434,7 @@
 >>>>>>36	ulelong		x		\b, sectors/FAT %u
 # http://technet.microsoft.com/en-us/library/cc977221.aspx
 >>>>>>40	uleshort	>0		\b, extension flags 0x%x
-#>>>>>>40	uleshort	=0		\b, extension flags %u
+#>>>>>>40	uleshort	=0		\b, extension flags %hu
 >>>>>>42	uleshort	>0		\b, fsVersion %u
 #>>>>>>42	uleshort	=0		\b, fsVersion %u (usual)
 >>>>>>44	ulelong		>2		\b, rootdir cluster %u
@@ -1555,13 +1493,13 @@
 # Values 128 to 255 represent MFT record sizes of 2^(256-N) bytes. 
 >>>>>>>>>64	lelong		<256		
 >>>>>>>>>>64	lelong		<128		\b, clusters/RecordSegment %d
->>>>>>>>>>64	ubyte		>127		\b, bytes/RecordSegment 2^(-1*%hhi)
+>>>>>>>>>>64	ubyte		>127		\b, bytes/RecordSegment 2^(-1*%i)
 # Values 0 to 127 represent index block sizes of 0 to 127 clusters.
 # Values 128 to 255 represent index block sizes of 2^(256-N) byte
 >>>>>>>>>68	ulelong		<256		
 >>>>>>>>>>68	ulelong		<128		\b, clusters/index block %d
 #>>>>>>>>>>68	ulelong		>127		\b, bytes/index block 2^(256-%d)
->>>>>>>>>>68	ubyte		>127		\b, bytes/index block 2^(-1*%hhi)
+>>>>>>>>>>68	ubyte		>127		\b, bytes/index block 2^(-1*%i)
 >>>>>>>>>72	ulequad		x		\b, serial number 0%llx
 >>>>>>>>>80	ulelong		>0		\b, checksum 0x%x
 #>>>>>>>>>80	ulelong		=0		\b, checksum 0x%x=0 (usual)
@@ -1609,7 +1547,7 @@
 >&-180	lelong		x		average file size %d,
 >&-176	lelong		x		average number of files in dir %d,
 >&-272	lequad		x		pending blocks to free %lld,
->&-264	lelong		x		pending inodes to free %ld,
+>&-264	lelong		x		pending inodes to free %d,
 >&-664	lequad		x		system-wide uuid %0llx,
 >&-1316	lelong		x		minimum percentage of free blocks %d,
 >&-1248	lelong		0		TIME optimization
@@ -1629,7 +1567,7 @@
 >&-180	lelong		x		average file size %d,
 >&-176	lelong		x		average number of files in dir %d,
 >&-272	lequad		x		pending blocks to free %lld,
->&-264	lelong		x		pending inodes to free %ld,
+>&-264	lelong		x		pending inodes to free %d,
 >&-664	lequad		x		system-wide uuid %0llx,
 >&-1316	lelong		x		minimum percentage of free blocks %d,
 >&-1248	lelong		0		TIME optimization
@@ -1669,7 +1607,7 @@
 >&-180	belong		x		average file size %d,
 >&-176	belong		x		average number of files in dir %d,
 >&-272	bequad		x		pending blocks to free %lld,
->&-264	belong		x		pending inodes to free %ld,
+>&-264	belong		x		pending inodes to free %d,
 >&-664	bequad		x		system-wide uuid %0llx,
 >&-1316	belong		x		minimum percentage of free blocks %d,
 >&-1248	belong		0		TIME optimization
@@ -1689,7 +1627,7 @@
 >&-180	belong		x		average file size %d,
 >&-176	belong		x		average number of files in dir %d,
 >&-272	bequad		x		pending blocks to free %lld,
->&-264	belong		x		pending inodes to free %ld,
+>&-264	belong		x		pending inodes to free %d,
 >&-664	bequad		x		system-wide uuid %0llx,
 >&-1316	belong		x		minimum percentage of free blocks %d,
 >&-1248	belong		0		TIME optimization
@@ -1965,24 +1903,24 @@
 
 # cramfs filesystem - russell@coker.com.au
 0       lelong    0x28cd3d45      Linux Compressed ROM File System data, little endian
->4      lelong  x size %lu
+>4      lelong  x size %u
 >8      lelong  &1 version #2
 >8      lelong  &2 sorted_dirs
 >8      lelong  &4 hole_support
 >32     lelong  x CRC 0x%x,
->36     lelong  x edition %lu,
->40     lelong  x %lu blocks,
->44     lelong  x %lu files
+>36     lelong  x edition %u,
+>40     lelong  x %u blocks,
+>44     lelong  x %u files
 
 0       belong    0x28cd3d45      Linux Compressed ROM File System data, big endian
->4      belong  x size %lu
+>4      belong  x size %u
 >8      belong  &1 version #2
 >8      belong  &2 sorted_dirs
 >8      belong  &4 hole_support
 >32     belong  x CRC 0x%x,
->36     belong  x edition %lu,
->40     belong  x %lu blocks,
->44     belong  x %lu files
+>36     belong  x edition %u,
+>40     belong  x %u blocks,
+>44     belong  x %u files
 
 # reiserfs - russell@coker.com.au
 0x10034		string	ReIsErFs	ReiserFS V3.5
@@ -2247,8 +2185,8 @@
 >16	ulequad	>0	\b fblock table at %lld,
 >24	ulequad	>0	\b inode table at %lld,
 >32	ulequad	>0	\b root at %lld,
->40	ulelong	>0	\b fblock size = %ld,
->44	ulelong	>0	\b block size = %ld,
+>40	ulelong	>0	\b fblock size = %d,
+>44	ulelong	>0	\b block size = %d,
 >48	ulequad	>0	\b bytes = %lld
 
 # Type:	xfs metadump image

+ 18 - 8
magic/Magdir/flash

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: flash,v 1.10 2014/03/06 16:07:24 christos Exp $
+# $File: flash,v 1.11 2014/05/02 00:26:49 christos Exp $
 # flash:	file(1) magic for Macromedia Flash file format
 #
 # See
@@ -9,17 +9,27 @@
 #	http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/\
 #	en/devnet/swf/pdf/swf-file-format-spec.pdf page 27
 #
-0	string		FWS		Macromedia Flash data,
->3	byte		x		version %d
+
+0   name        swf-details
+>0	string		F		Macromedia Flash data
 !:mime	application/x-shockwave-flash
-0	string		CWS		Macromedia Flash data (compressed),
+>0	string		C		Macromedia Flash data (compressed)
 !:mime	application/x-shockwave-flash
->3	byte		x		version %d
-0	string		ZWS		Macromedia Flash data (lzma compressed),
+>0	string		Z		Macromedia Flash data (lzma compressed)
 !:mime	application/x-shockwave-flash
->3	byte		x		version %d
+>3   byte        x      \b, version %d
+
+1   string      WS
+>4  lelong      !0
+>>3 byte        255 Suspicious
+>>>0    use     swf-details
+
+>>3 ubyte       <32
+>>>3 ubyte      !0
+>>>>0   use     swf-details
+
 # From: Cal Peake <cp@absolutedigital.net>
-0	string		FLV		Macromedia Flash Video
+0	string		FLV\x01		Macromedia Flash Video
 !:mime	video/x-flv
 
 #

+ 3 - 3
magic/Magdir/fonts

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: fonts,v 1.26 2013/03/09 22:36:00 christos Exp $
+# $File: fonts,v 1.27 2014/04/30 21:41:02 christos Exp $
 # fonts:  file(1) magic for font data
 #
 0	search/1	FONT		ASCII vfont text
@@ -96,5 +96,5 @@
 0	string		wOFF	Web Open Font Format
 >4	belong		x	\b, flavor %d
 >8	belong		x	\b, length %d
->20	beshort		x	\b, version %hd
->22	beshort		x	\b.%hd
+>20	beshort		x	\b, version %d
+>22	beshort		x	\b.%d

+ 2 - 2
magic/Magdir/fortran

@@ -1,7 +1,7 @@
 
 #------------------------------------------------------------------------------
-# $File: fortran,v 1.7 2012/06/21 01:55:02 christos Exp $
+# $File: fortran,v 1.8 2014/06/03 19:01:34 christos Exp $
 # FORTRAN source
-0	regex/100	\^[Cc][\ \t]	FORTRAN program
+0	regex/100l	\^[Cc][\ \t]	FORTRAN program
 !:mime	text/x-fortran
 !:strength - 5

+ 10 - 10
magic/Magdir/games

@@ -1,19 +1,19 @@
 
 #------------------------------------------------------------------------------
-# $File: games,v 1.13 2012/02/13 22:50:50 christos Exp $
+# $File: games,v 1.14 2014/04/30 21:41:02 christos Exp $
 # games:  file(1) for games
 
 # Fabio Bonelli <fabiobonelli@libero.it>
 # Quake II - III data files
 0       string  IDP2        	Quake II 3D Model file,
->20     long    x               %lu skin(s),
->8      long    x               (%lu x
->12     long    x 		%lu),
->40     long    x               %lu frame(s),
->16     long    x               Frame size %lu bytes,
->24     long  	x               %lu vertices/frame,
->28     long    x            	%lu texture coordinates,
->32     long    x               %lu triangles/frame
+>20     long    x               %u skin(s),
+>8      long    x               (%u x
+>12     long    x 		%u),
+>40     long    x               %u frame(s),
+>16     long    x               Frame size %u bytes,
+>24     long  	x               %u vertices/frame,
+>28     long    x            	%u texture coordinates,
+>32     long    x               %u triangles/frame
 
 0       string  IBSP            Quake
 >4      long    0x26            II Map file (BSP)
@@ -146,7 +146,7 @@
 
 
 0	string	MComprHD	MAME CHD compressed hard disk image,
->12	belong	x		version %lu
+>12	belong	x		version %u
 
 # doom - submitted by Jon Dowland
 

+ 3 - 3
magic/Magdir/gimp

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: gimp,v 1.8 2013/12/21 14:29:45 christos Exp $
+# $File: gimp,v 1.9 2014/04/30 21:41:02 christos Exp $
 # GIMP Gradient: file(1) magic for the GIMP's gradient data files (.ggr)
 # by Federico Mena <federico@nuclecu.unam.mx>
 
@@ -20,8 +20,8 @@
 >9	string		file		version 0,
 >9	string		v		version
 >>10	string		>\0		%s,
->14	belong		x		%lu x
->18	belong		x		%lu,
+>14	belong		x		%u x
+>18	belong		x		%u,
 >22     belong          0               RGB Color
 >22     belong          1               Greyscale
 >22     belong          2               Indexed Color

+ 3 - 3
magic/Magdir/gnome

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: gnome,v 1.3 2013/02/05 15:20:47 christos Exp $
+# $File: gnome,v 1.5 2014/04/30 21:41:02 christos Exp $
 # GNOME related files
 
 # Contributed by Josh Triplett
@@ -9,9 +9,9 @@
 >&0       ubyte    0                    \b, major version 0
 >>&0      ubyte    0                    \b, minor version 0
 >>>&0     ubyte    0                    \b, crypto type 0 (AES)
->>>&0     ubyte    >0                   \b, crypto type %hhu (unknown)
+>>>&0     ubyte    >0                   \b, crypto type %u (unknown)
 >>>&1     ubyte    0                    \b, hash type 0 (MD5)
->>>&1     ubyte    >0                   \b, hash type %hhu (unknown)
+>>>&1     ubyte    >0                   \b, hash type %u (unknown)
 >>>&2     ubelong  0xFFFFFFFF           \b, name NULL
 >>>&2     ubelong  !0xFFFFFFFF
 >>>>&-4   ubelong  >255                 \b, name too long for file's pstring type

+ 1 - 2
magic/Magdir/gpt

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: gpt,v 1.1 2013/02/18 18:31:09 christos Exp $
+# $File: gpt,v 1.3 2014/04/30 21:41:02 christos Exp $
 #
 # GPT Partition table patterns.
 # Author: Rogier Goossens (goossens.rogier@gmail.com)
@@ -220,7 +220,6 @@
 0		name		gpt-table
 >10		uleshort	x		\b, version %u
 >8		uleshort	x		\b.%u
-# a GUID is just like a UUID, except it's displayed mixed-endian.
 >56		ulelong		x		\b, GUID: %08x
 >60		uleshort	x		\b-%04x
 >62		uleshort	x		\b-%04x

+ 3 - 3
magic/Magdir/graphviz

@@ -1,12 +1,12 @@
 
 #------------------------------------------------------------------------------
-# $File: graphviz,v 1.7 2009/09/19 16:28:09 christos Exp $
+# $File: graphviz,v 1.8 2014/06/03 19:01:34 christos Exp $
 # graphviz:  file(1) magic for http://www.graphviz.org/
 
 # FIXME: These patterns match too generally. For example, the first
 # line matches a LaTeX file containing the word "graph" (with a {
 # following later) and the second line matches this file.
-#0	regex/100	[\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{	graphviz graph text
+#0	regex/100l	[\r\n\t\ ]*graph[\r\n\t\ ]+.*\\{	graphviz graph text
 #!:mime	text/vnd.graphviz
-#0	regex/100	[\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{	graphviz digraph text
+#0	regex/100l	[\r\n\t\ ]*digraph[\r\n\t\ ]+.*\\{	graphviz digraph text
 #!:mime	text/vnd.graphviz

+ 15 - 15
magic/Magdir/hp

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: hp,v 1.23 2009/09/19 16:28:09 christos Exp $
+# $File: hp,v 1.24 2014/04/30 21:41:02 christos Exp $
 # hp:  file(1) magic for Hewlett Packard machines (see also "printer")
 #
 # XXX - somebody should figure out whether any byte order needs to be
@@ -41,10 +41,10 @@
 #### Old Apollo stuff
 0	beshort		0627		Apollo m68k COFF executable
 >18	beshort		^040000		not stripped
->22	beshort		>0		- version %ld
+>22	beshort		>0		- version %d
 0	beshort		0624		apollo a88k COFF executable
 >18	beshort		^040000		not stripped
->22	beshort		>0		- version %ld
+>22	beshort		>0		- version %d
 0       long            01203604016     TML 0123 byte-order format
 0       long            01702407010     TML 1032 byte-order format
 0       long            01003405017     TML 2301 byte-order format
@@ -128,58 +128,58 @@
 
 #### 500
 0	long		0x02080106	HP s500 relocatable executable
->16	long		>0		- version %ld
+>16	long		>0		- version %d
 
 0	long		0x02080107	HP s500 executable
->16	long		>0		- version %ld
+>16	long		>0		- version %d
 
 0	long		0x02080108	HP s500 pure executable
->16	long		>0		- version %ld
+>16	long		>0		- version %d
 
 #### 200
 0	belong 		0x020c0108	HP s200 pure executable
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >8	belong		&0x80000000	save fp regs
 >8	belong		&0x40000000	dynamically linked
 >8	belong		&0x20000000	debuggable
 >36	belong		>0		not stripped
 
 0	belong		0x020c0107	HP s200 executable
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >8	belong		&0x80000000	save fp regs
 >8	belong		&0x40000000	dynamically linked
 >8	belong		&0x20000000	debuggable
 >36	belong		>0		not stripped
 
 0	belong		0x020c010b	HP s200 demand-load executable
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >8	belong		&0x80000000	save fp regs
 >8	belong		&0x40000000	dynamically linked
 >8	belong		&0x20000000	debuggable
 >36	belong		>0		not stripped
 
 0	belong		0x020c0106	HP s200 relocatable executable
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >6	beshort		>0		- highwater %d
 >8	belong		&0x80000000	save fp regs
 >8	belong		&0x20000000	debuggable
 >8	belong		&0x10000000	PIC
 
 0	belong 		0x020a0108	HP s200 (2.x release) pure executable
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >36	belong		>0		not stripped
 
 0	belong		0x020a0107	HP s200 (2.x release) executable
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >36	belong		>0		not stripped
 
 0	belong		0x020c010e	HP s200 shared library
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >6	beshort		>0		- highwater %d
 >36	belong		>0		not stripped
 
 0	belong		0x020c010d	HP s200 dynamic load library
->4	beshort		>0		- version %ld
+>4	beshort		>0		- version %d
 >6	beshort		>0		- highwater %d
 >36	belong		>0		not stripped
 
@@ -192,7 +192,7 @@
 0	long		0x015821a6	HP core file
 
 0	long		0x4da7eee8	HP-WINDOWS font
->8	byte		>0		- version %ld
+>8	byte		>0		- version %d
 0	string		Bitmapfile	HP Bitmapfile
 
 0	string		IMGfile	CIS 	compimg HP Bitmapfile

+ 5 - 5
magic/Magdir/ibm370

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: ibm370,v 1.8 2009/09/19 16:28:09 christos Exp $
+# $File: ibm370,v 1.9 2014/04/30 21:41:02 christos Exp $
 # ibm370:  file(1) magic for IBM 370 and compatibles.
 #
 # "ibm370" said that 0x15d == 0535 was "ibm 370 pure executable".
@@ -36,13 +36,13 @@
 >12	belong		>0		not stripped
 0       beshort		0531		SVR2 executable (Amdahl-UTS)
 >12	belong		>0		not stripped
->24     belong		>0		- version %ld
+>24     belong		>0		- version %d
 0	beshort		0534		SVR2 pure executable (Amdahl-UTS)
 >12	belong		>0		not stripped
->24	belong		>0		- version %ld
+>24	belong		>0		- version %d
 0	beshort		0530		SVR2 pure executable (USS/370)
 >12	belong		>0		not stripped
->24	belong		>0		- version %ld
+>24	belong		>0		- version %d
 0	beshort		0535		SVR2 executable (USS/370)
 >12	belong		>0		not stripped
->24	belong		>0		- version %ld
+>24	belong		>0		- version %d

+ 22 - 19
magic/Magdir/images

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: images,v 1.87 2013/12/11 14:14:20 christos Exp $
+# $File: images,v 1.91 2014/04/30 21:41:02 christos Exp $
 # images:  file(1) magic for image formats (see also "iff", and "c-lang" for
 # XPM bitmaps)
 #
@@ -18,17 +18,20 @@
 # `xv' recognizes only a subset of the following (RGB with pixelsize = 24)
 # `tgatoppm' recognizes a superset (Index may be anything)
 1	belong&0xfff7ffff	0x01010000	Targa image data - Map
+!:strength + 2
 >2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
+>12	leshort			>0		%d x
+>14	leshort			>0		%d
 1	belong&0xfff7ffff	0x00020000	Targa image data - RGB
+!:strength + 2
 >2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
+>12	leshort			>0		%d x
+>14	leshort			>0		%d
 1	belong&0xfff7ffff	0x00030000	Targa image data - Mono
+!:strength + 2
 >2	byte&8			8		- RLE
->12	leshort			>0		%hd x
->14	leshort			>0		%hd
+>12	leshort			>0		%d x
+>14	leshort			>0		%d
 
 # PBMPLUS images
 # The next byte following the magic is always whitespace.
@@ -128,8 +131,8 @@
 #
 0	string		\x89PNG\x0d\x0a\x1a\x0a		PNG image data
 !:mime	image/png
->16	belong		x		\b, %ld x
->20	belong		x		%ld,
+>16	belong		x		\b, %d x
+>20	belong		x		%d,
 >24	byte		x		%d-bit
 >25	byte		0		grayscale,
 >25	byte		2		\b/color RGB,
@@ -164,8 +167,8 @@
 !:apple	8BIMGIFf
 >4	string		7a		\b, version 8%s,
 >4	string		9a		\b, version 8%s,
->6	leshort		>0		%hd x
->8	leshort		>0		%hd
+>6	leshort		>0		%d x
+>8	leshort		>0		%d
 #>10	byte		&0x80		color mapped,
 #>10	byte&0x07	=0x00		2 colors
 #>10	byte&0x07	=0x01		4 colors
@@ -483,7 +486,7 @@
 >>>>1	ubyte		3	ver. 2.8 image data, without palette
 >>>>1	ubyte		4	for Windows image data
 >>>>1	ubyte		5	ver. 3.0 image data
->>>>4	uleshort	x	bounding box [%hd,
+>>>>4	uleshort	x	bounding box [%d,
 >>>>6	uleshort	x	%d] -
 >>>>8	uleshort	x	[%d,
 >>>>10	uleshort	x	%d],
@@ -618,7 +621,7 @@
 # Author: Hans-Joachim Baader <hjb@pro-linux.de>
 0		string	PaRtImAgE-VoLuMe	PartImage
 >0x0020		string	0.6.1		file version %s
->>0x0060	lelong	>-1		volume %ld
+>>0x0060	lelong	>-1		volume %d
 #>>0x0064 8 byte identifier
 #>>0x007c reserved
 >>0x0200	string	>\0		type %s
@@ -641,8 +644,8 @@
 # Kodak Cineon format for scanned negatives
 # http://www.kodak.com/US/en/motion/support/dlad/
 0	lelong  0xd75f2a80	Cineon image data
->200	belong  >0		\b, %ld x
->204	belong  >0		%ld
+>200	belong  >0		\b, %d x
+>204	belong  >0		%d
 
 
 # Bio-Rad .PIC is an image format used by microscope control systems
@@ -654,10 +657,10 @@
 14	leshort <2
 >62	leshort <2
 >>54	leshort 12345		Bio-Rad .PIC Image File
->>>0	leshort >0		%hd x
->>>2	leshort >0		%hd,
+>>>0	leshort >0		%d x
+>>>2	leshort >0		%d,
 >>>4	leshort =1		1 image in file
->>>4	leshort >1		%hd images in file
+>>>4	leshort >1		%d images in file
 
 # From Jan "Yenya" Kasprzak <kas@fi.muni.cz>
 # The description of *.mrw format can be found at
@@ -823,7 +826,7 @@
 0	string/t	[BitmapInfo2]	Polar Monitor Bitmap text
 !:mime	image/x-polar-monitor-bitmap
 
-# From: Rick Richardson <rick.richardson@comcast.net>
+# From: Rick Richardson <rickrich@gmail.com>
 0	string	GARMIN\ BITMAP\ 01	Garmin Bitmap file
 
 # Type:	Ulead Photo Explorer5 (.pe5)

+ 6 - 6
magic/Magdir/intel

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: intel,v 1.11 2013/02/06 14:18:52 christos Exp $
+# $File: intel,v 1.12 2014/04/30 21:41:02 christos Exp $
 # intel:  file(1) magic for x86 Unix
 #
 # Various flavors of x86 UNIX executable/object (other than Xenix, which
@@ -16,24 +16,24 @@
 #
 0	leshort		0502		basic-16 executable
 >12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
+#>22	leshort		>0		- version %d
 0	leshort		0503		basic-16 executable (TV)
 >12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
+#>22	leshort		>0		- version %d
 0	leshort		0510		x86 executable
 >12	lelong		>0		not stripped
 0	leshort		0511		x86 executable (TV)
 >12	lelong		>0		not stripped
 0	leshort		=0512		iAPX 286 executable small model (COFF)
 >12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
+#>22	leshort		>0		- version %d
 0	leshort		=0522		iAPX 286 executable large model (COFF)
 >12	lelong		>0		not stripped
-#>22	leshort		>0		- version %ld
+#>22	leshort		>0		- version %d
 # SGI labeled the next entry as "iAPX 386 executable" --Dan Quinlan
 0	leshort		=0514		80386 COFF executable
 >12	lelong		>0		not stripped
->22	leshort		>0		- version %ld
+>22	leshort		>0		- version %d
 
 # rom: file(1) magic for BIOS ROM Extensions found in intel machines
 #      mapped into memory between 0xC0000 and 0xFFFFF

+ 1 - 1
magic/Magdir/isz

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: isz,v 1.1 2010/03/27 16:17:09 christos Exp $
+# $File: isz,v 1.3 2014/04/30 21:41:02 christos Exp $
 # ISO Zipped file format 
 # http://www.ezbsystems.com/isz/iszspec.txt
 0	string	IsZ!	ISO Zipped file

+ 2 - 2
magic/Magdir/karma

@@ -1,9 +1,9 @@
 
 #------------------------------------------------------------------------------
-# $File: karma,v 1.6 2009/09/19 16:28:10 christos Exp $
+# $File: karma,v 1.7 2014/04/30 21:41:02 christos Exp $
 # karma:  file(1) magic for Karma data files
 #
 # From <rgooch@atnf.csiro.au>
 
 0	string		KarmaRHD Version	Karma Data Structure Version
->16	belong		x		%lu
+>16	belong		x		%u

+ 18 - 1
magic/Magdir/linux

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: linux,v 1.54 2014/03/02 00:01:29 christos Exp $
+# $File: linux,v 1.57 2014/05/20 20:10:17 christos Exp $
 # linux:  file(1) magic for Linux files
 #
 # Values for Linux/i386 binaries, from Daniel Quinlan <quinlan@yggdrasil.com>
@@ -396,3 +396,20 @@
 >>0x1042	ubelong		x	\b-%08x
 >>0x1046	ubeshort	x	\b%04x
 
+# Linux device tree:
+# File format description can be found in the Linux kernel sources at 
+# Documentation/devicetree/booting-without-of.txt
+# From Christoph Biedl
+0		belong		0xd00dfeed
+# structure and strings must be within blob
+>&(8.L)		byte		x
+>>&(12.L)	byte		x
+>>>20		belong		>1	Device Tree Blob version %d
+>>>>4		belong		x	\b, size=%d
+>>>>20		belong		>1
+>>>>>28		belong		x	\b, boot CPU=%d
+>>>>20		belong		>2
+>>>>>32		belong		x	\b, string block size=%d
+>>>>20		belong		>16
+>>>>>36		belong		x	\b, DT structure block size=%d
+

+ 53 - 53
magic/Magdir/mach

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------
-# $File: mach,v 1.17 2013/03/07 02:22:52 christos Exp $
+# $File: mach,v 1.19 2014/04/30 21:41:02 christos Exp $
 # Mach has two magic numbers, 0xcafebabe and 0xfeedface.
 # Unfortunately the first, cafebabe, is shared with
 # Java ByteCode, so they are both handled in the file "cafebabe".
@@ -31,7 +31,7 @@
 >>>4		belong&0x00ffffff	10	vax8650
 >>>4		belong&0x00ffffff	11	vax8800
 >>>4		belong&0x00ffffff	12	uvaxIII
->>>4		belong&0x00ffffff	>12	vax subarchitecture=%ld
+>>>4		belong&0x00ffffff	>12	vax subarchitecture=%d
 >>0	belong&0x00ffffff	2	romp
 >>0	belong&0x00ffffff	3	architecture=3
 >>0	belong&0x00ffffff	4	ns32032
@@ -51,40 +51,40 @@
 >>>>4	belong&0x00fffff0	0x30		pentium_2_m3
 >>>>4	belong&0x00fffff0	0x40		pentium_2_m0x40
 >>>>4	belong&0x00fffff0	0x50		pentium_2_m5
->>>>4	belong&0x00fffff0	>0x50		pentium_2_m0x%lx
+>>>>4	belong&0x00fffff0	>0x50		pentium_2_m0x%x
 >>>4	belong&0x0000000f	7		celeron
->>>>4	belong&0x00fffff0	0x00		\b_m0x%lx
->>>>4	belong&0x00fffff0	0x10		\b_m0x%lx
->>>>4	belong&0x00fffff0	0x20		\b_m0x%lx
->>>>4	belong&0x00fffff0	0x30		\b_m0x%lx
->>>>4	belong&0x00fffff0	0x40		\b_m0x%lx
->>>>4	belong&0x00fffff0	0x50		\b_m0x%lx
+>>>>4	belong&0x00fffff0	0x00		\b_m0x%x
+>>>>4	belong&0x00fffff0	0x10		\b_m0x%x
+>>>>4	belong&0x00fffff0	0x20		\b_m0x%x
+>>>>4	belong&0x00fffff0	0x30		\b_m0x%x
+>>>>4	belong&0x00fffff0	0x40		\b_m0x%x
+>>>>4	belong&0x00fffff0	0x50		\b_m0x%x
 >>>>4	belong&0x00fffff0	0x60
 >>>>4	belong&0x00fffff0	0x70		\b_mobile
->>>>4	belong&0x00fffff0	>0x70		\b_m0x%lx
+>>>>4	belong&0x00fffff0	>0x70		\b_m0x%x
 >>>4	belong&0x0000000f	8		pentium_3
 >>>>4	belong&0x00fffff0	0x00
 >>>>4	belong&0x00fffff0	0x10		\b_m
 >>>>4	belong&0x00fffff0	0x20		\b_xeon
->>>>4	belong&0x00fffff0	>0x20		\b_m0x%lx
+>>>>4	belong&0x00fffff0	>0x20		\b_m0x%x
 >>>4	belong&0x0000000f	9		pentiumM
 >>>>4	belong&0x00fffff0	0x00
->>>>4	belong&0x00fffff0	>0x00		\b_m0x%lx
+>>>>4	belong&0x00fffff0	>0x00		\b_m0x%x
 >>>4	belong&0x0000000f	10		pentium_4
 >>>>4	belong&0x00fffff0	0x00
 >>>>4	belong&0x00fffff0	0x10		\b_m
->>>>4	belong&0x00fffff0	>0x10		\b_m0x%lx
+>>>>4	belong&0x00fffff0	>0x10		\b_m0x%x
 >>>4	belong&0x0000000f	11		itanium
 >>>>4	belong&0x00fffff0	0x00
 >>>>4	belong&0x00fffff0	0x10		\b_2
->>>>4	belong&0x00fffff0	>0x10		\b_m0x%lx
+>>>>4	belong&0x00fffff0	>0x10		\b_m0x%x
 >>>4	belong&0x0000000f	12		xeon
 >>>>4	belong&0x00fffff0	0x00
 >>>>4	belong&0x00fffff0	0x10		\b_mp
->>>>4	belong&0x00fffff0	>0x10		\b_m0x%lx
->>>4	belong&0x0000000f	>12		ia32 family=%ld
+>>>>4	belong&0x00fffff0	>0x10		\b_m0x%x
+>>>4	belong&0x0000000f	>12		ia32 family=%d
 >>>>4	belong&0x00fffff0	0x00
->>>>4	belong&0x00fffff0	>0x00		model=%lx
+>>>>4	belong&0x00fffff0	>0x00		model=%x
 >>0	belong&0x00ffffff	8	mips
 >>>4		belong&0x00ffffff	1	R2300
 >>>4		belong&0x00ffffff	2	R2600
@@ -93,35 +93,35 @@
 >>>4		belong&0x00ffffff	5	R2000
 >>>4		belong&0x00ffffff	6	R3000a
 >>>4		belong&0x00ffffff	7	R3000
->>>4		belong&0x00ffffff	>7	subarchitecture=%ld
+>>>4		belong&0x00ffffff	>7	subarchitecture=%d
 >>0	belong&0x00ffffff	9	ns32532
 >>0	belong&0x00ffffff	10	mc98000
 >>0	belong&0x00ffffff	11	hppa
 >>>4		belong&0x00ffffff	0	7100
 >>>4		belong&0x00ffffff	1	7100LC
->>>4		belong&0x00ffffff	>1	subarchitecture=%ld
+>>>4		belong&0x00ffffff	>1	subarchitecture=%d
 >>0	belong&0x00ffffff	12	arm
 >>>4		belong&0x00ffffff	0
->>>4		belong&0x00ffffff	1	subarchitecture=%ld
->>>4		belong&0x00ffffff	2	subarchitecture=%ld
->>>4		belong&0x00ffffff	3	subarchitecture=%ld
->>>4		belong&0x00ffffff	4	subarchitecture=%ld
+>>>4		belong&0x00ffffff	1	subarchitecture=%d
+>>>4		belong&0x00ffffff	2	subarchitecture=%d
+>>>4		belong&0x00ffffff	3	subarchitecture=%d
+>>>4		belong&0x00ffffff	4	subarchitecture=%d
 >>>4		belong&0x00ffffff	5	\b_v4t
 >>>4		belong&0x00ffffff	6	\b_v6
 >>>4		belong&0x00ffffff	7	\b_v5tej
 >>>4		belong&0x00ffffff	8	\b_xscale
 >>>4		belong&0x00ffffff	9	\b_v7
 >>>4		belong&0x00ffffff	10	\b_v7f
->>>4		belong&0x00ffffff	11	subarchitecture=%ld
+>>>4		belong&0x00ffffff	11	subarchitecture=%d
 >>>4		belong&0x00ffffff	12	\b_v7k
->>>4		belong&0x00ffffff	>12	subarchitecture=%ld
+>>>4		belong&0x00ffffff	>12	subarchitecture=%d
 #				13	m88k
 >>0	belong&0x00ffffff	13
 >>>4		belong&0x00ffffff	0	mc88000
 >>>4		belong&0x00ffffff	1	mc88100
 >>>4		belong&0x00ffffff	2	mc88110
->>>4		belong&0x00ffffff	>2	mc88000 subarchitecture=%ld
->>0	belong&0x00ffffff	14	sparc
+>>>4		belong&0x00ffffff	>2	mc88000 subarchitecture=%d
+>>0	belong&0x00ffffff	14	SPARC
 >>0	belong&0x00ffffff	15	i860g
 >>0	belong&0x00ffffff	16	alpha
 >>0	belong&0x00ffffff	17	rs6000
@@ -139,36 +139,36 @@
 >>>4		belong&0x00ffffff	10	\b_7400
 >>>4		belong&0x00ffffff	11	\b_7450
 >>>4		belong&0x00ffffff	100	\b_970
->>>4		belong&0x00ffffff	>100	subarchitecture=%ld
->>0	belong&0x00ffffff	>18	architecture=%ld
+>>>4		belong&0x00ffffff	>100	subarchitecture=%d
+>>0	belong&0x00ffffff	>18	architecture=%d
 >0	belong&0x01000000	0x01000000
 #
 # 64-bit ABIs.
 #
->>0	belong&0x00ffffff	0	64-bit architecture=%ld
->>0	belong&0x00ffffff	1	64-bit architecture=%ld
->>0	belong&0x00ffffff	2	64-bit architecture=%ld
->>0	belong&0x00ffffff	3	64-bit architecture=%ld
->>0	belong&0x00ffffff	4	64-bit architecture=%ld
->>0	belong&0x00ffffff	5	64-bit architecture=%ld
->>0	belong&0x00ffffff	6	64-bit architecture=%ld
+>>0	belong&0x00ffffff	0	64-bit architecture=%d
+>>0	belong&0x00ffffff	1	64-bit architecture=%d
+>>0	belong&0x00ffffff	2	64-bit architecture=%d
+>>0	belong&0x00ffffff	3	64-bit architecture=%d
+>>0	belong&0x00ffffff	4	64-bit architecture=%d
+>>0	belong&0x00ffffff	5	64-bit architecture=%d
+>>0	belong&0x00ffffff	6	64-bit architecture=%d
 >>0	belong&0x00ffffff	7	x86_64
->>>4		belong&0x00ffffff	0	subarchitecture=%ld
->>>4		belong&0x00ffffff	1	subarchitecture=%ld
->>>4		belong&0x00ffffff	2	subarchitecture=%ld
+>>>4		belong&0x00ffffff	0	subarchitecture=%d
+>>>4		belong&0x00ffffff	1	subarchitecture=%d
+>>>4		belong&0x00ffffff	2	subarchitecture=%d
 >>>4		belong&0x00ffffff	3
 >>>4		belong&0x00ffffff	4	\b_arch1
->>>4		belong&0x00ffffff	>4	subarchitecture=%ld
->>0	belong&0x00ffffff	8	64-bit architecture=%ld
->>0	belong&0x00ffffff	9	64-bit architecture=%ld
->>0	belong&0x00ffffff	10	64-bit architecture=%ld
->>0	belong&0x00ffffff	11	64-bit architecture=%ld
->>0	belong&0x00ffffff	12	64-bit architecture=%ld
->>0	belong&0x00ffffff	13	64-bit architecture=%ld
->>0	belong&0x00ffffff	14	64-bit architecture=%ld
->>0	belong&0x00ffffff	15	64-bit architecture=%ld
->>0	belong&0x00ffffff	16	64-bit architecture=%ld
->>0	belong&0x00ffffff	17	64-bit architecture=%ld
+>>>4		belong&0x00ffffff	>4	subarchitecture=%d
+>>0	belong&0x00ffffff	8	64-bit architecture=%d
+>>0	belong&0x00ffffff	9	64-bit architecture=%d
+>>0	belong&0x00ffffff	10	64-bit architecture=%d
+>>0	belong&0x00ffffff	11	64-bit architecture=%d
+>>0	belong&0x00ffffff	12	64-bit architecture=%d
+>>0	belong&0x00ffffff	13	64-bit architecture=%d
+>>0	belong&0x00ffffff	14	64-bit architecture=%d
+>>0	belong&0x00ffffff	15	64-bit architecture=%d
+>>0	belong&0x00ffffff	16	64-bit architecture=%d
+>>0	belong&0x00ffffff	17	64-bit architecture=%d
 >>0	belong&0x00ffffff	18	ppc64
 >>>4		belong&0x00ffffff	0
 >>>4		belong&0x00ffffff	1		\b_601
@@ -183,8 +183,8 @@
 >>>4		belong&0x00ffffff	10		\b_7400
 >>>4		belong&0x00ffffff	11		\b_7450
 >>>4		belong&0x00ffffff	100		\b_970
->>>4		belong&0x00ffffff	>100		subarchitecture=%ld
->>0	belong&0x00ffffff	>18	64-bit architecture=%ld
+>>>4		belong&0x00ffffff	>100		subarchitecture=%d
+>>0	belong&0x00ffffff	>18	64-bit architecture=%d
 
 
 0	name		mach-o-be
@@ -202,7 +202,7 @@
 >12	belong		10		dSYM companion file
 >12	belong		11		kext bundle
 >12	belong		>11
->>12	belong		x		filetype=%ld
+>>12	belong		x		filetype=%d
 
 #
 0	lelong&0xfffffffe	0xfeedface	Mach-O

+ 25 - 0
magic/Magdir/map

@@ -0,0 +1,25 @@
+
+
+#------------------------------------------------------------------------------
+# $File: map,v 1.1 2014/06/03 18:22:25 christos Exp $
+# map:  file(1) magic for Map data
+#
+
+# Garmin .FIT files http://pub.ks-and-ks.ne.jp/cycling/edge500_fit.shtml
+8	string	.FIT		FIT Map data
+>15	byte	0
+>>35	belong	x		\b, unit id %d
+# 20 years after unix epoch
+>>39	lelong	x		\b, serial %u
+>>43	ledate/631152000 x	\b, %s
+
+>>47	leshort x		\b, manufacturer %d
+>>47	leshort	1		\b (garmin)
+>>49	leshort x		\b, product %d
+>>53	byte	x		\b, type %d
+>>53	byte	1		\b (Device)
+>>53	byte	2		\b (Settings)
+>>53	byte	3		\b (Sports/Cycling)
+>>53	byte	4		\b (Activity)
+>>53	byte	8		\b (Elevations)
+>>53	byte	10		\b (Totals)

+ 6 - 6
magic/Magdir/marc21

@@ -12,17 +12,17 @@
 20	string	45	
 
 # leader starts with 5 digits, followed by codes specific to MARC format
->0	regex/1	(^[0-9]{5})[acdnp][^bhlnqsu-z]	MARC21 Bibliographic
+>0	regex/1l	(^[0-9]{5})[acdnp][^bhlnqsu-z]	MARC21 Bibliographic
 !:mime	application/marc
->0	regex/1	(^[0-9]{5})[acdnosx][z]	MARC21 Authority
+>0	regex/1l	(^[0-9]{5})[acdnosx][z]	MARC21 Authority
 !:mime	application/marc
->0	regex/1	(^[0-9]{5})[cdn][uvxy]	MARC21 Holdings
+>0	regex/1l	(^[0-9]{5})[cdn][uvxy]	MARC21 Holdings
 !:mime	application/marc
-0	regex/1	(^[0-9]{5})[acdn][w]	MARC21 Classification
+0	regex/1l	(^[0-9]{5})[acdn][w]	MARC21 Classification
 !:mime	application/marc
->0	regex/1	(^[0-9]{5})[cdn][q]	MARC21 Community
+>0	regex/1l	(^[0-9]{5})[cdn][q]	MARC21 Community
 !:mime	application/marc
 
 # leader position 22-23, should be "00" but is it?
->0	regex/1	(^.{21})([^0]{2})	(non-conforming)
+>0	regex/1l	(^.{21})([^0]{2})	(non-conforming)
 !:mime	application/marc

+ 23 - 23
magic/Magdir/mips

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: mips,v 1.9 2013/01/12 03:09:51 christos Exp $
+# $File: mips,v 1.10 2014/04/30 21:41:02 christos Exp $
 # mips:  file(1) magic for MIPS ECOFF and Ucode, as used in SGI IRIX
 # and DEC Ultrix
 #
@@ -10,8 +10,8 @@
 >20	beshort	0413		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		\b.%ld
+>22	byte	x		- version %d
+>23	byte	x		\b.%d
 #
 0	beshort	0x0162		MIPSEL-BE ECOFF executable
 >20	beshort	0407		(impure)
@@ -20,7 +20,7 @@
 >8	belong	>0		not stripped
 >8	belong	0		stripped
 >23	byte	x		- version %d
->22	byte	x		\b.%ld
+>22	byte	x		\b.%d
 #
 0	beshort	0x6001		MIPSEB-LE ECOFF executable
 >20	beshort	03401		(impure)
@@ -29,7 +29,7 @@
 >8	belong	>0		not stripped
 >8	belong	0		stripped
 >23	byte	x		- version %d
->22	byte	x		\b.%ld
+>22	byte	x		\b.%d
 #
 0	beshort	0x6201		MIPSEL ECOFF executable
 >20	beshort	03401		(impure)
@@ -37,8 +37,8 @@
 >20	beshort	05401		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		\b.%ld
+>23	byte	x		- version %d
+>22	byte	x		\b.%d
 #
 # MIPS 2 additions
 #
@@ -48,8 +48,8 @@
 >20	beshort	0413		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		\b.%ld
+>22	byte	x		- version %d
+>23	byte	x		\b.%d
 #
 0	beshort	0x0166		MIPSEL-BE MIPS-II ECOFF executable
 >20	beshort	0407		(impure)
@@ -57,8 +57,8 @@
 >20	beshort	0413		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		\b.%ld
+>22	byte	x		- version %d
+>23	byte	x		\b.%d
 #
 0	beshort	0x6301		MIPSEB-LE MIPS-II ECOFF executable
 >20	beshort	03401		(impure)
@@ -66,8 +66,8 @@
 >20	beshort	05401		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		\b.%ld
+>23	byte	x		- version %d
+>22	byte	x		\b.%d
 #
 0	beshort	0x6601		MIPSEL MIPS-II ECOFF executable
 >20	beshort	03401		(impure)
@@ -75,8 +75,8 @@
 >20	beshort	05401		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		\b.%ld
+>23	byte	x		- version %d
+>22	byte	x		\b.%d
 #
 # MIPS 3 additions
 #
@@ -86,8 +86,8 @@
 >20	beshort	0413		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		\b.%ld
+>22	byte	x		- version %d
+>23	byte	x		\b.%d
 #
 0	beshort	0x0142		MIPSEL-BE MIPS-III ECOFF executable
 >20	beshort	0407		(impure)
@@ -95,8 +95,8 @@
 >20	beshort	0413		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->22	byte	x		- version %ld
->23	byte	x		\b.%ld
+>22	byte	x		- version %d
+>23	byte	x		\b.%d
 #
 0	beshort	0x4001		MIPSEB-LE MIPS-III ECOFF executable
 >20	beshort	03401		(impure)
@@ -104,8 +104,8 @@
 >20	beshort	05401		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		\b.%ld
+>23	byte	x		- version %d
+>22	byte	x		\b.%d
 #
 0	beshort	0x4201		MIPSEL MIPS-III ECOFF executable
 >20	beshort	03401		(impure)
@@ -113,8 +113,8 @@
 >20	beshort	05401		(paged)
 >8	belong	>0		not stripped
 >8	belong	0		stripped
->23	byte	x		- version %ld
->22	byte	x		\b.%ld
+>23	byte	x		- version %d
+>22	byte	x		\b.%d
 #
 0	beshort	0x180		MIPSEB Ucode
 0	beshort	0x182		MIPSEL-BE Ucode

+ 15 - 15
magic/Magdir/motorola

@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: motorola,v 1.10 2009/09/19 16:28:11 christos Exp $
+# $File: motorola,v 1.11 2014/04/30 21:41:02 christos Exp $
 # motorola:  file(1) magic for Motorola 68K and 88K binaries
 #
 # 68K
@@ -40,27 +40,27 @@
 # not larger than 1 MB (which is a lot on ST).
 # The additional 0x601b distinction I took from Doug Lee's magic.
 0	belong&0xFFFFFFF0	0x601A0000	Atari ST M68K contiguous executable
->2	belong			x		(txt=%ld,
->6	belong			x		dat=%ld,
->10	belong			x		bss=%ld,
->14	belong			x		sym=%ld)
+>2	belong			x		(txt=%d,
+>6	belong			x		dat=%d,
+>10	belong			x		bss=%d,
+>14	belong			x		sym=%d)
 0	belong&0xFFFFFFF0	0x601B0000	Atari ST M68K non-contig executable
->2	belong			x		(txt=%ld,
->6	belong			x		dat=%ld,
->10	belong			x		bss=%ld,
->14	belong			x		sym=%ld)
+>2	belong			x		(txt=%d,
+>6	belong			x		dat=%d,
+>10	belong			x		bss=%d,
+>14	belong			x		sym=%d)
 
 # Atari ST/TT... program format (sent by Wolfram Kleff <kleff@cs.uni-bonn.de>)
 0       beshort         0x601A          Atari 68xxx executable,
->2      belong          x               text len %lu,
->6      belong          x               data len %lu,
->10     belong          x               BSS len %lu,
->14     belong          x               symboltab len %lu,
+>2      belong          x               text len %u,
+>6      belong          x               data len %u,
+>10     belong          x               BSS len %u,
+>14     belong          x               symboltab len %u,
 >18     belong          0
 >22     belong          &0x01           fastload flag,
 >22     belong          &0x02           may be loaded to alternate RAM,
 >22     belong          &0x04           malloc may be from alternate RAM,
->22     belong          x               flags: 0x%lX,
+>22     belong          x               flags: 0x%X,
 >26     beshort         0               no relocation tab
 >26     beshort         !0              + relocation tab
 >30     string          SFX             [Self-Extracting LZH SFX archive]
@@ -68,4 +68,4 @@
 >44     string          ZIP!            [Self-Extracting ZIP SFX archive]
 
 0       beshort         0x0064          Atari