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)
|