Hello community,

here is the log from the commit of package file for openSUSE:Factory checked in 
at 2015-10-14 16:34:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/file (Old)
 and      /work/SRC/openSUSE:Factory/.file.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "file"

Changes:
--------
--- /work/SRC/openSUSE:Factory/file/file.changes        2015-07-21 
13:25:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.file.new/file.changes   2015-10-14 
16:34:48.000000000 +0200
@@ -1,0 +2,7 @@
+Sun Oct  4 15:55:51 UTC 2015 - [email protected]
+
+- file 5.25:
+  * add a limit to the length of regex searches
+  * fix problems with --parameter
+
+-------------------------------------------------------------------
python-magic.changes: same change

Old:
----
  file-5.24.tar.gz

New:
----
  file-5.25.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ file.spec ++++++
--- /var/tmp/diff_new_pack.ROnRp5/_old  2015-10-14 16:34:49.000000000 +0200
+++ /var/tmp/diff_new_pack.ROnRp5/_new  2015-10-14 16:34:49.000000000 +0200
@@ -30,7 +30,7 @@
 %endif
 #
 # Set Version also in python-magic.spec
-Version:        5.24
+Version:        5.25
 Release:        0
 Summary:        A Tool to Determine File Types
 License:        BSD-2-Clause

++++++ python-magic.spec ++++++
--- /var/tmp/diff_new_pack.ROnRp5/_old  2015-10-14 16:34:49.000000000 +0200
+++ /var/tmp/diff_new_pack.ROnRp5/_new  2015-10-14 16:34:49.000000000 +0200
@@ -23,7 +23,7 @@
 BuildRequires:  python-devel
 BuildRequires:  zlib-devel
 Url:            http://www.darwinsys.com/file/
-Version:        5.24
+Version:        5.25
 Release:        0
 Summary:        Python module to use libmagic
 License:        BSD-3-Clause and BSD-4-Clause

++++++ file-5.24.tar.gz -> file-5.25.tar.gz ++++++
++++ 1659 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/ChangeLog new/file-5.25/ChangeLog
--- old/file-5.24/ChangeLog     2015-07-09 16:38:06.000000000 +0200
+++ new/file-5.25/ChangeLog     2015-09-16 15:50:53.000000000 +0200
@@ -1,3 +1,19 @@
+2015-09-16   9:50  Christos Zoulas <[email protected]>
+       
+       * release 5.25
+
+2015-09-11  13:25  Christos Zoulas <[email protected]>
+
+       * add a limit to the length of regex searches
+
+2015-09-08   9:50  Christos Zoulas <[email protected]>
+
+       * fix problems with --parameter (Christoph Biedl)
+
+2015-07-11  10:35  Christos Zoulas <[email protected]>
+
+       * Windows fixes PR/466 (Jason Hood)
+
 2015-07-09  10:35  Christos Zoulas <[email protected]>
 
        * release 5.24
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/configure.ac new/file-5.25/configure.ac
--- old/file-5.24/configure.ac  2015-07-09 16:38:36.000000000 +0200
+++ new/file-5.25/configure.ac  2015-09-16 15:51:05.000000000 +0200
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT([file],[5.24],[[email protected]])
+AC_INIT([file],[5.25],[[email protected]])
 AM_INIT_AUTOMAKE([subdir-objects foreign])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/doc/file.man new/file-5.25/doc/file.man
--- old/file-5.24/doc/file.man  2015-06-03 21:51:27.000000000 +0200
+++ new/file-5.25/doc/file.man  2015-09-11 19:24:09.000000000 +0200
@@ -1,5 +1,5 @@
-.\" $File: file.man,v 1.117 2015/06/03 19:51:27 christos Exp $
-.Dd June 3, 2015
+.\" $File: file.man,v 1.118 2015/09/11 17:24:09 christos Exp $
+.Dd September 11, 2015
 .Dt FILE __CSECTION__
 .Os
 .Sh NAME
@@ -316,6 +316,7 @@
 .It Li elf_notes Ta 256 Ta max ELF notes processed
 .It Li elf_phnum Ta 128 Ta max ELF program sections processed
 .It Li elf_shnum Ta 32768 Ta max ELF sections processed
+.It Li regex Ta 8192 Ta length limit for regex searches
 .El
 .It Fl r , Fl Fl raw
 Don't translate unprintable characters to \eooo.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/doc/libmagic.man new/file-5.25/doc/libmagic.man
--- old/file-5.24/doc/libmagic.man      2015-06-03 21:49:20.000000000 +0200
+++ new/file-5.25/doc/libmagic.man      2015-09-11 19:24:09.000000000 +0200
@@ -1,4 +1,4 @@
-.\" $File: libmagic.man,v 1.37 2015/06/03 18:21:24 christos Exp $
+.\" $File: libmagic.man,v 1.38 2015/09/11 17:24:09 christos Exp $
 .\"
 .\" Copyright (c) Christos Zoulas 2003.
 .\" All Rights Reserved.
@@ -25,7 +25,7 @@
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.Dd June 3, 2015
+.Dd September 11, 2015
 .Dt LIBMAGIC 3
 .Os
 .Sh NAME
@@ -291,6 +291,7 @@
 .It Li MAGIC_PARAM_ELF_NOTES_MAX Ta size_t Ta 256
 .It Li MAGIC_PARAM_ELF_PHNUM_MAX Ta size_t Ta 128
 .It Li MAGIC_PARAM_ELF_SHNUM_MAX Ta size_t Ta 32768
+.It Li MAGIC_PARAM_REGEX_MAX Ta size_t Ta 8192
 .El
 .Pp
 The
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/doc/magic.man new/file-5.25/doc/magic.man
--- old/file-5.24/doc/magic.man 2015-01-01 18:07:34.000000000 +0100
+++ new/file-5.25/doc/magic.man 2015-09-08 15:48:44.000000000 +0200
@@ -1,4 +1,4 @@
-.\" $File: magic.man,v 1.85 2015/01/01 17:07:34 christos Exp $
+.\" $File: magic.man,v 1.86 2015/09/08 13:48:44 christos Exp $
 .Dd January 1, 2015
 .Dt MAGIC __FSECTION__
 .Os
@@ -200,7 +200,7 @@
 than UTC.
 .It Dv indirect
 Starting at the given offset, consult the magic database again.
-The offset of th
+The offset of the
 .Dv indirect
 magic is by default absolute in the file, but one can specify
 .Dv /r
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/adventure new/file-5.25/magic/Magdir/adventure
--- old/file-5.24/magic/Magdir/adventure        2014-09-11 17:03:07.000000000 
+0200
+++ new/file-5.25/magic/Magdir/adventure        2015-09-07 12:03:21.000000000 
+0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: adventure,v 1.14 2012/06/21 01:32:26 christos Exp $
+# $File: adventure,v 1.15 2015/09/07 10:03:21 christos Exp $
 # adventure: file(1) magic for Adventure game files
 #
 # from Allen Garvin <[email protected]>
@@ -17,6 +17,7 @@
 # Infocom (see z-machine)
 #------------------------------------------------------------------------------
 # Z-machine:  file(1) magic for Z-machine binaries.
+# Sanity checks by David Griffith <[email protected]>
 # Updated by Adam Buchbinder <[email protected]>
 #
 #http://www.gnelson.demon.co.uk/zspec/sect11.html
@@ -41,10 +42,12 @@
 >>>>>>>2       ubeshort        < 10    Release %d /
 >>>>>>>>18     string          >\0     Serial %.6s)
 !:strength + 40
+!:mime application/x-zmachine
 
 #------------------------------------------------------------------------------
 # Glulx:  file(1) magic for Glulx binaries.
 #
+# David Griffith <[email protected]>
 # I haven't checked for false matches yet.
 #
 0      string                  Glul    Glulx game data
@@ -52,7 +55,7 @@
 >>6    byte                    x       \b.%d
 >>8    byte                    x       \b.%d)
 >36    string                  Info    Compiled by Inform
-
+!:mime application/x-glulx
 
 
 # For Quetzal and blorb magic see iff
@@ -66,11 +69,13 @@
 >9     belong  !0x0A0D1A00     game data, CORRUPTED
 >9     belong   0x0A0D1A00
 >>13   string  >\0             %s game data
+!:mime application/x-tads
 #  Resource files start with "TADS2 rsc\n\r\032\0" then the compiler version.
 0      string  TADS2\ rsc      TADS
 >9     belong  !0x0A0D1A00     resource data, CORRUPTED
 >9     belong   0x0A0D1A00
 >>13   string  >\0             %s resource data
+!:mime application/x-tads
 #  Some saved game files start with "TADS2 save/g\n\r\032\0", a little-endian
 #  2-byte length N, the N-char name of the game file *without* a NUL (darn!),
 # "TADS2 save\n\r\032\0" and the interpreter version. 
@@ -78,12 +83,14 @@
 >12    belong  !0x0A0D1A00     saved game data, CORRUPTED
 >12    belong   0x0A0D1A00
 >>(16.s+32) string >\0         %s saved game data
+!:mime application/x-tads
 #  Other saved game files start with "TADS2 save\n\r\032\0" and the interpreter
 #  version.
 0      string  TADS2\ save     TADS
 >10    belong  !0x0A0D1A00     saved game data, CORRUPTED
 >10    belong   0x0A0D1A00
 >>14   string  >\0             %s saved game data
+!:mime application/x-tads
 
 # TADS (Text Adventure Development System) version 3
 #  Game files start with "T3-image\015\012\032"
@@ -97,14 +104,18 @@
 >>11   byte    x               \b%c
 >>12   byte    x               \b%c
 >>13   byte    x               \b%c)
+!:mime application/x-t3vm-image
 
+# edited by David Griffith <[email protected]>
 # Danny Milosavljevic <[email protected]>
-# this are adrift (adventure game standard) game files, extension .taf
-# depending on version magic continues with 0x93453E6139FA (V 4.0)
-# 0x9445376139FA (V 3.90)
-# 0x9445366139FA (V 3.80)
-# this is from source (http://www.adrift.org.uk/) and I have some taf
-# files, and checked them.
-#0     belong  0x3C423FC9
-#>4    belong  0x6A87C2CF      Adrift game file
-#!:mime        application/x-adrift
+# These are ADRIFT (adventure game standard) game files, extension .taf
+# Checked from source at (http://www.adrift.co/) and various taf files 
+# found at the Interactive Fiction Archive (http://ifarchive.org/)
+0      belong  0x3C423FC9
+>4     belong  0x6A87C2CF      Adrift game file version
+>>8    belong  0x94453661      3.80
+>>8    belong  0x94453761      3.90
+>>8    belong  0x93453E61      4.0
+>>8    belong  0x92453E61      5.0
+>>8    default x               unknown
+!:mime application/x-adrift
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/apple new/file-5.25/magic/Magdir/apple
--- old/file-5.24/magic/Magdir/apple    2015-04-13 15:09:06.000000000 +0200
+++ new/file-5.25/magic/Magdir/apple    2015-08-29 09:10:35.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: apple,v 1.30 2015/04/13 13:09:06 christos Exp $
+# $File: apple,v 1.31 2015/08/29 07:10:35 christos Exp $
 # apple:  file(1) magic for Apple file formats
 #
 0      search/1/t      FiLeStArTfIlEsTaRt      binscii (apple ][) text
@@ -265,14 +265,14 @@
 >>20   beshort x                       \b, descriptors %d
 # Assume       8 partitions each at a multiple of the sector size.
 # We could glean this from the partition descriptors, but they are empty!?!?
->>(2.S*1)      indirect                \b, contains[@0x%x]: 
->>(2.S*2)      indirect                \b, contains[@0x%x]: 
->>(2.S*3)      indirect                \b, contains[@0x%x]: 
->>(2.S*4)      indirect                \b, contains[@0x%x]: 
->>(2.S*5)      indirect                \b, contains[@0x%x]: 
->>(2.S*6)      indirect                \b, contains[@0x%x]: 
->>(2.S*7)      indirect                \b, contains[@0x%x]: 
->>(2.S*8)      indirect                \b, contains[@0x%x]: 
+>>(2.S*1)      indirect        x       \b, contains[@0x%x]: 
+>>(2.S*2)      indirect        x       \b, contains[@0x%x]: 
+>>(2.S*3)      indirect        x       \b, contains[@0x%x]: 
+>>(2.S*4)      indirect        x       \b, contains[@0x%x]: 
+>>(2.S*5)      indirect        x       \b, contains[@0x%x]: 
+>>(2.S*6)      indirect        x       \b, contains[@0x%x]: 
+>>(2.S*7)      indirect        x       \b, contains[@0x%x]: 
+>>(2.S*8)      indirect        x       \b, contains[@0x%x]: 
 
 # Yes, the 3rd and 4th bytes are reserved, but we use them to make the
 # magic stronger.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/archive new/file-5.25/magic/Magdir/archive
--- old/file-5.24/magic/Magdir/archive  2015-04-24 17:44:12.000000000 +0200
+++ new/file-5.25/magic/Magdir/archive  2015-09-16 15:49:33.000000000 +0200
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: archive,v 1.90 2015/04/24 15:44:12 christos Exp $
+# $File: archive,v 1.91 2015/09/16 13:49:33 christos Exp $
 # archive:  file(1) magic for archive formats (see also "msdos" for self-
 #           extracting compressed archives)
 #
@@ -434,16 +434,34 @@
 # AIN
 0      string  \x33\x18 AIN archive data
 0      string  \x33\x17 AIN archive data
-# XPA32
-0      string  xpa\0\1 XPA32 archive data
+# XPA32 test moved and merged with XPA by Joerg Jenderek at Sep 2015
 # SZip (TODO: doesn't catch all versions)
 0      string  SZ\x0a\4 SZip archive data
 # XPack DiskImage
-0      string  jm XPack DiskImage archive data
+# *.XDI updated by Joerg Jenderek Sep 2015
+# ftp://ftp.sac.sk/pub/sac/pack/0index.txt 
+# GRR: this test is still too general as it catches also text files starting 
with jm
+0      string  jm      
+# only found examples with this additional characteristic 2 bytes
+>2     string  \x2\x4  Xpack DiskImage archive data
+#!:ext xdi
 # XPack Data
-0      string  xpa XPack archive data
+# *.xpa updated by Joerg Jenderek Sep 2015
+# ftp://ftp.elf.stuba.sk/pub/pc/pack/
+0      string  xpa     XPA
+!:ext  xpa
+# XPA32
+# ftp://ftp.elf.stuba.sk/pub/pc/pack/xpa32.zip
+# created by XPA32.EXE version 1.0.2 for Windows
+>0     string  xpa\0\1 \b32 archive data
+# created by XPACK.COM version 1.67m or 1.67r with short 0x1800 
+>3     ubeshort        !0x0001 \bck archive data
 # XPack Single Data
-0      string  \xc3\x8d\ jm XPack single archive data
+# changed by Joerg Jenderek Sep 2015 back to like in version 5.12
+# letter 'I'+ acute accent is equivalent to \xcd
+0      string  \xcd\ jm        Xpack single archive data
+#!:mime        application/x-xpa-compressed
+!:ext xpa
 
 # TODO: missing due to unknown magic/magic at end of file:
 #DWC
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/c-lang new/file-5.25/magic/Magdir/c-lang
--- old/file-5.24/magic/Magdir/c-lang   2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/c-lang   2015-07-27 16:33:10.000000000 +0200
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: c-lang,v 1.19 2014/06/03 19:17:27 christos Exp $
+# $File: c-lang,v 1.20 2015/07/27 14:33:10 christos Exp $
 # c-lang:  file(1) magic for C and related languages programs
 #
 
@@ -29,7 +29,7 @@
 
 # C++
 # The strength of these rules is increased so they beat the C rules above
-0      regex   \^template[\ \t\n]+     C++ source text
+0      regex   \^template[\ \t]+<.*>[\ \t\n]+  C++ source text
 !:strength + 5
 !:mime text/x-c++
 0      regex   \^virtual[\ \t\n]+              C++ source text
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/c64 new/file-5.25/magic/Magdir/c64
--- old/file-5.24/magic/Magdir/c64      2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/c64      2015-08-24 07:17:42.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: c64,v 1.5 2009/09/19 16:28:08 christos Exp $
+# $File: c64,v 1.6 2015/08/24 05:17:42 christos Exp $
 # c64:  file(1) magic for various commodore 64 related files
 #
 # From: Dirk Jagdmann <[email protected]>
@@ -41,3 +41,9 @@
 >32    leshort         x               Version:0x%x
 >36    leshort         !0              Entries:%i
 >40    string          x               Name:%.24s
+
+# Raw tape file format (.tap files)
+# Esa Hyyti <[email protected]>
+0      string          C64-TAPE-RAW    C64 Raw Tape File (.tap),
+>0x0c  byte            x               Version:%u,
+>0x10   lelong         x               Length:%u cycles
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/compress new/file-5.25/magic/Magdir/compress
--- old/file-5.24/magic/Magdir/compress 2015-03-11 20:27:35.000000000 +0100
+++ new/file-5.25/magic/Magdir/compress 2015-07-27 17:41:09.000000000 +0200
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: compress,v 1.63 2015/03/11 19:27:35 christos Exp $
+# $File: compress,v 1.64 2015/07/27 15:41:09 christos Exp $
 # compress:  file(1) magic for pure-compression formats (no archives)
 #
 # compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, etc.
@@ -258,7 +258,8 @@
 !:mime application/x-qpress
 
 # Zlib https://www.ietf.org/rfc/rfc6713.txt
-0      beshort%31      =0      
->0     byte&0xf        =8
->>0    byte&0x80       =0      zlib compressed data
+0      string/b        x
+>0     beshort%31      =0      
+>>0    byte&0xf        =8
+>>>0   byte&0x80       =0      zlib compressed data
 !:mime application/zlib
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/database new/file-5.25/magic/Magdir/database
--- old/file-5.24/magic/Magdir/database 2015-07-02 20:25:57.000000000 +0200
+++ new/file-5.25/magic/Magdir/database 2015-09-09 18:25:29.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: database,v 1.44 2015/07/02 18:25:57 christos Exp $
+# $File: database,v 1.45 2015/09/09 16:25:29 christos Exp $
 # database:  file(1) magic for various databases
 #
 # extracted from header/code files by Graeme Wilford ([email protected])
@@ -541,3 +541,7 @@
 
 # IDA (Interactive Disassembler) database
 0      string          IDA1    IDA (Interactive Disassembler) database
+
+# Hopper (reverse engineering tool) http://www.hopperapp.com/
+0      string          hopperdb        Hopper database
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/filesystems new/file-5.25/magic/Magdir/filesystems
--- old/file-5.24/magic/Magdir/filesystems      2015-02-22 02:22:54.000000000 
+0100
+++ new/file-5.25/magic/Magdir/filesystems      2015-09-09 18:26:54.000000000 
+0200
@@ -1,5 +1,5 @@
 #------------------------------------------------------------------------------
-# $File: filesystems,v 1.109 2015/02/22 01:22:54 christos Exp $
+# $File: filesystems,v 1.111 2015/09/09 16:26:54 christos Exp $
 # filesystems:  file(1) magic for different filesystems
 #
 0      name    partid  
@@ -1721,7 +1721,7 @@
 0x410  leshort         0x137f
 !:strength / 2
 >0x402 beshort         < 100
->0x402 beshort         > -1            Minix filesystem, V1, %d zones
+>0x402 beshort         > -1            Minix filesystem, V1, 14 char names, %d 
zones
 >0x1e  string          minix           \b, bootable
 0x410  beshort         0x137f
 !:strength / 2
@@ -1740,27 +1740,26 @@
 >0x1e  string          minix           \b, bootable
 0x410  leshort         0x2468
 >0x402 beshort         < 100
->>0x402        beshort         > -1            Minix filesystem, V2, %d zones
+>>0x402        beshort         > -1            Minix filesystem, V2, 14 char 
names
 >0x1e  string          minix           \b, bootable
 0x410  beshort         0x2468
 >0x402 beshort         < 100
->0x402 beshort         > -1            Minix filesystem, V2 (big endian), %d 
zones
+>0x402 beshort         > -1            Minix filesystem, V2 (big endian)
 >0x1e  string          minix           \b, bootable
-
 0x410  leshort         0x2478
 >0x402 beshort         < 100
->0x402 beshort         > -1            Minix filesystem, V2, 30 char names, %d 
zones
+>0x402 beshort         > -1            Minix filesystem, V2, 30 char names
 >0x1e  string          minix           \b, bootable
 0x410  leshort         0x2478
 >0x402 beshort         < 100
->0x402 beshort         > -1            Minix filesystem, V2, 30 char names, %d 
zones
+>0x402 beshort         > -1            Minix filesystem, V2, 30 char names
 >0x1e  string          minix           \b, bootable
 0x410  beshort         0x2478
->0x402 beshort         !0              Minix filesystem, V2, 30 char names 
(big endian), %d zones
->0x1e  string          minix           \b, bootable
-0x410  leshort         0x4d5a
->0x402 beshort         !0              Minix filesystem, V3, %d zones
+>0x402 beshort         !0              Minix filesystem, V2, 30 char names 
(big endian)
 >0x1e  string          minix           \b, bootable
+0x418  leshort         0x4d5a
+>0x402 beshort         <100
+>>0x402        beshort         > -1            Minix filesystem, V3, 60 char 
names
 
 # SGI disk labels - Nathan Scott <[email protected]>
 0      belong          0x0BE5A941      SGI disk label (volume header)
@@ -2209,13 +2208,21 @@
 >>0x10024        belong          x               (blocksize %d,
 >>0x10060        string          >\0             lockproto %s)
 
-# BTRFS
-0x10040         string          _BHRfS_M        BTRFS Filesystem
->0x1012b        string          >\0             (label "%s",
->0x10090        lelong          x               sectorsize %d,
->0x10094        lelong          x               nodesize %d,
->0x10098        lelong          x               leafsize %d)
-
+# Russell Coker <[email protected]>
+0x10040                string  _BHRfS_M        BTRFS Filesystem
+>0x1012b       string  >\0             label "%s",
+>0x10090       lelong  x               sectorsize %d,
+>0x10094       lelong  x               nodesize %d,
+>0x10098       lelong  x               leafsize %d,
+>0x10020       belong  x               UUID=%8x-
+>0x10024       beshort x               \b%4x-
+>0x10026       beshort x               \b%4x-
+>0x10028       beshort x               \b%4x-
+>0x1002a       beshort x               \b%4x
+>0x1002c       belong  x               \b%8x,
+>0x10078       lequad  x               %lld/
+>0x10070       lequad  x               \b%lld bytes used,
+>0x10088       lequad  x               %lld devices
 
 # dvdisaster's .ecc
 # From: "Nelson A. de Oliveira" <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/frame new/file-5.25/magic/Magdir/frame
--- old/file-5.24/magic/Magdir/frame    2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/frame    2015-08-29 09:10:35.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: frame,v 1.12 2009/09/19 16:28:09 christos Exp $
+# $File: frame,v 1.13 2015/08/29 07:10:35 christos Exp $
 # frame:  file(1) magic for FrameMaker files
 #
 # This stuff came on a FrameMaker demo tape, most of which is
@@ -41,10 +41,10 @@
 >10    string          1.0              (1.0
 >13    byte            x                 %c)
 # XXX - this book entry should be verified, if you find one, uncomment this
-#0     string          \<Book\         FrameMaker Book (ASCII) file
+#0     string          \<Book\040      FrameMaker Book (ASCII) file
 #!:mime        application/x-mif
 #>6    string          3.0              (3.0)
 #>6    string          2.0              (2.0)
 #>6    string          1.0              (1.0)
-0      string          \<Maker Intermediate Print File FrameMaker IPL file
+0      string          \<Maker\040Intermediate\040Print\040File        
FrameMaker IPL file
 !:mime application/x-mif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/iff new/file-5.25/magic/Magdir/iff
--- old/file-5.24/magic/Magdir/iff      2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/iff      2015-09-07 12:03:21.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: iff,v 1.13 2011/09/06 11:00:06 christos Exp $
+# $File: iff,v 1.14 2015/09/07 10:03:21 christos Exp $
 # iff: file(1) magic for Interchange File Format (see also "audio" & "images")
 #
 # Daniel Quinlan ([email protected]) -- IFF was designed by Electronic
@@ -62,6 +62,7 @@
 
 # These go at the end of the iff rules
 #
+# David Griffith <[email protected]>
 # I don't see why these might collide with anything else.
 #
 # Interactive Fiction related formats
@@ -69,3 +70,4 @@
 >8     string          IFRS            \b, Blorb Interactive Fiction
 >>24   string          Exec            with executable chunk
 >8     string          IFZS            \b, Z-machine or Glulx saved game file 
 >(Quetzal)
+!:mime application/x-blorb
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/images new/file-5.25/magic/Magdir/images
--- old/file-5.24/magic/Magdir/images   2015-02-22 02:26:05.000000000 +0100
+++ new/file-5.25/magic/Magdir/images   2015-07-11 23:27:46.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: images,v 1.106 2015/02/22 01:26:05 christos Exp $
+# $File: images,v 1.107 2015/07/11 14:40:10 christos Exp $
 # images:  file(1) magic for image formats (see also "iff", and "c-lang" for
 # XPM bitmaps)
 #
@@ -37,7 +37,7 @@
 # The next byte following the magic is always whitespace.
 # strength is changed to try these patterns before "x86 boot sector"
 0      name            netpbm
->3     regex/s         =[0-9]{1,50}\ [0-9]{1,50}       Netpbm PPM image data
+>3     regex/s         =[0-9]{1,50}\ [0-9]{1,50}       Netpbm image data
 >>&0   regex           =[0-9]{1,50}                    \b, size = %s x
 >>>&0  regex           =[0-9]{1,50}                    \b %s
 
@@ -59,7 +59,6 @@
 !:strength + 45
 !:mime image/x-portable-pixmap
 
-
 0      string          P4              
 >0     use             netpbm
 >>0    string          x       \b, rawbits, bitmap
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/karma new/file-5.25/magic/Magdir/karma
--- old/file-5.24/magic/Magdir/karma    2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/karma    2015-08-29 09:10:35.000000000 +0200
@@ -1,9 +1,9 @@
 
 #------------------------------------------------------------------------------
-# $File: karma,v 1.7 2014/04/30 21:41:02 christos Exp $
+# $File: karma,v 1.8 2015/08/29 07:10:35 christos Exp $
 # karma:  file(1) magic for Karma data files
 #
 # From <[email protected]>
 
-0      string          KarmaRHD Version        Karma Data Structure Version
+0      string  KarmaRHD\040Version     Karma Data Structure Version
 >16    belong          x               %u
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/linux new/file-5.25/magic/Magdir/linux
--- old/file-5.24/magic/Magdir/linux    2015-05-03 15:06:36.000000000 +0200
+++ new/file-5.25/magic/Magdir/linux    2015-08-24 07:16:11.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: linux,v 1.62 2015/05/03 13:06:36 christos Exp $
+# $File: linux,v 1.63 2015/08/24 05:16:11 christos Exp $
 # linux:  file(1) magic for Linux files
 #
 # Values for Linux/i386 binaries, from Daniel Quinlan <[email protected]>
@@ -417,6 +417,25 @@
 0              lelong          0xde020109      locale archive
 >24            lelong          x               %d strings
 
+# Linux Software RAID (mdadm)
+# Russell Coker <[email protected]>
+0      name    linuxraid
+>16    belong  x               UUID=%8x:
+>20    belong  x               \b%8x:
+>24    belong  x               \b%8x:
+>28    belong  x               \b%8x
+>32    string  x               name=%s
+>72    lelong  x               level=%d
+>92    lelong  x               disks=%d
+
+4096   lelong  0xa92b4efc      Linux Software RAID
+>4100  lelong  x               version 1.2 (%d)
+>4096  use     linuxraid
+
+0      lelong  0xa92b4efc      Linux Software RAID
+>4     lelong  x               version 1.1 (%d)
+>0     use     linuxraid
+
 # Summary:     Database file for mlocate
 # Description: A database file as used by mlocate, a fast implementation
 #              of locate/updatedb. It uses merging to reuse the existing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/make new/file-5.25/magic/Magdir/make
--- old/file-5.24/magic/Magdir/make     2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/make     2015-08-25 09:34:06.000000000 +0200
@@ -1,15 +1,21 @@
 #------------------------------------------------------------------------------
-# $File: make,v 1.1 2011/12/08 12:12:46 rrt Exp $
+# $File: make,v 1.2 2015/08/25 07:34:06 christos Exp $
 # make:  file(1) magic for makefiles
 #
-0      regex   \^CFLAGS        makefile script text
+0      regex/100l      \^CFLAGS        makefile script text
 !:mime text/x-makefile
-0      regex   \^LDFLAGS       makefile script text
+0      regex/100l      \^VPATH         makefile script text
 !:mime text/x-makefile
-0      regex   \^all:  makefile script text
+0      regex/100l      \^LDFLAGS       makefile script text
 !:mime text/x-makefile
-0      regex   \^.PRECIOUS     makefile script text
+0      regex/100l      \^all:          makefile script text
+!:mime text/x-makefile
+0      regex/100l      \^\.PRECIOUS    makefile script text
+!:mime text/x-makefile
+0      regex/100l      \^\.BEGIN       BSD makefile script text
+!:mime text/x-makefile
+0      regex/100l      \^\.include     BSD makefile script text
 !:mime text/x-makefile
 
-0      regex   \^SUBDIRS       automake makefile script text
+0      regex/100l      \^SUBDIRS       automake makefile script text
 !:mime text/x-makefile
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/map new/file-5.25/magic/Magdir/map
--- old/file-5.24/magic/Magdir/map      2015-07-09 17:16:41.000000000 +0200
+++ new/file-5.25/magic/Magdir/map      2015-08-10 07:18:27.000000000 +0200
@@ -1,7 +1,7 @@
 
 
 #------------------------------------------------------------------------------
-# $File: map,v 1.3 2015/07/09 15:16:41 christos Exp $
+# $File: map,v 1.4 2015/08/10 05:18:27 christos Exp $
 # map:  file(1) magic for Map data
 #
 
@@ -25,3 +25,17 @@
 >>53   byte    4               \b (Activity)
 >>53   byte    8               \b (Elevations)
 >>53   byte    10              \b (Totals)
+
+# TOM TOM GPS watches ttbin files:
+# http://github.com/ryanbinns/ttwatch/tree/master/ttbin
+# From: Daniel Lenski
+0      byte    0x20
+>1     leshort 0x0007
+>>0x76 byte    0x20
+>>>0x77        leshort 0x0075          TomTom activity file, v7
+>>>>8  leldate x               (%s,
+>>>>3  byte    x               device firmware %d.
+>>>>4  byte    x               \b%d.
+>>>>5  byte    x               \b%d,
+>>>>6  leshort x               product ID %04d)
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/msdos new/file-5.25/magic/Magdir/msdos
--- old/file-5.24/magic/Magdir/msdos    2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/msdos    2015-08-24 07:08:48.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: msdos,v 1.100 2014/06/03 19:17:27 christos Exp $
+# $File: msdos,v 1.101 2015/08/24 05:08:48 christos Exp $
 # msdos:  file(1) magic for MS-DOS files
 #
 
@@ -772,7 +772,7 @@
 0      ulequad 0x3a000000024e4c        MS Advisor help file
 
 # HtmlHelp files (.chm)
-0      string/b        ITSF\003\000\000\000\x60\000\000\000\001\000\000\000    
MS Windows HtmlHelp Data
+0      string/b        ITSF\003\000\000\000\x60\000\000\000    MS Windows 
HtmlHelp Data
 
 # GFA-BASIC (Wolfram Kleff)
 2      string/b        GFA-BASIC3      GFA-BASIC 3 data
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/netscape new/file-5.25/magic/Magdir/netscape
--- old/file-5.24/magic/Magdir/netscape 2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/netscape 2015-08-24 07:20:52.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: netscape,v 1.6 2009/09/19 16:28:11 christos Exp $
+# $File: netscape,v 1.7 2015/08/24 05:20:52 christos Exp $
 # netscape:  file(1) magic for Netscape files
 # "H. Nanosecond" <[email protected]>
 # version 3 and 4 I think
@@ -22,4 +22,5 @@
 
 #
 #This is files ending in .art, FIXME add more rules
-0       string          JG\004\016\0\0\0\0      ART
+0      string  JG\004\016\0\0\0\0      AOL ART image
+0      string  JG\003\016\0\0\0\0      AOL ART image
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/python new/file-5.25/magic/Magdir/python
--- old/file-5.24/magic/Magdir/python   2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/python   2015-09-08 15:59:44.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: python,v 1.26 2014/08/04 05:58:40 christos Exp $
+# $File: python,v 1.27 2015/09/08 13:59:44 christos Exp $
 # python:  file(1) magic for python
 #
 # Outlook puts """ too for urgent messages
@@ -26,12 +26,16 @@
 0      belong          0xee0c0d0a      python 3.4 byte-compiled
 
 0      search/1/w      #!\ /usr/bin/python     Python script text executable
+!:strength + 10
 !:mime text/x-python
 0      search/1/w      #!\ /usr/local/bin/python       Python script text 
executable
+!:strength + 10
 !:mime text/x-python
 0      search/1        #!/usr/bin/env\ python  Python script text executable
+!:strength + 10
 !:mime text/x-python
-0      search/1        #!\ /usr/bin/env\ python        Python script text 
executable
+0      search/10       #!\ /usr/bin/env\ python        Python script text 
executable
+!:strength + 10
 !:mime text/x-python
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/scientific new/file-5.25/magic/Magdir/scientific
--- old/file-5.24/magic/Magdir/scientific       2014-09-11 17:03:07.000000000 
+0200
+++ new/file-5.25/magic/Magdir/scientific       2015-08-24 07:18:55.000000000 
+0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: scientific,v 1.9 2014/06/03 19:01:34 christos Exp $
+# $File: scientific,v 1.10 2015/08/24 05:18:55 christos Exp $
 # scientific:  file(1) magic for scientific formats 
 #
 # From: Joe Krahn <[email protected]>
@@ -104,3 +104,8 @@
 >>5    byte    x               version %d.0
 >4     byte    >0x00           version %d
 >>5    byte    x               \b.%d
+
+# Type: LXT (interLaced eXtensible Trace)
+# chrysn <[email protected]>
+0      beshort 0x0138  interLaced eXtensible Trace (LXT) file
+>2     beshort >0      (Version %u)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/sgi new/file-5.25/magic/Magdir/sgi
--- old/file-5.24/magic/Magdir/sgi      2014-09-11 17:03:07.000000000 +0200
+++ new/file-5.25/magic/Magdir/sgi      2015-08-29 09:10:35.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: sgi,v 1.21 2014/04/30 21:41:02 christos Exp $
+# $File: sgi,v 1.22 2015/08/29 07:10:35 christos Exp $
 # sgi:  file(1) magic for Silicon Graphics operating systems and applications
 #
 # Executable images are handled either in aout (for old-style a.out
@@ -55,8 +55,8 @@
 0      string  WNGZWZSS        Wingz spreadsheet
 0      string  WNGZWZHP        Wingz help file
 #
-0      string  #Inventor V     IRIS Inventor 1.0 file
-0      string  #Inventor V2    Open Inventor 2.0 file
+0      string  #Inventor\040V  IRIS Inventor 1.0 file
+0      string  #Inventor\040V2 Open Inventor 2.0 file
 # GLF is OpenGL stream encoding
 0      string  glfHeadMagic();         GLF_TEXT
 4      belong  0x7d000000              GLF_BINARY_LSB_FIRST
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/sgml new/file-5.25/magic/Magdir/sgml
--- old/file-5.24/magic/Magdir/sgml     2015-03-11 20:38:04.000000000 +0100
+++ new/file-5.25/magic/Magdir/sgml     2015-07-11 23:27:46.000000000 +0200
@@ -1,5 +1,4 @@
-#------------------------------------------------------------------------------
-# $File: sgml,v 1.31 2015/03/11 19:38:04 christos Exp $
+#------------------------------------------------------------------------------
 # $File: sgml,v 1.32 2015/07/11 15:08:53 christos Exp $
 # Type:        SVG Vectorial Graphics
 # From:        Noel Torres <[email protected]>
 0      string          \<?xml\ version="
@@ -24,16 +23,16 @@
 
 # xhtml
 0      string/t                \<?xml\ version="
->15    string          >\0
->>19   search/4096/cWbt        \<!doctype\ html        XHTML document text
+>19    search/4096/cWbt        \<!doctype\ html        XHTML document text
+>>15   string          >\0     (version %.3s)
 !:mime text/html
 0      string/t                \<?xml\ version='
->15    string          >\0
->>19   search/4096/cWbt        \<!doctype\ html        XHTML document text
+>19    search/4096/cWbt        \<!doctype\ html        XHTML document text
+>>15   string          >\0     (version %.3s)
 !:mime text/html
 0      string/t                \<?xml\ version="
->15    string          >\0
->>19   search/4096/cWbt        \<html  broken XHTML document text
+>19    search/4096/cWbt        \<html  broken XHTML document text
+>>15   string          >\0     (version %.3s)
 !:mime text/html
 
 #------------------------------------------------------------------------------
@@ -106,9 +105,6 @@
 >15    string/t        >\0                     %.3s document text
 >>23   search/1        \<xsl:stylesheet        (XSL stylesheet)
 >>24   search/1        \<xsl:stylesheet        (XSL stylesheet)
-0      search/1/wbt    \<?xml                  XML document text
-!:mime application/xml
-!:strength - 10
 0      search/1/wt     \<?XML                  broken XML document text
 !:mime application/xml
 !:strength - 10
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/magic/Magdir/windows new/file-5.25/magic/Magdir/windows
--- old/file-5.24/magic/Magdir/windows  2014-09-24 21:52:46.000000000 +0200
+++ new/file-5.25/magic/Magdir/windows  2015-08-29 09:10:35.000000000 +0200
@@ -1,6 +1,6 @@
 
 #------------------------------------------------------------------------------
-# $File: windows,v 1.10 2014/09/24 19:52:46 christos Exp $
+# $File: windows,v 1.12 2015/08/29 07:10:35 christos Exp $
 # windows:  file(1) magic for Microsoft Windows
 #
 # This file is mainly reserved for files where programs
@@ -89,7 +89,7 @@
 >20    lelong&16       16      \b, Has Working directory
 >20    lelong&32       32      \b, Has command line arguments
 >20    lelong&64       64      \b, Icon
->>56   lelong                  \b number=%d
+>>56   lelong          x       \b number=%d
 >24    lelong&1        1       \b, Read-Only
 >24    lelong&2        2       \b, Hidden
 >24    lelong&4        4       \b, System
@@ -239,6 +239,7 @@
 # 
http://read.pudn.com/downloads3/sourcecode/windows/248345/win2k/private/windows/setup/setupapi/inf.h__.htm
 # GRR: line below too general as it catches also PDP-11 UNIX/RT ldp
 0              leshort&0xFeFe  0x0000          
+!:strength -5
 # test for unused null bits in PNF_FLAGs
 >4     ulelong&0xFCffFe00      0x00000000      
 # only found 58h for Offset of WinDirPath immediately after _PNF_HEADER 
structure
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/apprentice.c new/file-5.25/src/apprentice.c
--- old/file-5.24/src/apprentice.c      2015-07-09 17:10:27.000000000 +0200
+++ new/file-5.25/src/apprentice.c      2015-09-16 15:51:42.000000000 +0200
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: apprentice.c,v 1.233 2015/06/10 00:57:41 christos Exp 
$")
+FILE_RCSID("@(#)$File: apprentice.c,v 1.238 2015/09/12 18:10:42 christos Exp 
$")
 #endif /* lint */
 
 #include "magic.h"
@@ -531,6 +531,7 @@
        ms->elf_shnum_max = FILE_ELF_SHNUM_MAX;
        ms->elf_phnum_max = FILE_ELF_PHNUM_MAX;
        ms->elf_notes_max = FILE_ELF_NOTES_MAX;
+       ms->regex_max = FILE_REGEX_MAX;
        return ms;
 free:
        free(ms);
@@ -540,6 +541,7 @@
 private void
 apprentice_unmap(struct magic_map *map)
 {
+       size_t i;
        if (map == NULL)
                return;
 
@@ -552,6 +554,8 @@
 #endif
        case MAP_TYPE_MALLOC:
                free(map->p);
+               for (i = 0; i < MAGIC_SETS; i++)
+                       free(map->magic[i]);
                break;
        case MAP_TYPE_USER:
                break;
@@ -1288,6 +1292,7 @@
                file_oomem(ms, sizeof(*map));
                return NULL;
        }
+       map->type = MAP_TYPE_MALLOC;
 
        /* print silly verbose header for USG compat. */
        if (action == FILE_CHECK)
@@ -1348,8 +1353,9 @@
                        }
                        i = set_text_binary(ms, mset[j].me, mset[j].count, i);
                }
-               qsort(mset[j].me, mset[j].count, sizeof(*mset[j].me),
-                   apprentice_sort);
+               if (mset[j].me)
+                       qsort(mset[j].me, mset[j].count, sizeof(*mset[j].me),
+                           apprentice_sort);
 
                /*
                 * Make sure that any level 0 "default" line is last
@@ -2555,12 +2561,14 @@
        case FILE_LEFLOAT:
                if (m->reln != 'x') {
                        char *ep;
+                       errno = 0;
 #ifdef HAVE_STRTOF
                        m->value.f = strtof(*p, &ep);
 #else
                        m->value.f = (float)strtod(*p, &ep);
 #endif
-                       *p = ep;
+                       if (errno == 0)
+                               *p = ep;
                }
                return 0;
        case FILE_DOUBLE:
@@ -2568,17 +2576,22 @@
        case FILE_LEDOUBLE:
                if (m->reln != 'x') {
                        char *ep;
+                       errno = 0;
                        m->value.d = strtod(*p, &ep);
-                       *p = ep;
+                       if (errno == 0)
+                               *p = ep;
                }
                return 0;
        default:
                if (m->reln != 'x') {
                        char *ep;
+                       errno = 0;
                        m->value.q = file_signextend(ms, m,
                            (uint64_t)strtoull(*p, &ep, 0));
-                       *p = ep;
-                       eatsize(p);
+                       if (errno == 0) {
+                               *p = ep;
+                               eatsize(p);
+                       }
                }
                return 0;
        }
@@ -2614,6 +2627,7 @@
                        case '\0':
                                if (warn)
                                        file_magwarn(ms, "incomplete escape");
+                               s--;
                                goto out;
 
                        case '\t':
@@ -2737,6 +2751,7 @@
                } else
                        *p++ = (char)c;
        }
+       --s;
 out:
        *p = '\0';
        m->vallen = CAST(unsigned char, (p - origp));
@@ -3209,9 +3224,10 @@
        }
 }
 protected size_t
-file_pstring_get_length(const struct magic *m, const char *s)
+file_pstring_get_length(const struct magic *m, const char *ss)
 {
        size_t len = 0;
+       const unsigned char *s = (const unsigned char *)ss;
 
        switch (m->str_flags & PSTRING_LEN) {
        case PSTRING_1_LE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/file.c new/file-5.25/src/file.c
--- old/file-5.24/src/file.c    2015-06-11 16:15:53.000000000 +0200
+++ new/file-5.25/src/file.c    2015-09-11 19:24:09.000000000 +0200
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: file.c,v 1.165 2015/06/11 12:52:32 christos Exp $")
+FILE_RCSID("@(#)$File: file.c,v 1.167 2015/09/11 17:24:09 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -131,6 +131,7 @@
        { "elf_phnum",  MAGIC_PARAM_ELF_PHNUM_MAX, 0 },
        { "elf_shnum",  MAGIC_PARAM_ELF_SHNUM_MAX, 0 },
        { "elf_notes",  MAGIC_PARAM_ELF_NOTES_MAX, 0 },
+       { "regex",      MAGIC_PARAM_REGEX_MAX, 0 },
 };
 
 private char *progname;                /* used throughout              */
@@ -237,6 +238,7 @@
                        if (magic == NULL)
                                if ((magic = load(magicfile, flags)) == NULL)
                                        return 1;
+                       applyparam(magic);
                        e |= unwrap(magic, optarg);
                        ++didsomefiles;
                        break;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/file.h new/file-5.25/src/file.h
--- old/file-5.24/src/file.h    2015-04-09 22:01:41.000000000 +0200
+++ new/file-5.25/src/file.h    2015-09-11 19:24:09.000000000 +0200
@@ -27,7 +27,7 @@
  */
 /*
  * file.h - definitions for file(1) program
- * @(#)$File: file.h,v 1.168 2015/04/09 20:01:41 christos Exp $
+ * @(#)$File: file.h,v 1.172 2015/09/11 17:24:09 christos Exp $
  */
 
 #ifndef __file_h__
@@ -44,9 +44,11 @@
     #define SIZE_T_FORMAT ""
   #endif
   #define INT64_T_FORMAT "I64"
+  #define INTMAX_T_FORMAT "I64"
 #else
   #define SIZE_T_FORMAT "z"
   #define INT64_T_FORMAT "ll"
+  #define INTMAX_T_FORMAT "j"
 #endif
 
 #include <stdio.h>     /* Include that here, to make sure __P gets defined */
@@ -300,15 +302,15 @@
 #define num_mask _u._mask
 #define str_range _u._s._count
 #define str_flags _u._s._flags
-       /* Words 9-16 */
+       /* Words 9-24 */
        union VALUETYPE value;  /* either number or string */
-       /* Words 17-32 */
+       /* Words 25-40 */
        char desc[MAXDESC];     /* description */
-       /* Words 33-52 */
+       /* Words 41-60 */
        char mimetype[MAXMIME]; /* MIME type */
-       /* Words 53-54 */
+       /* Words 61-62 */
        char apple[8];          /* APPLE CREATOR/TYPE */
-       /* Words 55-63 */
+       /* Words 63-78 */
        char ext[64];           /* Popular extensions */
 };
 
@@ -413,11 +415,13 @@
        uint16_t elf_shnum_max;
        uint16_t elf_phnum_max;
        uint16_t elf_notes_max;
+       uint16_t regex_max;
 #define        FILE_INDIR_MAX                  15
 #define        FILE_NAME_MAX                   30
 #define        FILE_ELF_SHNUM_MAX              32768
-#define        FILE_ELF_PHNUM_MAX              128
+#define        FILE_ELF_PHNUM_MAX              2048
 #define        FILE_ELF_NOTES_MAX              256
+#define        FILE_REGEX_MAX                  8192
 };
 
 /* Type for Unicode characters */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/file_opts.h new/file-5.25/src/file_opts.h
--- old/file-5.24/src/file_opts.h       2015-06-11 16:15:53.000000000 +0200
+++ new/file-5.25/src/file_opts.h       2015-09-08 15:45:36.000000000 +0200
@@ -45,7 +45,7 @@
 #if defined(HAVE_UTIME) || defined(HAVE_UTIMES)
 OPT('p', "preserve-date", 0, "        preserve access times on files\n")
 #endif
-OPT('P', "parameter", 0, "            set file engine parameter limits\n"
+OPT('P', "parameter", 1, "            set file engine parameter limits\n"
     "                               indir        15 recursion limit for 
indirection\n"
     "                               name         30 use limit for name/use 
magic\n"
     "                               elf_notes   256 max ELF notes processed\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/funcs.c new/file-5.25/src/funcs.c
--- old/file-5.24/src/funcs.c   2015-07-08 14:05:39.000000000 +0200
+++ new/file-5.25/src/funcs.c   2015-09-10 15:32:19.000000000 +0200
@@ -27,7 +27,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: funcs.c,v 1.83 2015/06/16 14:17:37 christos Exp $")
+FILE_RCSID("@(#)$File: funcs.c,v 1.84 2015/09/10 13:32:19 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -204,7 +204,10 @@
 
 #ifdef __EMX__
        if ((ms->flags & MAGIC_NO_CHECK_APPTYPE) == 0 && inname) {
-               switch (file_os2_apptype(ms, inname, buf, nb)) {
+               m = file_os2_apptype(ms, inname, buf, nb);
+               if ((ms->flags & MAGIC_DEBUG) != 0)
+                       (void)fprintf(stderr, "[try os2_apptype %d]\n", m);
+               switch (m) {
                case -1:
                        return -1;
                case 0:
@@ -216,37 +219,43 @@
 #endif
 #if HAVE_FORK
        /* try compression stuff */
-       if ((ms->flags & MAGIC_NO_CHECK_COMPRESS) == 0)
-               if ((m = file_zmagic(ms, fd, inname, ubuf, nb)) != 0) {
-                       if ((ms->flags & MAGIC_DEBUG) != 0)
-                               (void)fprintf(stderr, "zmagic %d\n", m);
+       if ((ms->flags & MAGIC_NO_CHECK_COMPRESS) == 0) {
+               m = file_zmagic(ms, fd, inname, ubuf, nb);
+               if ((ms->flags & MAGIC_DEBUG) != 0)
+                       (void)fprintf(stderr, "[try zmagic %d]\n", m);
+               if (m) {
                        goto done_encoding;
                }
+       }
 #endif
        /* Check if we have a tar file */
-       if ((ms->flags & MAGIC_NO_CHECK_TAR) == 0)
-               if ((m = file_is_tar(ms, ubuf, nb)) != 0) {
-                       if ((ms->flags & MAGIC_DEBUG) != 0)
-                               (void)fprintf(stderr, "tar %d\n", m);
+       if ((ms->flags & MAGIC_NO_CHECK_TAR) == 0) {
+               m = file_is_tar(ms, ubuf, nb);
+               if ((ms->flags & MAGIC_DEBUG) != 0)
+                       (void)fprintf(stderr, "[try tar %d]\n", m);
+               if (m) {
                        if (checkdone(ms, &rv))
                                goto done;
                }
+       }
 
        /* Check if we have a CDF file */
-       if ((ms->flags & MAGIC_NO_CHECK_CDF) == 0)
-               if ((m = file_trycdf(ms, fd, ubuf, nb)) != 0) {
-                       if ((ms->flags & MAGIC_DEBUG) != 0)
-                               (void)fprintf(stderr, "cdf %d\n", m);
+       if ((ms->flags & MAGIC_NO_CHECK_CDF) == 0) {
+               m = file_trycdf(ms, fd, ubuf, nb);
+               if ((ms->flags & MAGIC_DEBUG) != 0)
+                       (void)fprintf(stderr, "[try cdf %d]\n", m);
+               if (m) {
                        if (checkdone(ms, &rv))
                                goto done;
                }
+       }
 
        /* try soft magic tests */
        if ((ms->flags & MAGIC_NO_CHECK_SOFT) == 0)
-               if ((m = file_softmagic(ms, ubuf, nb, 0, NULL, BINTEST,
-                   looks_text)) != 0) {
-                       if ((ms->flags & MAGIC_DEBUG) != 0)
-                               (void)fprintf(stderr, "softmagic %d\n", m);
+               m = file_softmagic(ms, ubuf, nb, 0, NULL, BINTEST, looks_text);
+               if ((ms->flags & MAGIC_DEBUG) != 0)
+                       (void)fprintf(stderr, "[try softmagic %d]\n", m);
+               if (m) {
 #ifdef BUILTIN_ELF
                        if ((ms->flags & MAGIC_NO_CHECK_ELF) == 0 && m == 1 &&
                            nb > 5 && fd != -1) {
@@ -259,10 +268,10 @@
                                 * ELF headers that cannot easily * be
                                 * extracted with rules in the magic file.
                                 */
-                               if ((m = file_tryelf(ms, fd, ubuf, nb)) != 0)
-                                       if ((ms->flags & MAGIC_DEBUG) != 0)
-                                               (void)fprintf(stderr,
-                                                   "elf %d\n", m);
+                               m = file_tryelf(ms, fd, ubuf, nb);
+                               if ((ms->flags & MAGIC_DEBUG) != 0)
+                                       (void)fprintf(stderr, "[try elf %d]\n",
+                                           m);
                        }
 #endif
                        if (checkdone(ms, &rv))
@@ -272,9 +281,10 @@
        /* try text properties */
        if ((ms->flags & MAGIC_NO_CHECK_TEXT) == 0) {
 
-               if ((m = file_ascmagic(ms, ubuf, nb, looks_text)) != 0) {
-                       if ((ms->flags & MAGIC_DEBUG) != 0)
-                               (void)fprintf(stderr, "ascmagic %d\n", m);
+               m = file_ascmagic(ms, ubuf, nb, looks_text);
+               if ((ms->flags & MAGIC_DEBUG) != 0)
+                       (void)fprintf(stderr, "[try ascmagic %d]\n", m);
+               if (m) {
                        if (checkdone(ms, &rv))
                                goto done;
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/gmtime_r.c new/file-5.25/src/gmtime_r.c
--- old/file-5.24/src/gmtime_r.c        2015-01-09 20:28:32.000000000 +0100
+++ new/file-5.25/src/gmtime_r.c        2015-07-16 14:43:09.000000000 +0200
@@ -1,15 +1,15 @@
-/*     $File: gmtime_r.c,v 1.1 2015/01/09 19:28:32 christos Exp $      */
+/*     $File: gmtime_r.c,v 1.2 2015/07/11 14:41:37 christos Exp $      */
 
 #include "file.h"
 #ifndef        lint
-FILE_RCSID("@(#)$File: gmtime_r.c,v 1.1 2015/01/09 19:28:32 christos Exp $")
+FILE_RCSID("@(#)$File: gmtime_r.c,v 1.2 2015/07/11 14:41:37 christos Exp $")
 #endif /* lint */
 #include <time.h>
 #include <string.h>
 
 /* asctime_r is not thread-safe anyway */
 struct tm *
-gmtime_r(const time_t t, struct tm *tm)
+gmtime_r(const time_t *t, struct tm *tm)
 {
        struct tm *tmp = gmtime(t);
        if (tmp == NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/localtime_r.c new/file-5.25/src/localtime_r.c
--- old/file-5.24/src/localtime_r.c     2015-01-09 20:28:32.000000000 +0100
+++ new/file-5.25/src/localtime_r.c     2015-07-16 14:43:09.000000000 +0200
@@ -1,15 +1,15 @@
-/*     $File: localtime_r.c,v 1.1 2015/01/09 19:28:32 christos Exp $   */
+/*     $File: localtime_r.c,v 1.2 2015/07/11 14:41:37 christos Exp $   */
 
 #include "file.h"
 #ifndef        lint
-FILE_RCSID("@(#)$File: localtime_r.c,v 1.1 2015/01/09 19:28:32 christos Exp $")
+FILE_RCSID("@(#)$File: localtime_r.c,v 1.2 2015/07/11 14:41:37 christos Exp $")
 #endif /* lint */
 #include <time.h>
 #include <string.h>
 
 /* asctime_r is not thread-safe anyway */
 struct tm *
-localtime_r(const time_t t, struct tm *tm)
+localtime_r(const time_t *t, struct tm *tm)
 {
        struct tm *tmp = localtime(t);
        if (tmp == NULL)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/magic.c new/file-5.25/src/magic.c
--- old/file-5.24/src/magic.c   2015-04-16 01:47:58.000000000 +0200
+++ new/file-5.25/src/magic.c   2015-09-11 19:24:09.000000000 +0200
@@ -33,7 +33,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: magic.c,v 1.93 2015/04/15 23:47:58 christos Exp $")
+FILE_RCSID("@(#)$File: magic.c,v 1.95 2015/09/11 17:24:09 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -137,6 +137,14 @@
 
        PathRemoveFileSpecA(dllpath);
 
+       if (module) {
+               char exepath[MAX_PATH];
+               GetModuleFileNameA(NULL, exepath, MAX_PATH);
+               PathRemoveFileSpecA(exepath);
+               if (stricmp(exepath, dllpath) == 0)
+                       goto out;
+       }
+
        sp = strlen(dllpath);
        if (sp > 3 && stricmp(&dllpath[sp - 3], "bin") == 0) {
                _w32_append_path(hmagicpath,
@@ -595,6 +603,9 @@
        case MAGIC_PARAM_ELF_NOTES_MAX:
                ms->elf_notes_max = (uint16_t)*(const size_t *)val;
                return 0;
+       case MAGIC_PARAM_REGEX_MAX:
+               ms->elf_notes_max = (uint16_t)*(const size_t *)val;
+               return 0;
        default:
                errno = EINVAL;
                return -1;
@@ -620,6 +631,9 @@
        case MAGIC_PARAM_ELF_NOTES_MAX:
                *(size_t *)val = ms->elf_notes_max;
                return 0;
+       case MAGIC_PARAM_REGEX_MAX:
+               *(size_t *)val = ms->regex_max;
+               return 0;
        default:
                errno = EINVAL;
                return -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/magic.h new/file-5.25/src/magic.h
--- old/file-5.24/src/magic.h   2015-06-10 02:43:53.000000000 +0200
+++ new/file-5.25/src/magic.h   2015-09-11 20:53:21.000000000 +0200
@@ -80,7 +80,7 @@
 #define        MAGIC_NO_CHECK_FORTRAN  0x000000 /* Don't check ascii/fortran */
 #define        MAGIC_NO_CHECK_TROFF    0x000000 /* Don't check ascii/troff */
 
-#define MAGIC_VERSION          522     /* This implementation */
+#define MAGIC_VERSION          524     /* This implementation */
 
 
 #ifdef __cplusplus
@@ -113,6 +113,7 @@
 #define MAGIC_PARAM_ELF_PHNUM_MAX      2
 #define MAGIC_PARAM_ELF_SHNUM_MAX      3
 #define MAGIC_PARAM_ELF_NOTES_MAX      4
+#define MAGIC_PARAM_REGEX_MAX          5
 
 int magic_setparam(magic_t, int, const void *);
 int magic_getparam(magic_t, int, void *);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/magic.h.in new/file-5.25/src/magic.h.in
--- old/file-5.24/src/magic.h.in        2015-06-03 21:49:20.000000000 +0200
+++ new/file-5.25/src/magic.h.in        2015-09-11 20:52:46.000000000 +0200
@@ -113,6 +113,7 @@
 #define MAGIC_PARAM_ELF_PHNUM_MAX      2
 #define MAGIC_PARAM_ELF_SHNUM_MAX      3
 #define MAGIC_PARAM_ELF_NOTES_MAX      4
+#define MAGIC_PARAM_REGEX_MAX          5
 
 int magic_setparam(magic_t, int, const void *);
 int magic_getparam(magic_t, int, void *);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/print.c new/file-5.25/src/print.c
--- old/file-5.24/src/print.c   2015-01-09 20:28:32.000000000 +0100
+++ new/file-5.25/src/print.c   2015-07-16 16:28:57.000000000 +0200
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: print.c,v 1.79 2015/01/09 19:28:32 christos Exp $")
+FILE_RCSID("@(#)$File: print.c,v 1.80 2015/07/16 14:28:57 christos Exp $")
 #endif  /* lint */
 
 #include <string.h>
@@ -156,26 +156,26 @@
                case FILE_BEDATE:
                case FILE_MEDATE:
                        (void)fprintf(stderr, "%s,",
-                           file_fmttime(m->value.l, FILE_T_LOCAL, tbuf));
+                           file_fmttime(m->value.l, 0, tbuf));
                        break;
                case FILE_LDATE:
                case FILE_LELDATE:
                case FILE_BELDATE:
                case FILE_MELDATE:
                        (void)fprintf(stderr, "%s,",
-                           file_fmttime(m->value.l, 0, tbuf));
+                           file_fmttime(m->value.l, FILE_T_LOCAL, tbuf));
                        break;
                case FILE_QDATE:
                case FILE_LEQDATE:
                case FILE_BEQDATE:
                        (void)fprintf(stderr, "%s,",
-                           file_fmttime(m->value.q, FILE_T_LOCAL, tbuf));
+                           file_fmttime(m->value.q, 0, tbuf));
                        break;
                case FILE_QLDATE:
                case FILE_LEQLDATE:
                case FILE_BEQLDATE:
                        (void)fprintf(stderr, "%s,",
-                           file_fmttime(m->value.q, 0, tbuf));
+                           file_fmttime(m->value.q, FILE_T_LOCAL, tbuf));
                        break;
                case FILE_QWDATE:
                case FILE_LEQWDATE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/readelf.c new/file-5.25/src/readelf.c
--- old/file-5.24/src/readelf.c 2015-07-08 14:05:39.000000000 +0200
+++ new/file-5.25/src/readelf.c 2015-09-10 16:12:09.000000000 +0200
@@ -27,7 +27,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: readelf.c,v 1.120 2015/06/16 14:18:07 christos Exp $")
+FILE_RCSID("@(#)$File: readelf.c,v 1.122 2015/09/10 13:59:32 christos Exp $")
 #endif
 
 #ifdef BUILTIN_ELF
@@ -1052,11 +1052,14 @@
                /* Things we can determine when we seek */
                switch (xsh_type) {
                case SHT_NOTE:
-                       if (xsh_size + xsh_offset > (uintmax_t)fsize)  {
+                       if ((uintmax_t)(xsh_size + xsh_offset) >
+                           (uintmax_t)fsize) {
                                if (file_printf(ms,
-                                   ", note offset/size 0x%jx+0x%jx exceeds"
-                                   " file size 0x%jx", (uintmax_t)xsh_offset,
-                                   (uintmax_t)xsh_size, (uintmax_t)fsize) == 
-1)
+                                   ", note offset/size 0x%" INTMAX_T_FORMAT
+                                   "x+0x%" INTMAX_T_FORMAT "x exceeds"
+                                   " file size 0x%" INTMAX_T_FORMAT "x",
+                                   (uintmax_t)xsh_offset, (uintmax_t)xsh_size,
+                                   (uintmax_t)fsize) == -1)
                                        return -1;
                                return 0; 
                        }
@@ -1065,7 +1068,8 @@
                                    " for note");
                                return -1;
                        }
-                       if (pread(fd, nbuf, xsh_size, xsh_offset) < 
(ssize_t)xsh_size) {
+                       if (pread(fd, nbuf, xsh_size, xsh_offset) <
+                           (ssize_t)xsh_size) {
                                file_badread(ms);
                                free(nbuf);
                                return -1;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/file-5.24/src/softmagic.c new/file-5.25/src/softmagic.c
--- old/file-5.24/src/softmagic.c       2015-07-09 17:10:37.000000000 +0200
+++ new/file-5.25/src/softmagic.c       2015-09-11 19:24:09.000000000 +0200
@@ -32,7 +32,7 @@
 #include "file.h"
 
 #ifndef        lint
-FILE_RCSID("@(#)$File: softmagic.c,v 1.216 2015/06/09 22:17:52 christos Exp $")
+FILE_RCSID("@(#)$File: softmagic.c,v 1.218 2015/09/11 17:24:09 christos Exp $")
 #endif /* lint */
 
 #include "magic.h"
@@ -63,6 +63,22 @@
 private void cvt_64(union VALUETYPE *, const struct magic *);
 
 #define OFFSET_OOB(n, o, i)    ((n) < (o) || (i) > ((n) - (o)))
+#define BE64(p) (((uint64_t)(p)->hq[0]<<56)|((uint64_t)(p)->hq[1]<<48)| \
+    ((uint64_t)(p)->hq[2]<<40)|((uint64_t)(p)->hq[3]<<32)| \
+    ((uint64_t)(p)->hq[4]<<24)|((uint64_t)(p)->hq[5]<<16)| \
+    ((uint64_t)(p)->hq[6]<<8)|((uint64_t)(p)->hq[7]))
+#define LE64(p) (((uint64_t)(p)->hq[7]<<56)|((uint64_t)(p)->hq[6]<<48)| \
+    ((uint64_t)(p)->hq[5]<<40)|((uint64_t)(p)->hq[4]<<32)| \
+    ((uint64_t)(p)->hq[3]<<24)|((uint64_t)(p)->hq[2]<<16)| \
+    ((uint64_t)(p)->hq[1]<<8)|((uint64_t)(p)->hq[0]))
+#define LE32(p) (((uint32_t)(p)->hl[3]<<24)|((uint32_t)(p)->hl[2]<<16)| \
+     ((uint32_t)(p)->hl[1]<<8)|((uint32_t)(p)->hl[0]))
+#define BE32(p) (((uint32_t)(p)->hl[0]<<24)|((uint32_t)(p)->hl[1]<<16)| \
+     ((uint32_t)(p)->hl[2]<<8)|((uint32_t)(p)->hl[3]))
+#define ME32(p) (((uint32_t)(p)->hl[1]<<24)|((uint32_t)(p)->hl[0]<<16)| \
+     ((uint32_t)(p)->hl[3]<<8)|((uint32_t)(p)->hl[2]))
+#define BE16(p) (((uint16_t)(p)->hs[0]<<8)|((uint16_t)(p)->hs[1]))
+#define LE16(p) (((uint16_t)(p)->hs[1]<<8)|((uint16_t)(p)->hs[0]))
 
 /*
  * softmagic - lookup one file in parsed, in-memory copy of database
@@ -962,84 +978,65 @@
                return 1;
        }
        case FILE_BESHORT:
-               p->h = (short)((p->hs[0]<<8)|(p->hs[1]));
+               p->h = (short)BE16(p);
                cvt_16(p, m);
                return 1;
        case FILE_BELONG:
        case FILE_BEDATE:
        case FILE_BELDATE:
-               p->l = (int32_t)
-                   ((p->hl[0]<<24)|(p->hl[1]<<16)|(p->hl[2]<<8)|(p->hl[3]));
+               p->l = (int32_t)BE32(p);
                cvt_32(p, m);
                return 1;
        case FILE_BEQUAD:
        case FILE_BEQDATE:
        case FILE_BEQLDATE:
        case FILE_BEQWDATE:
-               p->q = (uint64_t)
-                   (((uint64_t)p->hq[0]<<56)|((uint64_t)p->hq[1]<<48)|
-                    ((uint64_t)p->hq[2]<<40)|((uint64_t)p->hq[3]<<32)|
-                    ((uint64_t)p->hq[4]<<24)|((uint64_t)p->hq[5]<<16)|
-                    ((uint64_t)p->hq[6]<<8)|((uint64_t)p->hq[7]));
+               p->q = (uint64_t)BE64(p);
                cvt_64(p, m);
                return 1;
        case FILE_LESHORT:
-               p->h = (short)((p->hs[1]<<8)|(p->hs[0]));
+               p->h = (short)LE16(p);
                cvt_16(p, m);
                return 1;
        case FILE_LELONG:
        case FILE_LEDATE:
        case FILE_LELDATE:
-               p->l = (int32_t)
-                   ((p->hl[3]<<24)|(p->hl[2]<<16)|(p->hl[1]<<8)|(p->hl[0]));
+               p->l = (int32_t)LE32(p);
                cvt_32(p, m);
                return 1;
        case FILE_LEQUAD:
        case FILE_LEQDATE:
        case FILE_LEQLDATE:
        case FILE_LEQWDATE:
-               p->q = (uint64_t)
-                   (((uint64_t)p->hq[7]<<56)|((uint64_t)p->hq[6]<<48)|
-                    ((uint64_t)p->hq[5]<<40)|((uint64_t)p->hq[4]<<32)|
-                    ((uint64_t)p->hq[3]<<24)|((uint64_t)p->hq[2]<<16)|
-                    ((uint64_t)p->hq[1]<<8)|((uint64_t)p->hq[0]));
+               p->q = (uint64_t)LE64(p);
                cvt_64(p, m);
                return 1;
        case FILE_MELONG:
        case FILE_MEDATE:
        case FILE_MELDATE:
-               p->l = (int32_t)
-                   ((p->hl[1]<<24)|(p->hl[0]<<16)|(p->hl[3]<<8)|(p->hl[2]));
+               p->l = (int32_t)ME32(p);
                cvt_32(p, m);
                return 1;
        case FILE_FLOAT:
                cvt_float(p, m);
                return 1;
        case FILE_BEFLOAT:
-               p->l =  ((uint32_t)p->hl[0]<<24)|((uint32_t)p->hl[1]<<16)|
-                       ((uint32_t)p->hl[2]<<8) |((uint32_t)p->hl[3]);
+               p->l = BE32(p);
                cvt_float(p, m);
                return 1;
        case FILE_LEFLOAT:
-               p->l =  ((uint32_t)p->hl[3]<<24)|((uint32_t)p->hl[2]<<16)|
-                       ((uint32_t)p->hl[1]<<8) |((uint32_t)p->hl[0]);
+               p->l = LE32(p);
                cvt_float(p, m);
                return 1;
        case FILE_DOUBLE:
                cvt_double(p, m);
                return 1;
        case FILE_BEDOUBLE:
-               p->q =  ((uint64_t)p->hq[0]<<56)|((uint64_t)p->hq[1]<<48)|
-                       ((uint64_t)p->hq[2]<<40)|((uint64_t)p->hq[3]<<32)|
-                       ((uint64_t)p->hq[4]<<24)|((uint64_t)p->hq[5]<<16)|
-                       ((uint64_t)p->hq[6]<<8) |((uint64_t)p->hq[7]);
+               p->q = BE64(p); 
                cvt_double(p, m);
                return 1;
        case FILE_LEDOUBLE:
-               p->q =  ((uint64_t)p->hq[7]<<56)|((uint64_t)p->hq[6]<<48)|
-                       ((uint64_t)p->hq[5]<<40)|((uint64_t)p->hq[4]<<32)|
-                       ((uint64_t)p->hq[3]<<24)|((uint64_t)p->hq[2]<<16)|
-                       ((uint64_t)p->hq[1]<<8) |((uint64_t)p->hq[0]);
+               p->q = LE64(p);
                cvt_double(p, m);
                return 1;
        case FILE_REGEX:
@@ -1105,6 +1102,8 @@
 
                        if (bytecnt == 0 || bytecnt > nbytes - offset)
                                bytecnt = nbytes - offset;
+                       if (bytecnt > ms->regex_max)
+                               bytecnt = ms->regex_max;
 
                        buf = RCAST(const char *, s) + offset;
                        end = last = RCAST(const char *, s) + bytecnt + offset;
@@ -1239,27 +1238,24 @@
                                off = q->h;
                                break;
                        case FILE_BESHORT:
-                               off = (short)((q->hs[0]<<8)|(q->hs[1]));
+                               off = (short)BE16(q);
                                break;
                        case FILE_LESHORT:
-                               off = (short)((q->hs[1]<<8)|(q->hs[0]));
+                               off = (short)LE16(q);
                                break;
                        case FILE_LONG:
                                off = q->l;
                                break;
                        case FILE_BELONG:
                        case FILE_BEID3:
-                               off = (int32_t)((q->hl[0]<<24)|(q->hl[1]<<16)|
-                                                (q->hl[2]<<8)|(q->hl[3]));
+                               off = (int32_t)BE32(q);
                                break;
                        case FILE_LEID3:
                        case FILE_LELONG:
-                               off = (int32_t)((q->hl[3]<<24)|(q->hl[2]<<16)|
-                                                (q->hl[1]<<8)|(q->hl[0]));
+                               off = (int32_t)LE32(q);
                                break;
                        case FILE_MELONG:
-                               off = (int32_t)((q->hl[1]<<24)|(q->hl[0]<<16)|
-                                                (q->hl[3]<<8)|(q->hl[2]));
+                               off = (int32_t)ME32(q);
                                break;
                        }
                        if ((ms->flags & MAGIC_DEBUG) != 0)
@@ -1413,8 +1409,7 @@
                case FILE_BEID3:
                        if (OFFSET_OOB(nbytes, offset, 4))
                                return 0;
-                       lhs = (p->hl[0] << 24) | (p->hl[1] << 16) |
-                           (p->hl[2] << 8) | p->hl[3];
+                       lhs = BE32(p);
                        if (off) {
                                switch (m->in_op & FILE_OPS_MASK) {
                                case FILE_OPAND:
@@ -1451,8 +1446,7 @@
                case FILE_LEID3:
                        if (OFFSET_OOB(nbytes, offset, 4))
                                return 0;
-                       lhs = (p->hl[3] << 24) | (p->hl[2] << 16) |
-                           (p->hl[1] << 8) | p->hl[0];
+                       lhs = LE32(p);
                        if (off) {
                                switch (m->in_op & FILE_OPS_MASK) {
                                case FILE_OPAND:
@@ -1488,8 +1482,7 @@
                case FILE_MELONG:
                        if (OFFSET_OOB(nbytes, offset, 4))
                                return 0;
-                       lhs = (p->hl[1] << 24) | (p->hl[0] << 16) |
-                           (p->hl[3] << 8) | p->hl[2];
+                       lhs = ME32(p);
                        if (off) {
                                switch (m->in_op & FILE_OPS_MASK) {
                                case FILE_OPAND:
@@ -1565,9 +1558,9 @@
                case FILE_LEID3:
                case FILE_BEID3:
                        offset = ((((offset >>  0) & 0x7f) <<  0) |
-                                (((offset >>  8) & 0x7f) <<  7) |
-                                (((offset >> 16) & 0x7f) << 14) |
-                                (((offset >> 24) & 0x7f) << 21));
+                                 (((offset >>  8) & 0x7f) <<  7) |
+                                 (((offset >> 16) & 0x7f) << 14) |
+                                 (((offset >> 24) & 0x7f) << 21));
                        if ((ms->flags & MAGIC_DEBUG) != 0)
                                fprintf(stderr, "id3 offs=%u\n", offset);
                        break;


Reply via email to