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 | |
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
-rw-r--r-- | caja/caja-engrampa.c | 2 | ||||
-rw-r--r-- | data/engrampa.desktop.in.in | 2 | ||||
-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 |
5 files changed, 12 insertions, 10 deletions
diff --git a/caja/caja-engrampa.c b/caja/caja-engrampa.c index 8e1a8f2..3667b5a 100644 --- a/caja/caja-engrampa.c +++ b/caja/caja-engrampa.c @@ -149,7 +149,7 @@ static struct { { "application/x-7z-compressed-tar", TRUE }, { "application/x-ace", TRUE }, { "application/x-alz", TRUE }, - { "application/x-ar", TRUE }, + { "application/x-archive", TRUE }, { "application/x-arj", TRUE }, { "application/x-brotli", TRUE }, { "application/x-brotli-compressed-tar", TRUE }, diff --git a/data/engrampa.desktop.in.in b/data/engrampa.desktop.in.in index 26ccf0c..7222ba6 100644 --- a/data/engrampa.desktop.in.in +++ b/data/engrampa.desktop.in.in @@ -9,7 +9,7 @@ Terminal=false Type=Application Icon=engrampa Categories=GTK;Utility;Archiving;Compression; -MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-arj;application/x-brotli;application/x-brotli-compressed-tar;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/vnd.debian.binary-package;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lzh-compressed;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zip;application/x-archive;application/vnd.ms-cab-compressed;application/zstd; +MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-arj;application/x-brotli;application/x-brotli-compressed-tar;application/x-bzip;application/x-bzip-compressed-tar;application/x-bzip1;application/x-bzip1-compressed-tar;application/x-cabinet;application/x-cbr;application/x-cbz;application/x-cd-image;application/x-compress;application/x-compressed-tar;application/x-cpio;application/vnd.debian.binary-package;application/x-ear;application/x-ms-dos-executable;application/x-gtar;application/x-gzip;application/x-gzpostscript;application/x-java-archive;application/x-lha;application/x-lzh-compressed;application/x-lrzip;application/x-lrzip-compressed-tar;application/x-lzip;application/x-lzip-compressed-tar;application/x-lzma;application/x-lzma-compressed-tar;application/x-lzop;application/x-lzop-compressed-tar;application/x-ms-wim;application/x-rar;application/x-rar-compressed;application/x-rpm;application/x-rzip;application/x-tar;application/x-tarz;application/x-stuffit;application/x-war;application/x-xz;application/x-xz-compressed-tar;application/x-zip;application/x-zip-compressed;application/x-zoo;application/zip;application/x-archive;application/vnd.ms-cab-compressed;application/zstd; Keywords=MATE;archive;manager;compression; X-MATE-DocPath=engrampa/engrampa.xml X-MATE-Bugzilla-Bugzilla=MATE 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" }, |