summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2020-10-15 13:04:55 +0200
committerBastien Nocera <hadess@hadess.net>2020-10-15 13:06:52 +0200
commit788737409c76b00b8bf651920d00dea4ccd0750c (patch)
tree68082f3987e0039d31656a60e03684433a3ddecf
parent6f4947b01588ba1dcdd1451bf8217efea61bb32a (diff)
downloadshared-mime-info-wip/hadess/kaitai-struct.tar.gz
Add Kaitai Struct mime-typewip/hadess/kaitai-struct
For use with the Kaitai Struct visualiser, or any text/YAML editors
-rw-r--r--data/freedesktop.org.xml.in5
-rw-r--r--tests/mime-detection/ico.ksy78
-rw-r--r--tests/mime-detection/list1
3 files changed, 84 insertions, 0 deletions
diff --git a/data/freedesktop.org.xml.in b/data/freedesktop.org.xml.in
index 0db4d7c2..45d1ded8 100644
--- a/data/freedesktop.org.xml.in
+++ b/data/freedesktop.org.xml.in
@@ -1903,6 +1903,11 @@ command to generate the output files.
</magic>
<glob pattern="*.ui"/>
</mime-type>
+ <mime-type type="text/x-kaitai-struct">
+ <comment>Kaitai Struct definition file</comment>
+ <sub-class-of type="application/x-yaml"/>
+ <glob pattern="*.ksy"/>
+ </mime-type>
<mime-type type="text/x-qml">
<comment>Qt Markup Language file</comment>
<magic priority="80">
diff --git a/tests/mime-detection/ico.ksy b/tests/mime-detection/ico.ksy
new file mode 100644
index 00000000..592bce82
--- /dev/null
+++ b/tests/mime-detection/ico.ksy
@@ -0,0 +1,78 @@
+meta:
+ id: ico
+ title: Microsoft Windows icon file
+ file-extension: ico
+ endian: le
+ license: CC0-1.0
+doc: |
+ Microsoft Windows uses specific file format to store applications
+ icons - ICO. This is a container that contains one or more image
+ files (effectively, DIB parts of BMP files or full PNG files are
+ contained inside).
+doc-ref: https://msdn.microsoft.com/en-us/library/ms997538.aspx
+seq:
+ - id: magic
+ contents: [0, 0, 1, 0]
+ - id: num_images
+ -orig-id: idCount
+ type: u2
+ doc: Number of images contained in this file
+ - id: images
+ -orig-id: idEntries
+ type: icon_dir_entry
+ repeat: expr
+ repeat-expr: num_images
+types:
+ icon_dir_entry:
+ -orig-id: ICONDIRENTRY
+ seq:
+ - id: width
+ -orig-id: bWidth
+ type: u1
+ doc: Width of image, px
+ - id: height
+ -orig-id: bHeight
+ type: u1
+ doc: Height of image, px
+ - id: num_colors
+ -orig-id: bColorCount
+ type: u1
+ doc: |
+ Number of colors in palette of the image or 0 if image has
+ no palette (i.e. RGB, RGBA, etc)
+ - id: reserved
+ -orig-id: bReserved
+ contents: [0]
+ - id: num_planes
+ -orig-id: wPlanes
+ type: u2
+ doc: Number of color planes
+ - id: bpp
+ -orig-id: wBitCount
+ type: u2
+ doc: Bits per pixel in the image
+ - id: len_img
+ -orig-id: dwBytesInRes
+ type: u4
+ doc: Size of the image data
+ - id: ofs_img
+ -orig-id: dwImageOffset
+ type: u4
+ doc: Absolute offset of the image data start in the file
+ instances:
+ img:
+ pos: ofs_img
+ size: len_img
+ doc: |
+ Raw image data. Use `is_png` to determine whether this is an
+ embedded PNG file (true) or a DIB bitmap (false) and call a
+ relevant parser, if needed to parse image data further.
+ png_header:
+ pos: ofs_img
+ size: 8
+ doc: |
+ Pre-reads first 8 bytes of the image to determine if it's an
+ embedded PNG file.
+ is_png:
+ value: png_header == [137, 80, 78, 71, 13, 10, 26, 10]
+ doc: True if this image is in PNG format.
diff --git a/tests/mime-detection/list b/tests/mime-detection/list
index 7ccf5d02..0744797b 100644
--- a/tests/mime-detection/list
+++ b/tests/mime-detection/list
@@ -262,6 +262,7 @@ helloworld.java text/x-java ox
helloworld.groovy text/x-groovy ox
helloworld.vbs text/vbscript ox
build.gradle text/x-gradle ox
+ico.ksy text/x-kaitai-struct ox
# Copied from http://asurvey.net/ccsfagent/media/survey.js
survey.js application/javascript ox
# Copied from gecko/accessible/src/jsat/Utils.jsm in Boot2Gecko