aboutsummaryrefslogtreecommitdiff
path: root/contrib/file/magic/Magdir/frame
blob: fce87196752f66739c30e3081f11ccd2cdfc3b1a (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

#------------------------------------------------------------------------------
# $File: frame,v 1.19 2024/03/04 00:34:31 christos Exp $
# frame:  file(1) magic for FrameMaker files
#
# This stuff came on a FrameMaker demo tape, most of which is
# copyright, but this file is "published" as witness the following:
#
# URL:		https://en.wikipedia.org/wiki/Adobe_FrameMaker
#
# Update:	Joerg Jenderek 2024 Mar
# URL:		http://fileformats.archiveteam.org/wiki/FrameMaker
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/f/fm.trid.xml
# Note:		called "FrameMaker document" by TrID and "Adobe FrameMaker document" by shared MIME-info database
# skip "text" DROID samples like: fmt-190-signature-id-840.fm fmt-533-signature-id-837.fm fmt-534-signature-id-838.fm fmt-535-signature-id-839.fm fmt-536-signature-id-841.fm
# fmt-537-signature-id-842.fm fmt-538-signature-id-843.fm fmt-539-signature-id-844.fm x-fmt-302-signature-id-395.fm
0	string/b	\<MakerFile	FrameMaker document
#!:mime	application/octet-stream
# https://www.iana.org/assignments/media-types/application/vnd.framemaker
!:mime	application/vnd.framemaker
# version string like 1.0 2.0 3.0 4.0 5.0 5.5 6.0 7.0 8.0 9.0 10.0
>11	string		x		(%0.3s
# before closing directive ">" is appended version letter like: F H J K Q Y
>>14	ubyte		>0x40		%c
# or last digit of 4 character version string
>>14	ubyte		<0x41		\b%c
# test again so that next default clause works
>14	ubyte		x
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/h/hlp-fm.trid.xml
# Note:		called "FrameMaker Help" by TrID
# look for reference to FrameMaker help name suffix like in: index1.hlp
>>18	search/9688/s	.hlp:		 \b) help
# the internal FrameMaker help are just FrameMaker document with hlp suffix; XREF.HLP is same as Xref-hlp.fm
!:ext	hlp
# For control reason show link name like:
# "Overview" "lastpage "firstpage "Add File" "Conditional Text" "Table Format" "Creating a reference frame" "firstpageCov" "Spot Colors" "Selecting text" "proceduresbl" "lastpageu" "Introducing HelpHe" "Menu of Syntax Descriptions" "Main FrameMaker window"
#>>>&5	string		x		 LINK_NAME "%s"
>>>&5	string		x
# look for gotolink or openlink keyword before help file name
>>>&-18	search/18/s	link\040
# link construct with help name like: "gotolink xref.hlp:Overview" "openlink syntax1.hlp:firstpage"
>>>>&-4	regex/s		=^\[A-Za-z0-9.:\040]{1,}	with "%s"
# if not FrameMaker Help assume it is "normal" FrameMaker document
# shown with closing parenthesis to get look like in frame,v 1.18
>>18	default			x	\b)
# sometimes without suffix like: CHAPTER HARVARD LETTER MEMO1 NEWSLTR REPORT3
# no samples found with .bk or .book extension
# allchaps.ix (Framemaker Index) and others like:
# title.fm4 wp.filt textre1.htr pmscript.ind change.nbh books.prd executiv.sum Hyper.Template
!:ext	/fm/doc/toc/ix
# URL:		http://fileformats.archiveteam.org/wiki/Maker_Interchange_Format
# Reference:	https://help.adobe.com/en_US/framemaker/mifreference/mifref.pdf
# Update:	Joerg Jenderek 2019 Nov
0	string		\<MIFFile	FrameMaker MIF (ASCII) file
# https://www.iana.org/assignments/media-types/application/vnd.mif
!:mime	application/vnd.mif
# mif most but also find bookTOC.framemif
!:ext	mif/framemif
# followed by space~20h
#>8	ubyte		0x20		\b, space before version
# 3 characters of version number of the MIF language like 1.0, 2.0 ... 2015 ...
>9	string		x		(%.3s
# if not greater sign then display 4th character of version
>12	ubyte		=0x3e		\b)
>12	ubyte		!0x3e		\b%c)
# comment starting with # shows the name+version number of generating program
>13	search/3	#
>>&0	string		x		"%s"
# Update:	Joerg Jenderek
# Note:		called "Adobe FrameMaker document" by shared MIME-info database from freedesktop.org
0	search/1	\<MakerDictionary	FrameMaker Dictionary text
#!:mime	text/plain
#!:mime	application/x-mif
!:mime	application/vnd.framemaker
# like site.dict but often extension is a 3 letters country code like in: hyphens.brt hyphens.eng
!:ext	dict/eng/brt
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/f/fm-hyph-dict-30.trid.xml
# Note:		called "FrameMaker hyphens dictionary (v3.0)" by TrID
>17	string		3.0		 (3.0)
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/f/fm-hyph-dict-20.trid.xml
# Note:		called "FrameMaker hyphens dictionary (v2.0)" by TrID
>17	string		2.0		 (2.0)
>17	string		1.0		 (1.x)
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/b/bfont.trid.xml
# Update:	Joerg Jenderek 2023
# Note:		called "XFrameMaker Bitmapped screen Font" by TrID and
#		"Adobe FrameMaker font" by shared MIME-info database from freedesktop.org
0	string		\<MakerScreenFont	FrameMaker Font file
#!:mime	application/octet-stream
#!:mime	application/x-mif
!:mime	application/x-font-framemaker
!:ext	bfont
# Note:		maybe also other version like: 1.x
>17	string		!1.01
>>17	string		x		 (%-0.4s)
>17	string		1.01		 (%s)
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/m/mml-fm.trid.xml
# Update:	Joerg Jenderek 2023 Nov
# Note:		called "FrameMaker Maker Markup Language" by TrID and
#		"Adobe FrameMaker document" by shared MIME-info database from freedesktop.org
0	string		\<MML		FrameMaker MML file
#!:mime	text/plain
#!:mime	application/x-mif
!:mime	application/vnd.framemaker
!:ext	mml
# Note:		sometimes followed by space and version like 1.00 (formats.mml sample.mml) and more text
>5	string		>0		 (%-0.4s)
# URL:		http://fileformats.archiveteam.org/wiki/FrameMaker
# Reference:	http://mark0.net/download/triddefs_xml.7z
# 		defs/b/book-fm.trid.xml
# 		defs/b/bk-fm.trid.xml
# Update:	Joerg Jenderek 2023 Dez
# Note:		called "FrameMaker book (binary)" by TrID and
#		"Adobe FrameMaker document" by shared MIME-info database from freedesktop.org
# look for BookFile, Bookfile (capitalized) or BOOKFILE (upcased) directive
0	string/c	\<Bookfile	FrameMaker Book file
#!:mime	application/octet-stream
#!:mime	application/x-mif
!:mime	application/vnd.framemaker
# http://extension.nirsoft.net/book
!:ext	bk/book
# version like: 1.0 2.0 3.0 4.0 5.0 5.5 6.0 7.0 8.0 10.0
# 3 characters of version number string
>10	string		x		(%-0.3s
# if greater sign then exact 3 byte version string
>13	ubyte		=0x3e		\b)
# if digit then 4 byte version string
>13	ubyte		<0x3A		\b%c)
# if letter then this is appended sub level after 3 byte version string
>13	ubyte		>0x3A		%c)
# first directive typically is followed by one space character
>9	ubyte		!0x20		\b, no space before version
# XXX - this book entry should be verified, if you find one, uncomment this
#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\040Intermediate\040Print\040File	FrameMaker IPL file
!:mime	application/x-mif