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