diff options
author | rbuj <[email protected]> | 2019-09-19 09:35:36 +0200 |
---|---|---|
committer | Victor Kareh <[email protected]> | 2019-10-01 22:35:24 -0400 |
commit | f6a3980e1a2d1024a4c3d7b09ac1e167ffb7980a (patch) | |
tree | d0cf875e1c768164103f623c457249244de59b64 /src | |
parent | 519127b32ba4e9462022e23251de835cae90daf2 (diff) | |
download | engrampa-f6a3980e1a2d1024a4c3d7b09ac1e167ffb7980a.tar.bz2 engrampa-f6a3980e1a2d1024a4c3d7b09ac1e167ffb7980a.tar.xz |
Ar: Update MIME type and add magic numbers
Changes:
Replace application/x-ar with application/x-archive
ar magic number: "!<arch>\n"
deb magic number (Debian 0.93+): "!<arch>\ndebian-binary"
REF:
https://en.wikipedia.org/wiki/Ar_(Unix)
https://en.wikipedia.org/wiki/Deb_(file_format)
Test:
$ touch a && touch b && ar r test.ar a b && cp test.ar test-2.a
$ xdg-mime query filetype test.ar
application/x-archive
$ xdg-mime query filetype dftp_2.2-1.deb
application/vnd.debian.binary-package
$ gio info test.ar | grep content-type
standard::content-type: application/x-archive
standard::fast-content-type: application/x-archive
$ gio info dftp_2.2-1.deb | grep content-type
standard::content-type: application/vnd.debian.binary-package
standard::fast-content-type: application/vnd.debian.binary-package
$ hexdump -C -n 8 test.ar
00000000 21 3c 61 72 63 68 3e 0a |!<arch>.|
00000008
$ hexdump -C -n 21 dftp_2.2-1.deb
00000000 21 3c 61 72 63 68 3e 0a 64 65 62 69 61 6e 2d 62 |!<arch>.debian-b|
00000010 69 6e 61 72 79 |inary|
00000015
$ ./autogen.sh --prefix=/usr --disable-magic && make && sudo make install
Diffstat (limited to 'src')
-rw-r--r-- | src/fr-archive.c | 2 | ||||
-rw-r--r-- | src/fr-command-ar.c | 8 | ||||
-rw-r--r-- | src/fr-init.c | 8 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/fr-archive.c b/src/fr-archive.c index c41aa7e..eff0afe 100644 --- a/src/fr-archive.c +++ b/src/fr-archive.c @@ -550,6 +550,8 @@ get_mime_type_from_magic_numbers (GFile *file) const char * const mime_type; } magic_ids [] = { /* magic ids taken from magic/Magdir/archive from the file-4.21 tarball */ + { 0, 21, "!<arch>" "\x0a" "debian-binary", "application/vnd.debian.binary-package" }, + { 0, 8, "!<arch>" "\x0a", "application/x-archive" }, { 0, 6, "7z\274\257\047\034", "application/x-7z-compressed" }, { 7, 7, "**ACE**", "application/x-ace" }, { 0, 2, "\x60\xea", "application/x-arj" }, diff --git a/src/fr-command-ar.c b/src/fr-command-ar.c index 12eee41..f72444a 100644 --- a/src/fr-command-ar.c +++ b/src/fr-command-ar.c @@ -241,9 +241,9 @@ fr_command_ar_handle_error (FrCommand *comm, } -const char *ar_mime_type[] = { "application/x-ar", - "application/vnd.debian.binary-package", - NULL }; +const char *ar_mime_type[] = { "application/x-archive", + "application/vnd.debian.binary-package", + NULL }; static const char ** @@ -264,7 +264,7 @@ fr_command_ar_get_capabilities (FrCommand *comm, if (is_program_available ("ar", check_command)) { if (is_mime_type (mime_type, "application/vnd.debian.binary-package")) capabilities |= FR_COMMAND_CAN_READ; - else if (is_mime_type (mime_type, "application/x-ar")) + else if (is_mime_type (mime_type, "application/x-archive")) capabilities |= FR_COMMAND_CAN_READ_WRITE; } diff --git a/src/fr-init.c b/src/fr-init.c index 8c06372..33bdf53 100644 --- a/src/fr-init.c +++ b/src/fr-init.c @@ -71,8 +71,8 @@ FrMimeTypeDescription mime_type_desc[] = { { "application/x-7z-compressed-tar", ".tar.7z", N_("Tar compressed with 7z (.tar.7z)"), 0 }, { "application/x-ace", ".ace", N_("Ace (.ace)"), 0 }, { "application/x-alz", ".alz", N_("ALZip archive (.alz)"), 0 }, - { "application/x-ar", ".a", N_("Ar (.a)"), 0 }, - { "application/x-ar", ".ar", N_("Ar (.ar)"), 0 }, + { "application/x-archive", ".a", N_("Ar (.a)"), 0 }, + { "application/x-archive", ".ar", N_("Ar (.ar)"), 0 }, { "application/x-arj", ".arj", N_("Arj (.arj)"), 0 }, { "application/x-brotli", ".br", N_("brotli (.br)"), 0 }, { "application/x-brotli-compressed-tar", ".tar.br", N_("Tar compressed with brotli (.tar.br)"), 0 }, @@ -117,10 +117,10 @@ FrMimeTypeDescription mime_type_desc[] = { FrExtensionType file_ext_type[] = { { ".7z", "application/x-7z-compressed" }, - { ".a", "application/x-ar" }, + { ".a", "application/x-archive" }, { ".ace", "application/x-ace" }, { ".alz", "application/x-alz" }, - { ".ar", "application/x-ar" }, + { ".ar", "application/x-archive" }, { ".arj", "application/x-arj" }, { ".bin", "application/x-stuffit" }, { ".br", "application/x-brotli" }, |