1
2#------------------------------------------------------------------------------
3# $File: wordprocessors,v 1.31 2022/08/31 08:00:53 christos Exp $
4# wordprocessors:  file(1) magic fo word processors.
5#
6####### PWP file format used on Smith Corona Personal Word Processors:
72	string	\040\040\040\040\040\040\040\040\040\040\040ML4D\040'92	Smith Corona PWP
8>24	byte	2	\b, single spaced
9>24	byte	3	\b, 1.5 spaced
10>24	byte	4	\b, double spaced
11>25	byte	0x42	\b, letter
12>25	byte	0x54	\b, legal
13>26	byte	0x46	\b, A4
14
15# URL:	http://fileformats.archiveteam.org/wiki/Microsoft_Works_Word_Processor
16# reference:	http://mark0.net/download/triddefs_xml.7z
17#		/defs/w/wps-works-dos.trid.xml
18# From:	Joerg Jenderek
19# Note:	older non OLE 2 Compound based versions
200	ubeshort	=0x01FE
21>112	ubeshort	=0x0100		Microsoft Works 1-3 (DOS) or 2 (Windows) document
22# title like THE GREAT KHAN GAME
23>>0x100	string		x		%s
24!:mime	application/vnd-ms-works
25#!:mime	application/x-msworks
26# https://www.macdisk.com/macsigen.php
27!:apple	????AWWP
28!:ext	wps
29
30# Corel/WordPerfect
31# URL:		https://en.wikipedia.org/wiki/WordPerfect
32# Reference:	https://github.com/OneWingedShark/WordPerfect/blob/master/doc/SDK_Help/FileFormats/WPFF_DocumentStructure.htm
33#		http://mark0.net/download/triddefs_xml.7z/defs/w/wp-generic.trid.xml
340	string	\xffWPC
35# WordPerfect
36>8	byte	1
37# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/w/wpm-macro.trid.xml
38# Note:		there exist other macro variants
39>>9	byte	1	WordPerfect macro
40#!:mime		application/octet-stream
41!:mime		application/x-wordperfect-wpm
42# like: ALTD.WPM ENDFOOT.WPM FOOTEND.WPM LABELS.WPM REVEALTX.WPM
43!:ext		wpm
44# Note:		used in WordPerfect 5.1; there exist other FIL variants
45>>9	byte	2	WordPerfect help file
46#!:mime		application/octet-stream
47!:mime		application/x-wordperfect-help
48# like: WPHELP.FIL
49!:ext		fil
50# pointer to document area like: 10h
51>>>4		ulelong	!0x10	\b, at %#x document area
52>>9	byte	3	WordPerfect keyboard file
53#!:mime		application/octet-stream
54!:mime		application/x-wordperfect-keyboard
55!:ext		wpk
56# no document area, so point to end of file; so this is file size like: 23381 2978 32835 3355 3775 919
57>>>4		ulelong	x	\b, %u bytes
58>>9	byte	4	WordPerfect VAX keyboard definition
59#!:mime	application/octet-stream
60!:mime	application/x-wordperfect-keyboard
61#!:ext	foo
62# URL:		http://fileformats.archiveteam.org/wiki/WordPerfect
63# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/w/wpd-doc-gen.trid.xml
64>>9	byte	10	WordPerfect document
65# https://www.iana.org/assignments/media-types/application/vnd.wordperfect
66!:mime		application/vnd.wordperfect
67#!:apple		????WPC2
68# TODO: distinguish different suffix
69!:ext		wpd/wpt/wkb/icr/tut/sty/tst/crs
70>>9	byte	11	WordPerfect dictionary
71>>9	byte	12	WordPerfect thesaurus
72>>9	byte	13	WordPerfect block
73>>9	byte	14	WordPerfect rectangular block
74>>9	byte	15	WordPerfect column block
75>>9	byte	16	WordPerfect printer data
76#!:mime		application/octet-stream
77!:mime		application/x-wordperfect-prs
78# like: STANDARD.PRS WORKBOOK.PRS
79!:ext		prs
80# like: "Standard Printer" "Workbook Printer"
81>>>0x64		pstring/B	>A	"%s"
82#>>9	byte	18	WordPerfect Prefix information file
83# printer resource .ALL
84>>9	byte	19	WordPerfect printer data
85#!:mime		application/octet-stream
86!:mime		application/x-wordperfect-all
87!:ext		all
88# display Resource
89>>9	byte	20	WordPerfect driver resource data
90#!:mime		application/octet-stream
91!:mime		application/x-wordperfect-drs
92# like: WPSMALL.DRS
93!:ext		drs
94# pointer to index area with string "smalldrs" like: 46h
95>>>4		uleshort	!0x46	\b, at %#x index area
96>>9	byte	21	WordPerfect Overlay file
97#!:mime		application/octet-stream
98!:mime		application/x-wordperfect-fil
99# like: WP.FIL
100!:ext		fil
101# URL:		http://fileformats.archiveteam.org/wiki/WordPerfect_Graphics
102# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/b/bitmap-wpg.trid.xml
103# Note:		called "WordPerfect Graphics bitmap" by TrID and
104#		"WordPerfect Graphics Metafile" by DROID via x-fmt/395 fmt/1042
105#		"WPG (Word Perfect Graphics)" by ImageMagick `identify -verbose BUTTRFLY.WPG`
106>>9	byte	22	WordPerfect graphic image
107# TODO: skip DROID x-fmt-395-signature-id-132.wpg by check for existing document area
108#>>>4		ulelong	>15	WordPerfect_graphic_OK
109#!:mime		application/octet-stream
110# http://extension.nirsoft.net/wpg
111!:mime		image/x-wordperfect-graphics
112# https://reposcope.com/mimetype/application/x-wpg
113#!:mime		application/x-wpg
114# like: BUTTRFLY.WPG STAR-5.WPG input.wpg WORDPFCT.WPG
115!:ext		wpg
116# pointer to document area like: 10h 1Ah
117>>>4		ulelong		!0x1A	\b, at %#x document area
118>>9	byte	23	WordPerfect hyphenation code
119>>9	byte	24	WordPerfect hyphenation data
120>>9	byte	25	WordPerfect macro resource data
121#!:mime		application/octet-stream
122!:mime		application/x-wordperfect-mrs
123# like: WP.MRS
124!:ext		mrs
125>>9	byte	27	WordPerfect hyphenation lex
126>>9	byte	29	WordPerfect wordlist
127>>9	byte	30	WordPerfect equation resource data
128#!:mime		application/octet-stream
129!:mime		application/x-wordperfect-qrs
130# like: WQ.QRS wpDE.qrs wpen.qrs
131!:ext		qrs
132# jump to document area with some marker and equation
133>>>(4.l)	ubyte	x
134# equation like: "Fraction:  x OVER y"
135>>>>&1		string	>A	(...%-.19s...)
136# pointer to document area like: 17C4h
137>>>4		ulelong	x	\b, at %#x document area
138#>>9	byte	31	reserved
139#>>9	byte	32	WordPerfect VAX .SET
140>>9	byte	33	WordPerfect spell rules
141>>9	byte	34	WordPerfect dictionary rules
142#>>9	byte	35	reserved
143# video resource device driver
144# Note:		 filetype 26 for VRS and filetype 36 for WPD apparently is wrong
145>>9	byte	36	WordPerfect Video Resource
146#!:mime		application/octet-stream
147!:mime		application/x-wordperfect-vrs
148# like: STANDARD.VRS
149!:ext		vrs
150# like: "IBM CGA (& compatibles)"
151>>>0x20		string	>A	"%.23s"
152>>9	byte	39	WordPerfect spell rules (Microlytics)
153#>>9	byte	40	reserved
154>>9	byte	41	WordPerfect Install options
155#!:mime		application/octet-stream
156!:mime		application/x-wordperfect-ins
157# like: WP51.INS
158!:ext		ins
159# probably default directory name like: "C:\WP51\"
160>>>0x12		string	>A	"%.8s"
161# maybe mouse driver for WP5.1
162>>9	byte	42	WordPerfect Resource
163#!:mime		application/octet-stream
164!:mime		application/x-wordperfect-irs
165# like: STANDARD.IRS
166!:ext		irs
167# like: "Mouse Driver (MOUSE.COM)"
168>>>0x28		string	>A	"%.24s"
169>>9	byte	43	WordPerfect settings file
170# maybe Macintosh WP2.0 document
171>>9	byte	44	WordPerfect 3.5 document
172!:mime		application/vnd.wordperfect
173!:apple		????WPD3
174# like: WP3.wpd
175!:ext		wpd
176>>9	byte	45	WordPerfect 4.2 document
177# External spell code module (WP5.1)
178#>>9	byte	46	WordPerfect external spell
179# external spell dictionary .LEX
180#>>9	byte	47	WordPerfect external spell dictionary
181# Macintosh SOFT graphics file (SOFT (Sequential Object Format)
182#>>9	byte	48	WordPerfect SOFT graphics
183#>>9	byte	49	reserved
184#>>9	byte	50	reserved
185# WPWin 5.1 Application Resource Library added for WPWin 5.1
186#>>9	byte	51	WordPerfect application resource library
187>>9	byte	69	WordPerfect dialog file
188# From:		Joerg Jenderek
189# Note:		found in sub directory WritingTools inside WordPerfect 2021 program directory
190>>9	byte	70	WordPerfect Writing Tools
191#!:mime	application/octet-stream
192!:mime	application/x-wordperfect-cbt
193# like: Wt13cbede.cbt Wt13cbeit.cbt Wt13cbefr.cbt WT21cbede.cbt Wt13cbeEN.CBD WT21cbeEN.CBD
194!:ext	cbd/cbt
195>>9	byte	76	WordPerfect button bar
196>>9	default x
197>>>9	byte	x	Corel WordPerfect: Unknown filetype %d
198# Corel Shell
199>8	byte	2
200>>9	byte	1	Corel shell macro
201>>9	byte	10	Corel shell definition
202>>9	default x
203>>>9	byte	x	Corel Shell: Unknown filetype %d
204# Corel Notebook
205>8	byte	3
206>>9	byte	1	Corel Notebook macro
207>>9	byte	2	Corel Notebook help file
208>>9	byte	3	Corel Notebook keyboard file
209>>9	byte	10	Corel Notebook definition
210>>9	default	x
211>>>9	byte	x	Corel Notebook: Unknown filetype %d
212# Corel Calculator
213>8	byte	4
214>>9	byte	2	Corel Calculator help file
215>>9	default	x
216>>>9	byte	x	Corel Calculator: Unknown filetype %d
217# Corel File Manager
218>8	byte	5
219>>9	default	x
220>>>9	byte	x	Corel File Manager: Unknown filetype %d
221# Corel Calendar
222>8	byte	6
223>>9	byte 	2	Corel Calendar help file
224>>9	byte 	10	Corel Calendar data file
225>>9	default	x
226>>>9	byte	x	Corel Calendar: Unknown filetype %d
227# Corel Program Editor/Ed Editor
228>8	byte	7
229>>9	byte	1	Corel Editor macro
230>>9	byte	2	Corel Editor help file
231>>9	byte	3	Corel Editor keyboard file
232>>9	byte	25	Corel Editor macro resource file
233>>9	default	x
234>>>9	byte	x	Corel Program Editor/Ed Editor: Unknown filetype %d
235# Corel Macro Editor
236>8	byte	8
237>>9	byte 	1	Corel Macro editor macro
238>>9	byte 	2	Corel Macro editor help file
239>>9	byte	3	Corel Macro editor keyboard file
240>>9	default	x
241>>>9	byte	x	Corel Macro Editor: Unknown filetype %d
242# Corel Plan Perfect
243>8	byte	9
244>>9	default	x
245>>>9	byte	x	Corel Plan Perfect: Unknown filetype %d
246# Corel DataPerfect
247>8	byte	10
248# CHECK: Don't these belong into product 9?
249>>9	byte	1	Corel PlanPerfect macro
250>>9	byte	2	Corel PlanPerfect help file
251>>9	byte	3	Corel PlanPerfect keyboard file
252>>9	byte	10	Corel PlanPerfect worksheet
253>>9	byte	15	Corel PlanPerfect printer definition
254>>9	byte	18	Corel PlanPerfect graphic definition
255>>9	byte	19	Corel PlanPerfect data
256>>9	byte	20	Corel PlanPerfect temporary printer
257>>9	byte	25	Corel PlanPerfect macro resource data
258>>9	default	x
259>>>9	byte	x	Corel DataPerfect: Unknown filetype %d
260# Corel Mail
261>8	byte	11
262>>9	byte	2	Corel Mail help file
263>>9	byte	5	Corel Mail distribution list
264>>9	byte	10	Corel Mail out box
265>>9	byte	11	Corel Mail in box
266>>9	byte	20	Corel Mail users archived mailbox
267>>9	byte	21	Corel Mail archived message database
268>>9	byte	22	Corel Mail archived attachments
269>>9	default	x
270>>>9	byte	x	Corel Mail: Unknown filetype %d
271# Corel Printer
272>8	byte	12
273>>9	byte	11	Corel Printer temporary file
274>>9	default	x
275>>>9	byte	x	Corel Printer: Unknown filetype %d
276# Corel Scheduler
277>8	byte	13
278>>9	byte	2	Corel Scheduler help file
279>>9	byte	10	Corel Scheduler in file
280>>9	byte	11	Corel Scheduler out file
281>>9	default	x
282>>>9	byte	x	Corel Scheduler: Unknown filetype %d
283# Corel WordPerfect Office
284>8	byte	14
285>>9	byte	10	Corel GroupWise settings file
286>>9	byte	17	Corel GroupWise directory services
287>>9	byte	43	Corel GroupWise settings file
288>>9	default	x
289>>>9	byte	x	Corel WordPerfect Office: Unknown filetype %d
290# Corel DrawPerfect
291>8	byte	15
292>>9	default	x
293>>>9	byte	x	Corel DrawPerfect: Unknown filetype %d
294# Corel LetterPerfect
295>8	byte	16
296>>9	default	x
297>>>9	byte	x	Corel LetterPerfect: Unknown filetype %d
298# Corel Terminal
299>8	byte	17
300>>9	byte	10	Corel Terminal resource data
301>>9	byte	11	Corel Terminal resource data
302>>9	byte	43	Corel Terminal resource data
303>>9	default	x
304>>>9	byte	x	Corel Terminal: Unknown filetype %d
305# Corel loadable file
306>8	byte	18
307>>9	byte	10	Corel loadable file
308>>9	byte	11	Corel GUI loadable text
309>>9	byte	12	Corel graphics resource data
310>>9	byte	13	Corel printer settings file
311>>9	byte	14	Corel port definition file
312>>9	byte	15	Corel print queue parameters
313>>9	byte	16	Corel compressed file
314>>9	default	x
315>>>9	byte	x	Corel loadable file: Unknown filetype %d
316>>15	byte	0	\b, optimized for Intel
317>>15	byte	1	\b, optimized for Non-Intel
318# Network service
319>8	byte	20
320>>9	byte	10	Corel Network service msg file
321>>9	byte	11	Corel Network service msg file
322>>9	byte	12	Corel Async gateway login msg
323>>9	byte	14	Corel GroupWise message file
324>>9	default	x
325>>>9	byte	x	Corel Network service: Unknown filetype %d
326# GroupWise
327>8	byte	31
328>>9	byte	20	GroupWise admin domain database
329>>9	byte	21	GroupWise admin host database
330>>9	byte	23	GroupWise admin remote host database
331>>9	byte	24	GroupWise admin ADS deferment data file
332>>9	default	x
333>>>9	byte	x	GroupWise: Unknown filetype %d
334# Corel Writing Tools WT*.*
335# From:		Joerg Jenderek
336# URL:		https://support.corel.com/hc/en-us/articles/215876258-Writing-Tools-Spell-Check-Dictionary-does-not-work-in-WordPerfect-X5
337#		http://wordperfect.helpmax.net/en/editing-and-formatting-documents/using-the-writing-tools/working-with-user-word-lists/
338# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/u/uwl-wp.trid.xml
339>8	byte	32
340>>9	byte	10	Corel Writing Tools User Word List
341#!:mime	application/octet-stream
342!:mime	application/x-wordperfect-wordlist
343# personal user word list UWL under user directory like: WTDE.UWL WTUS.UWL WT21DE.UWL WT21US.UWL WT13DE.UWL ...
344# and "template" SAV/HWL variant under program directory like: wt13en.hwl Wt13de.sav Wt13it.sav wt13ru.sav WT21us.sav Wtcz.sav ...
345!:ext	uwl/hwl/sav
346# jump to document area with some marker and word list
347>>>(4.l)	ubyte	x
348# look for beginning of word list starting mostly with letter a as UTF-16 like: Wt13es.sav
349# but not found in russian wt13ru.sav
350>>>>&0	search/91/sb	a\0
351# word list starting like: "acsesory\022accessory.\001\026acomodate\026accommodate4\001"
352>>>>>&0		lestring16	x	(...%-.33s...)
353# pointer to document area like: 200h
354>>>4	ulelong	!0x200	\b, at %#x document area
355# file size, not including pad characters at EOF
356>>>0x14	uleshort x	\b, %u bytes
357# IntelliTAG
358>8	byte	33
359>>9	byte	10	IntelliTAG (SGML) compiled DTD
360>>9	default	x
361>>>9	byte	x	IntelliTAG: Unknown filetype %d
362# Summary:	Corel WordPerfect WritingTools advise part
363# From:		Joerg Jenderek
364# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/a/adv-wp.trid.xml
365>8	byte	34
366>>9	byte	11	Corel WordPerfect dictionary advise
367#!:mime	application/octet-stream
368!:mime	application/x-wordperfect-adv
369#!:mime	application/vnd.wordperfect.adv
370# like: WT21de.adv Wt13de.adv Wt13es.adv Wt13fr.adv wt13us.adv
371!:ext	adv
372# advise text part often start with tag like: 580A
373#>>>(16.s)	ubequad	x	ADVISE PART %#llx
374# part of advise text like: "This is too informal for most writing."
375>>>(16.s+16)	string	x	(...%-.33s...)
376# everything else
377>8	default x
378>>8	byte	x	Unknown Corel/Wordperfect product %d,
379>>>9	byte	x	file type %d
380>10	byte	0	\b, v5.
381>10	byte	!0	\b, v%d.
382>11	byte	x	\b%d
383
384# Hangul (Korean) Word Processor File
3850	string	HWP\ Document\ File	Hangul (Korean) Word Processor File 3.0
386
387# CosmicBook, from Benoit Rouits
3880       string  CSBK    Ted Neslson's CosmicBook hypertext file
389
3902       string  EYWR    AmigaWriter file
391
392# chi:  file(1) magic for ChiWriter files
3930       string          \\1cw\          ChiWriter file
394>5      string          >\0             version %s
3950       string          \\1cw           ChiWriter file
396
397# Quark Express from https://www.garykessler.net/library/file_sigs.html
3982	string	IIXPR3			Intel Quark Express Document (English)
3992	string	IIXPRa			Intel Quark Express Document (Korean)
4002	string	MMXPR3			Motorola Quark Express Document (English)
401!:mime	application/x-quark-xpress-3
4022	string	MMXPRa			Motorola Quark Express Document (Korean)
403
404# From:		Joerg Jenderek
405# URL:		http://fileformats.archiveteam.org/wiki/PageMaker
406#		https://en.wikipedia.org/wiki/Adobe_PageMaker
407# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/p
408#		pm4-pagemaker.trid.xml
409#		pm5-pagemaker.trid.xml
410# Note:		since version 6 in 1995 called Adobe PageMaker and
411#		embedded in Compound Document handled by ./ole2compounddocs
412#		mainly tested little endian variant
4134	ubelong		=0x0000FF99
414>0	use		PageMaker
415# big endian variant
4164	ubelong		=0x000099FF
417>0	use		\^PageMaker
418#	display information of Aldus/Adobe PageMaker document/publication
4190	name		PageMaker
420>110	uleshort	<0x0600			Aldus
421>110	uleshort	>0x05FF			Adobe
422>110	uleshort	x			PageMaker
423# "MP" marker for newer version 4 and above according to TrID
424#>108	string		x			\b, MARKER "%.2s"
425# http://www.nationalarchives.gov.uk/pronom/fmt/876
426!:mime		application/vnd.pagemaker
427#!:mime		application/x-pagemaker
428# different file name extensions are used depending on version
429# older version like 3
430>110	uleshort/256	=0			document
431# https://www.macdisk.com/macsigen.php
432!:apple	ALB3ALD3
433# PT3 for template and no example for PageMaker document/publiction with PM3 extension
434!:ext	pm3/pt3
435>110	uleshort/256	=4			document
436!:apple	ALD4ALB4
437# no example for PT4 template
438!:ext	pm4/pt4
439>110	uleshort/256	=5			document
440!:apple	ALD5ALB5
441# no example for PT5 template
442!:ext	pm5/pt5
443>110	uleshort	=0x0600			document
444!:apple	ALD6ALB6
445# PT6 for template
446!:ext	pm6/pt6
447# HOWTO to distinguish version 7 from 6.5 ?
448>110	uleshort	=0x0632			document
449!:apple	AD65AB65
450# no example for T65 template
451!:ext	p65/t65/pmd/pmt
452# version 7 with PMT extension for template
453#!:ext	pmd/pmt
454#!:apple	????PUBF
455# endian marker FF 99 for little endian
456>6	ubyte	=0xFF			\b, little-endian
457>6	ubyte	=0x99			\b, big-endian
458# newer numeric version like: 4 5 6 6.50
459#>110	uleshort	x			\b, VERSION=%#x
460>110	uleshort	>0x03FF
461>>110	uleshort/256	x			\b, version %u
462>>110	uleshort%256	>0			\b.%u
463# older version like 3
464>110	uleshort	<0x0400			\b, maybe version 3
465
466# adobe indesign (document, whatever...) from querkan
4670	belong	0x0606edf5		Adobe InDesign
468>16	string	DOCUMENT		Document
469
470#------------------------------------------------------------------------------
471# ichitaro456: file(1) magic for Just System Word Processor Ichitaro
472#
473# Contributor kenzo-:
474# Reversed-engineered JS Ichitaro magic numbers
475#
476
4770	string		DOC
478>43	byte		0x14	Just System Word Processor Ichitaro v4
479!:mime	application/x-ichitaro4
480>144	string	JDASH		application/x-ichitaro4
481
4820	string		DOC
483>43	byte		0x15	Just System Word Processor Ichitaro v5
484!:mime	application/x-ichitaro5
485
4860	string		DOC
487>43	byte		0x16	Just System Word Processor Ichitaro v6
488!:mime	application/x-ichitaro6
489
490# Type: Freemind mindmap documents
491# From: Jamie Thompson <debian-bugs@jamie-thompson.co.uk>
4920	string/w	\<map\ version	Freemind document
493!:mime	application/x-freemind
494
495# Type: Freeplane mindmap documents
496# From: Felix Natter <fnatter@gmx.net>
4970       string/w        \<map\ version="freeplane  Freeplane document
498!:mime  application/x-freeplane
499
500# Type:        Scribus
501# From:        Werner Fink <werner@suse.de>
5020	string	\<SCRIBUSUTF8\ Version		Scribus Document
5030	string	\<SCRIBUSUTF8NEW\ Version	Scribus Document
504!:mime	application/x-scribus
505
506# help files .hlp compiled from html and used by gfxboot added by Joerg Jenderek
507# markups page=0x04,label=0x12, followed by strings like "opt" or "main" and title=0x14
5080	ulelong&0x8080FFFF	0x00001204	gfxboot compiled html help file
509
510# From:		Joerg Jenderek
511# URL:		https://en.wikipedia.org/wiki/StarOffice
512# Reference:	http://mark0.net/download/triddefs_xml.7z
513#		/defs/t/thm-staroffice.trid.xml
514# Note:		used in Star-, Open- and Libre-Office
515# named as soffice.StarConfigFile.6 or OpenOffice.org configuration by others
5160		ubeshort	0x0400
517# non nil gap
518#>(2.s+8)	ubequad		x		\b, gap %#16.16llx
519# test for null value in gap after theme name maybe unreliable
520#>(2.s+9)	ubyte		0		\b, 0-byte
521# look for keyword GALRESRV near the end
522# "C:\Program Files (x86)\StarOffice6.0\share\gallery\sg27.thm" Navigation, 238 objects
523#>0		search/8415	GALRESRV	\b, GALRESRV found
524# "neues thema6.thm" MorePictures, 315 objects
525#>0		search/19299	GALRESRV	\b, GALRESRV FOUND
526#>2		uleshort	x		\b, name length %u
527# skip file2147.chk by check for positive name length like for sg16.thm "3D"
528>2		uleshort	>0
529# skip dBase printer form T6.PRF with misidentified gallery
530# name :\DBASE\IV\T6.txts by check for 1st object name or RESRV keyword
531# https://www.clicketyclick.dk/databases/xbase/xbase/dbase_ex.zip
532# template/t6/with_data/T6.PRF
533# by first char of object name or RESRV part of keyword GALRESRV
534>>(2.s+13)	ubyte		>0x1F		StarOffice Gallery theme
535!:mime		application/x-stargallery-thm
536# thm is also used for JPEG thumbnail images
537!:ext		thm
538# gallery name often 1 word like: 3D sounds Diagrams Flussdiagramme Fotos
539# or like private://gallery/hidden/imgppt "Cisco - WAN - LAN"
540>>>2		pstring/h	x		%s
541# number of objects
542>>>(2.s+4)	ulelong		x		\b, %u object
543# plural s
544>>>(2.s+4)	ulelong		!1		\bs
545# if available then display first object name
546>>>(2.s+4)	ulelong		>0
547# partial file name, URL or internal name like "dd2*" of 1st object or RESRV
548>>>>(2.s+11)	pstring/h	x		\b, 1st %s
549
550# From:	Joerg Jenderek
551# URL:	http://fileformats.archiveteam.org/wiki/StarOffice_Gallery
552# Note:	used in Star-, Open- and Libre-Office and found in directories like
553#	%APPDATA%\Roaming\LibreOffice\4\user\gallery
554#	$HOME/.config/libreoffice/4/user/gallery
5550	string		SGA3	StarOffice Gallery thumbnails
556# Unknown like 0x04000?0001000142
557#>4	ubequad		x	\b, UNKNOWN %#16.16llx
558#!:mime	application/x-sdg
559!:mime	application/x-stargallery-sdg
560!:ext	sdg
561# display image magic for debugging purpose like 'BM'
562# looking like PC bitmap, Windows 3.x format with unknown compression
563#>11	string		x	\b, image magic '%-.2s'
564# inspect 1st GALLERY thumbnail magic by ./images with 1 space at end
565#>11	indirect	x	\b; contains
566
567