fonts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. #------------------------------------------------------------------------------
  2. # $File: fonts,v 1.38 2017/11/14 15:48:36 christos Exp $
  3. # fonts: file(1) magic for font data
  4. #
  5. 0 search/1 FONT ASCII vfont text
  6. 0 short 0436 Berkeley vfont data
  7. 0 short 017001 byte-swapped Berkeley vfont data
  8. # PostScript fonts (must precede "printer" entries), quinlan@yggdrasil.com
  9. 0 string %!PS-AdobeFont-1. PostScript Type 1 font text
  10. >20 string >\0 (%s)
  11. 6 string %!PS-AdobeFont-1. PostScript Type 1 font program data
  12. 0 string %!FontType1 PostScript Type 1 font program data
  13. 6 string %!FontType1 PostScript Type 1 font program data
  14. 0 string %!PS-Adobe-3.0\ Resource-Font PostScript Type 1 font text
  15. # Summary: PostScript Type 1 Printer Font Metrics
  16. # URL: https://en.wikipedia.org/wiki/PostScript_fonts
  17. # Reference: http://partners.adobe.com/public/developer/en/font/5178.PFM.pdf
  18. # Modified by: Joerg Jenderek
  19. # Note: moved from ./msdos magic
  20. # dfVersion 256=0100h
  21. 0 uleshort 0x0100
  22. # GRR: line above is too general as it catches also TrueType font,
  23. # raw G3 data FAX, WhatsApp encrypted and Panorama database
  24. # dfType 129=0081h
  25. >66 uleshort 0x0081
  26. # dfVertRes 300=012Ch not needed as additional test
  27. #>>70 uleshort 0x012c
  28. # dfHorizRes 300=012Ch
  29. #>>>72 uleshort 0x012c
  30. # dfDriverInfo points to postscript information section
  31. >>(101.l) string/c Postscript Printer Font Metrics
  32. # above labeled "PFM data" by ./msdos (version 5.28) or "Adobe Printer Font Metrics" by TrID
  33. !:mime application/x-font-pfm
  34. # AppleShare Print Server
  35. #!:apple ASPS????
  36. !:ext pfm
  37. # dfCopyright 60 byte null padded Copyright string. uncomment it to get old looking
  38. #>>>6 string >\060 - %-.60s
  39. # dfDriverInfo
  40. >>>139 ulelong >0
  41. # often abbreviated and same as filename
  42. >>>>(139.l) string x %s
  43. # dfSize
  44. >>>2 ulelong x \b, %d bytes
  45. # dfFace 210=D2h 9Eh
  46. >>>105 ulelong >0
  47. # Windows font name
  48. >>>>(105.l) string x \b, %s
  49. # dfItalic
  50. >>>80 ubyte 1 italic
  51. # dfUnderline
  52. >>>81 ubyte 1 underline
  53. # dfStrikeOut
  54. >>>82 ubyte 1 strikeout
  55. # dfWeight 400=0x0190 300=0x012c 500=0x01f4 600=0x0258 700=0x02bc
  56. >>>83 uleshort >699 bold
  57. # dfPitchAndFamily 16 17 48 49 64 65
  58. >>>90 ubyte 16 serif
  59. >>>90 ubyte 17 serif proportional
  60. #>>>90 ubyte 48 other
  61. >>>90 ubyte 49 proportional
  62. >>>90 ubyte 64 script
  63. >>>90 ubyte 65 script proportional
  64. # X11 font files in SNF (Server Natural Format) format
  65. # updated by Joerg Jenderek at Feb 2013
  66. # http://computer-programming-forum.com/51-perl/8f22fb96d2e34bab.htm
  67. 0 belong 00000004 X11 SNF font data, MSB first
  68. #>104 belong 00000004 X11 SNF font data, MSB first
  69. !:mime application/x-font-sfn
  70. # GRR: line below too general as it catches also Xbase index file t3-CHAR.NDX
  71. 0 lelong 00000004
  72. >104 lelong 00000004 X11 SNF font data, LSB first
  73. !:mime application/x-font-sfn
  74. # X11 Bitmap Distribution Format, from Daniel Quinlan (quinlan@yggdrasil.com)
  75. 0 search/1 STARTFONT\ X11 BDF font text
  76. # From: Joerg Jenderek
  77. # URL: http://grub.gibibit.com/New_font_format
  78. # Reference: util/grub-mkfont.c
  79. # include/grub/fontformat.h
  80. # FONT_FORMAT_SECTION_NAMES_FILE
  81. 0 string FILE
  82. # FONT_FORMAT_PFF2_MAGIC
  83. >8 string PFF2
  84. # leng 4 only at the moment
  85. >>4 ubelong 4
  86. # FONT_FORMAT_SECTION_NAMES_FONT_NAME
  87. >>>12 string NAME GRUB2 font
  88. !:mime application/x-font-pf2
  89. !:ext pf2
  90. # length of font_name
  91. >>>>16 ubelong >0
  92. # font_name
  93. >>>>>20 string >\0 "%-s"
  94. # X11 fonts, from Daniel Quinlan (quinlan@yggdrasil.com)
  95. # PCF must come before SGI additions ("MIPSEL MIPS-II COFF" collides)
  96. 0 string \001fcp X11 Portable Compiled Font data,
  97. >12 lelong ^0x08 bit: LSB,
  98. >12 lelong &0x08 bit: MSB,
  99. >12 lelong ^0x04 byte: LSB first
  100. >12 lelong &0x04 byte: MSB first
  101. 0 string D1.0\015 X11 Speedo font data
  102. #------------------------------------------------------------------------------
  103. # FIGlet fonts and controlfiles
  104. # From figmagic supplied with Figlet version 2.2
  105. # "David E. O'Brien" <obrien@FreeBSD.ORG>
  106. 0 string flf FIGlet font
  107. >3 string >2a version %-2.2s
  108. 0 string flc FIGlet controlfile
  109. >3 string >2a version %-2.2s
  110. # libGrx graphics lib fonts, from Albert Cahalan (acahalan@cs.uml.edu)
  111. # Used with djgpp (DOS Gnu C++), sometimes Linux or Turbo C++
  112. 0 belong 0x14025919 libGrx font data,
  113. >8 leshort x %dx
  114. >10 leshort x \b%d
  115. >40 string x %s
  116. # Misc. DOS VGA fonts, from Albert Cahalan (acahalan@cs.uml.edu)
  117. 0 belong 0xff464f4e DOS code page font data collection
  118. 7 belong 0x00454741 DOS code page font data
  119. 7 belong 0x00564944 DOS code page font data (from Linux?)
  120. 4098 string DOSFONT DOSFONT2 encrypted font data
  121. # downloadable fonts for browser (prints type) anthon@mnt.org
  122. # https://tools.ietf.org/html/rfc3073
  123. 0 string PFR1 Portable Font Resource font data (new)
  124. >102 string >0 \b: %s
  125. 0 string PFR0 Portable Font Resource font data (old)
  126. >4 beshort >0 version %d
  127. # True Type fonts
  128. # Modified by: Joerg Jenderek
  129. # URL: https://en.wikipedia.org/wiki/TrueType
  130. # Reference: https://developer.apple.com/fonts/TrueType-Reference-Manual/
  131. #
  132. # sfnt version "typ1" used by some Apple, but no example found
  133. 0 string typ1
  134. >0 use sfnt-font
  135. >0 use sfnt-names
  136. # sfnt version "true" used by some Apple
  137. 0 string true
  138. >0 use sfnt-font
  139. >0 use sfnt-names
  140. # GRR: below test is too general
  141. # sfnt version often 0x00010000
  142. 0 string \000\001\000\000
  143. >0 use sfnt-font
  144. >0 use sfnt-names
  145. # validate and display sfnt font data like number of tables
  146. 0 name sfnt-font
  147. # file 5.30 version assumes 00FFh as maximal number of tables
  148. #>4 ubeshort <0x0100
  149. # maximal 27 tables found like in Skia.ttf
  150. # 46 different table names mentioned on Apple specification
  151. # skip 1st sequence of DOS 2 backup with path separator (\~92 or /~47) misinterpreted as table number
  152. >4 ubeshort <47
  153. # skip bad examples with garbage table names like in a5.show HYPERC MAC
  154. # tag names consist of up to four characters padded with spaces at end like
  155. # BASE DSIG OS/2 Zapf acnt glyf cvt vmtx xref ...
  156. >>12 regex/4l \^[A-Za-z][A-Za-z][A-Za-z/][A-Za-z2\ ]
  157. #>>>0 ubelong x \b, sfnt version 0x%x
  158. >>>0 ubelong !0x4f54544f TrueType
  159. !:mime application/font-sfnt
  160. #!:mime font/ttf
  161. !:apple ????tfil
  162. # .ttf for TrueType font
  163. # EUDC.tte created by privat character editor %WINDIR%\system32\eudcedit.exe
  164. !:ext ttf/tte
  165. # sfnt version 4F54544Fh~OTTO
  166. >>>0 ubelong =0x4f54544f OpenType
  167. !:mime application/font-sfnt
  168. #!:mime font/otf
  169. !:apple ????OTTO
  170. !:ext otf
  171. >>>0 ubelong x Font data
  172. # DSIG=44454947h table name implies a digitally signed font
  173. # search range = number of tables * 16 =< maximal number of tables * 16 = 27 * 16 = 432
  174. >>>12 search/432 DSIG \b, digitally signed
  175. >>>4 ubeshort x \b, %d tables
  176. # minimal 9 tables found like in NISC18030.ttf
  177. #>>>4 ubeshort <10 TMIN
  178. #>>>4 ubeshort >24 TBIG
  179. # table directory entries
  180. >>>12 string x \b, 1st "%4.4s"
  181. # search and display 1st name in sfnt font which is often copyright text
  182. # does not work inside font collections
  183. 0 name sfnt-names
  184. # search for naming table
  185. >12 search/432/s name
  186. # biggest offset 0x0100bd28 like Windows10 Fonts\simsunb.ttf
  187. #>>>>&8 ubelong >0x0100bd27 BIGGEST OFFSET
  188. >>&8 ubelong >0x00100000
  189. # offset of name table
  190. >>>&-4 ubelong x \b, name offset 0x%x
  191. # GRR: pointer to name table only works if offset ~< FILE_BYTES_MAX = 100000h defined in src\file.h
  192. >>&8 ubelong <0x00100000
  193. >>>&-16 ubelong x
  194. # name table
  195. >>>>(&8.L) ubequad x
  196. # invalid format selector
  197. #>>>>>&-8 ubeshort !0 \b, invalid selector %x
  198. # minimal 3 name records found like in c:\Program Files (x86)\Tesseract-OCR\tessdata\pdf.ttf
  199. # maximal 1227 name records found like in Apple Chancery.ttf
  200. #>>>>>&-6 ubeshort <0x4 mincount
  201. #>>>>>&-6 ubeshort >130 maxcount
  202. >>>>>&-6 ubeshort x \b, %d names
  203. # offset to start of string storage from start of table
  204. #>>>>>&-4 ubeshort x \b, record offset %d
  205. # 1st name record
  206. # string offset from start of storage area
  207. #>>>>>&8 ubeshort x \b, string offset %d
  208. # string length
  209. #>>>>>&6 ubeshort x \b, string length %d
  210. # minimal name string 7 like in c:\Program Files (x86)\Kodi\addons\webinterface.default\lib\video-js\font\VideoJS.ttf
  211. # also found 0 like in SWZCONLN.TTF
  212. #>>>>>&6 ubeshort <8 MIN STRING
  213. # maximal name string 806 like in c:\Windows\Fonts\palabi.ttf
  214. #>>>>>&6 ubeshort >805 MAX STRING
  215. # platform identifier: 0~Apple Unicode, 1~Macintosh, 3~Microsoft
  216. #>>>>>&-2 ubeshort >3 BAD PLATFORM
  217. >>>>>&-2 ubeshort 0 \b, Unicode
  218. >>>>>&-2 ubeshort 1 \b, Macintosh
  219. >>>>>&-2 ubeshort 3 \b, Microsoft
  220. # languageID (0~english Macintosh, 0409h~english Microsoft, ...)
  221. >>>>>&2 ubeshort >0 \b, language 0x%x
  222. # name identifiers
  223. # often 0~copyright, 1~font, 2~font subfamily, 5~version, 13~license, 19~sample, ...
  224. >>>>>&4 ubeshort >0 \b, type %d string
  225. # platform specific encoding:
  226. # 0~undefined character set, 1~UGL set with Unicode, 3~Unicode 2.0 BMP only, 4~Unicode 2.0
  227. #>>>>>&0 ubeshort x \b, %d encoding
  228. >>>>>&0 ubeshort 0
  229. # handle only name string offset 0 because do not know how to add 2 relative offsets
  230. >>>>>>&6 ubeshort 0
  231. >>>>>>>&(&-14.S-18) ubyte !0
  232. # GRR: instead 806 only first MAXstring = 96 characters are displayed as defined in src\file.h
  233. # often copyright string that starts like \251 2006 The Monotype Corporation
  234. >>>>>>>>&-1 string x \b, %-11.96s
  235. # test for unicode string
  236. >>>>>>>&(&-14.S-18) ubyte 0
  237. >>>>>>>>&0 lestring16 x \b, %-11.96s
  238. # unicode encoding
  239. >>>>>&0 ubeshort >0
  240. >>>>>>&6 ubeshort 0
  241. >>>>>>>&(&-14.S-17) lestring16 x \b, %-11.96s
  242. 0 string \007\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font
  243. 0 string \012\001\001\000Copyright\ (c)\ 199 Adobe Multiple Master font
  244. # TrueType/OpenType font collections (.ttc)
  245. # URL: https://en.wikipedia.org/wiki/OpenType
  246. # http://www.microsoft.com/typography/otspec/otff.htm
  247. # Modified by: Joerg Jenderek
  248. # Note: container for TrueType, OpenType font
  249. 0 string ttcf
  250. # skip ASCII text
  251. >4 ubyte 0
  252. # sfnt version often 0x00010000 of 1st table is TrueType
  253. >>(12.L) ubelong !0x4f54544f TrueType
  254. #!:mime font/ttf
  255. !:apple ????tfil
  256. !:ext ttc
  257. # sfnt version 4F54544Fh~OTTO of 1st table is OpenType font
  258. >>(12.L) ubelong =0x4f54544f OpenType
  259. #!:mime font/otf
  260. !:apple ????OTTO
  261. # no example found for otc
  262. !:ext ttc/otc
  263. >>4 ubyte x font collection data
  264. !:mime application/font-sfnt
  265. #!:mime font/collection
  266. # TCC version
  267. >>4 belong 0x00010000 \b, 1.0
  268. >>4 belong 0x00020000 \b, 2.0
  269. >>8 ubelong >0 \b, %d fonts
  270. # array offset size = fonts * offsetsize = fonts * 4
  271. >>(8.L*4) ubequad x
  272. # 0x44454947 = 'DSIG'
  273. >>>&4 belong 0x44534947 \b, digitally signed
  274. # offset to 1st font
  275. >>12 ubelong x \b, at 0x%x
  276. # point to 1st font that starts with sfnt version
  277. >>(12.L) use sfnt-font
  278. # Opentype font data from Avi Bercovich
  279. 0 string OTTO OpenType font data
  280. !:mime application/vnd.ms-opentype
  281. # From: Alex Myczko <alex@aiei.ch>
  282. 0 string SplineFontDB: Spline Font Database
  283. !:mime application/vnd.font-fontforge-sfd
  284. >14 string x version %s
  285. # EOT
  286. 0x40 string \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0
  287. >0x22 string LP Embedded OpenType (EOT)
  288. # workaround until there's lepstring16
  289. # >>0x52 lepstring16/h >\0 \b, %s family
  290. >>0x52 short !0
  291. >>>0x54 lestring16 x \b, %s family
  292. !:mime application/vnd.ms-fontobject
  293. # Web Open Font Format (.woff)
  294. 0 name woff
  295. >4 belong 0x00010000 \b, TrueType
  296. >4 belong 0x4F54544F \b, CFF
  297. >4 belong 0x74727565 \b, TrueType
  298. >4 default x
  299. >>4 belong x \b, flavor %d
  300. >8 belong x \b, length %d
  301. #>12 beshort x \b, numTables %d
  302. #>14 beshort x \b, reserved %d
  303. #>16 belong x \b, totalSfntSize %d
  304. # http://www.w3.org/TR/WOFF/
  305. 0 string wOFF Web Open Font Format
  306. >0 use woff
  307. >20 beshort x \b, version %d
  308. >22 beshort x \b.%d
  309. # http://www.w3.org/TR/WOFF2/
  310. 0 string wOF2 Web Open Font Format (Version 2)
  311. >0 use woff
  312. #>20 belong x \b, totalCompressedSize %d
  313. >24 beshort x \b, version %d
  314. >26 beshort x \b.%d