aboutsummaryrefslogtreecommitdiff
path: root/contrib/file/magic/Magdir/diff
blob: f894ab00b8903ebf26477af14e2bba4745085ad9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150

#------------------------------------------------------------------------------
# $File: diff,v 1.21 2024/07/13 14:47:09 christos Exp $
# diff:  file(1) magic for diff(1) output
#
# Update:	Joerg Jenderek
# URL: 		https://en.wikipedia.org/wiki/Diff
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/diff.trid.xml
# Note:		called "diff output text" by TrID and
#		"Differences between files" by shared MIME-info database from freedesktop.org
#		According to shared MIME-info database also tabulator character instead of space character and
#		by TrID minus character after space character
0	search/1	diff\040	diff output text
# diff output text (strength=40=40+0) after unified diff output (strength=131=38+93)
#!:strength +0
!:mime	text/x-diff
#!:mime	text/x-patch
!:ext	diff/patch
# no short named pch dif examples found
#!:ext	diff/patch/dif/pch
# URL:		https://en.wikipedia.org/wiki/Diff_utility#Context_format
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/diff-context.trid.xml
# Note:		called "context diff output" by TrID
#		and "Differences between files" by shared MIME-info database from freedesktop.org
0	search/1	***\040
# context diff output text (strength=42=38+4) before
# C source (strength=41,39,37)				exported SGML document (strength=39,28)
!:strength +4
>&0	search/1024	\n---\040	context diff output text
!:mime	text/x-diff
#!:mime	text/x-patch
!:ext	diff/patch
# no short named pch dif examples found
#!:ext	diff/patch/dif/pch
0	search/1	Only\040in\040 	diff output text
# diff output text output text (strength=38=38+0) after unified diff output (strength=131=38+93)
#!:strength +0
!:mime	text/x-diff
#!:mime	text/x-patch
!:ext	diff
0	search/1	Common\040subdirectories:\040 	diff output text
!:mime	text/x-diff

# URL: 		https://en.wikipedia.org/wiki/Diff#Extensions
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/d/diff-rcs.trid.xml
# Note:		called "RCS/CVS diff output" by TrID
#		and "Differences between files" by shared MIME-info database from freedesktop.org
0	search/1	Index:		RCS/CVS diff output text
# RCS/CVS diff output text (strength=36=36+0) after unified diff output (strength=131=38+93)
#!:strength +0
!:mime	text/x-diff
#!:mime	text/x-patch
!:ext	diff/patch

# bsdiff:  file(1) magic for bsdiff(1) output
# Update:	Joerg Jenderek
# URL: 		http://www.daemonology.net/bsdiff/
# Reference:	https://github.com/cperciva/bsdiff/blob/master/bsdiff-ra/FORMAT
#		http://mark0.net/download/triddefs_xml.7z/defs/b/bsdiff.trid.xml
# Note:		called "bsdiff patch" by TrID and and "BSDIFF" version 4.0 by DROID via PUID fmt/439 and
#		"Binary differences between files" by shared MIME-info database from freedesktop.org
0	string/b	BSDIFF40
# skip DROID fmt-439-signature-id-672.bsdiff with invalid new file segment length 0
>16	long		!0		bsdiff(1) patch file
#!:mime	application/octet-stream
!:mime	application/x-bsdiff
!:ext	bsdiff
# new file length
#>>8	lequad		x		\b, new length %lld
# new file segment length
#>>16	lelong		x		\b, new segment length %d
# compressed header block length
#>>20	lelong		!0		\b, compressed header length %d
# patch data block length
#>>24	lequad		x		\b, data length %lld
# look for bzip data by ./compress after message with 1 space at end
>>0x20	indirect	x		\b, at 0x20 

# From:		Joerg Jenderek
# URL:		https://www.chromium.org/developers/design-documents/software-updates-courgette/
# Reference:	https://github.com/adobe/chromium/blob/master/courgette/third_party/bsdiff.h
#		http://mark0.net/download/triddefs_xml.7z/defs/b/bsdiff-chrome.trid.xml
# Note:		called "Courgette Binary Diff output" by TrID
#		the Courgette bsdiff tool use a total different file format compared with BSD variant from Colin Percival
0	string/b	GBSDIF42	Courgette binary diff output
#!:mime	application/octet-stream
!:mime	application/x-patch
!:ext	patch/bsdiff
# slen; length of the file to be patched
#>8	ubelong		x		\b, source length %u
# scrc32; CRC32 of the file to be patched
>12	ubelong		x		\b, crc %#8.8x
# dlen; length of the result file
#>16	ubelong		x		\b, result length %u
# cblen; length of the control block
#>20	ubelong		x		\b, control length %u
# difflen; length of the diff block
#>24	ubelong		x		\b, patch length %u
# extralen; length of the extra block
#>28	ubelong		x		\b, extra length %u

# unified diff
# URL:		http://fileformats.archiveteam.org/wiki/Unified_diff
#		https://en.wikipedia.org/wiki/Diff_utility#Unified_format
# Reference:	https://www.artima.com/weblogs/viewpost.jsp?thread=164293
#		http://mark0.net/download/triddefs_xml.7z/defs/d/diff-unified.trid.xml
# Note:		called "unified diff output" by TrID and
#		"Differences between files" by shared MIME-info database from freedesktop.org
# use b flag to forces the test to be done for binary files (non ASCII text like with Ctrl-D Ctrl-V Ctrl-Z)
0	search/4096/b	---\040
!:strength + 93
>0	use		diff-unified
# most samples are just pure ASCII text like: ShellR64.patch
0	search/11054	---\040
# unified diff (strength=131=38+93) before
# HTML document text (strength=170,90,71,53,52,51,49)	POSIX shell script (fix-qt5.6-build.patch strength=130 ./commands)
# JavaScript source (strength=112,84,81,80,79,78,72,69)	C++ source (strength=71,70,69,68,67,54),
# Python script (strength=69,67,63,60,58,57,56,54,52,37)LaTeX document text (strength=62,56,55,51,43)
# TeX document (strength=51,38)				C source (strength=41,39,37)
# exported SGML document (strength=39,28)		diff output text (strength=38=38+0)
# Pascal source (strength=37)				RCS/CVS diff (strength=36=36+0),
# Algol 68 source (strength=?)				CSV ASCII text (strength=?)
!:strength + 93
>0	use		diff-unified
#	check for 3 characteristic lines of unified diff
0	name			diff-unified
>0	search/11084 	+++\040
>>&0	search/1024 	\n
# at signs line sometimes other (with 2 space chars before) like: indent-header.patch
>>>&0	search/2	@@\040-	unified diff output text
!:mime	text/x-diff
#!:mime	text/x-patch
# https://file-extension.net/seeker/file_extension_dif file_extension_pch file_extension_rej
!:ext	diff/patch/dif/pch/rej
# GRR: mainly for debugging purpose for variants with text before real diff output
>>>>0	string	!---\040
>>>>>0	string		x	\b, 1st line "%s"
>>>>>>&1 string		x	\b, 2nd line "%s"
>>>>>>>&1 string	x	\b, 3rd line "%s"

# librsync -- the library for network deltas
#
# Copyright (C) 2001 by Martin Pool.  You may do whatever you want with
# this file.
#
0	belong		0x72730236	rdiff network-delta data

0	belong		0x72730136	rdiff network-delta signature data
>4	belong		x		(block length=%d,
>8	belong		x		signature strength=%d)