Skip to content

Commit f06c216

Browse files
stokitosponomarev
authored and
sponomarev
committed
Add brotli support
1 parent 8ef808e commit f06c216

8 files changed

+31
-4
lines changed

README

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@
4747
* ZIP Archive (.zip)
4848
* ZIP Archived Comic Book (.cbz)
4949
* ZOO Compressed Archive File (.zoo)
50-
* Single files compressed with gzip, bzip, bzip2, compress, lrzip, lzip,
50+
* Single files compressed with gzip, brotli (.br), bzip, bzip2, compress, lrzip, lzip,
5151
lzop, rzip, xz.
5252

5353
* Home Page
5454

55-
http://www.mate-desktop.org/
55+
https://mate-desktop.org/
5656

5757
* Licensing
5858

caja/caja-engrampa.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@ static struct {
159159
{ "application/x-alz", TRUE },
160160
{ "application/x-ar", TRUE },
161161
{ "application/x-arj", TRUE },
162+
{ "application/x-brotli", TRUE },
162163
{ "application/x-bzip", TRUE },
163164
{ "application/x-bzip-compressed-tar", TRUE },
164165
{ "application/x-bzip1", TRUE },

data/engrampa.appdata.xml.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<li>WinRAR Compressed Archive (.rar)</li>
3434
<li>RAR Archived Comic Book (.cbr)</li>
3535
<li>RPM Linux Package (.rpm) [Read-only mode]</li>
36-
<li>Tape Archive File uncompressed (.tar) or compressed with: gzip (.tar.gz, .tgz), bzip (.tar.bz, .tbz), bzip2 (.tar.bz2, .tbz2),
36+
<li>Tape Archive File uncompressed (.tar) or compressed with: gzip (.tar.gz, .tgz), brotli (.br), bzip (.tar.bz, .tbz), bzip2 (.tar.bz2, .tbz2),
3737
compress (.tar.Z, .taz), lrzip (.tar.lrz, .tlrz), lzip (.tar.lz, .tlz), lzop (.tar.lzo, .tzo), 7zip (.tar.7z), xz (.tar.xz)
3838
</li>
3939
<li>Stuffit Archives (.bin, .sit)</li>

data/engrampa.desktop.in.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Terminal=false
99
Type=Application
1010
Icon=engrampa
1111
Categories=GTK;Utility;Archiving;Compression;
12-
MimeType=application/x-7z-compressed;application/x-7z-compressed-tar;application/x-ace;application/x-alz;application/x-ar;application/x-arj;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/x-deb;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-lhz;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;
12+
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-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/x-deb;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-lhz;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;
1313
Keywords=MATE;archive;manager;compression;
1414
X-MATE-DocPath=engrampa/engrampa.xml
1515
X-MATE-Bugzilla-Bugzilla=MATE

data/packages.match

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
[Package Matches]
22
arj=
33
binutils=
4+
brotli=
45
bzip2=
56
cpio=
67
dpkg=

src/fr-archive.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,7 @@ get_mime_type_from_magic_numbers (GFile *file)
552552
{ 0, 6, "7z\274\257\047\034", "application/x-7z-compressed" },
553553
{ 7, 7, "**ACE**", "application/x-ace" },
554554
{ 0, 2, "\x60\xea", "application/x-arj" },
555+
{ 0, 4, "\xce\xb2\xcf\x81", "application/x-brotli" },
555556
{ 0, 3, "BZh", "application/x-bzip2" },
556557
{ 0, 2, "\037\213", "application/x-gzip" },
557558
{ 0, 4, "LZIP", "application/x-lzip" },

src/fr-command-cfile.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,14 @@ fr_command_cfile_add (FrCommand *comm,
233233
fr_process_end_command (comm->process);
234234
compressed_filename = g_strconcat (filename, ".gz", NULL);
235235
}
236+
else if (is_mime_type (comm->mime_type, "application/x-brotli")) {
237+
fr_process_begin_command (comm->process, "brotli");
238+
fr_process_set_working_dir (comm->process, temp_dir);
239+
fr_process_add_arg (comm->process, "--");
240+
fr_process_add_arg (comm->process, filename);
241+
fr_process_end_command (comm->process);
242+
compressed_filename = g_strconcat (filename, ".br", NULL);
243+
}
236244
else if (is_mime_type (comm->mime_type, "application/x-bzip")) {
237245
fr_process_begin_command (comm->process, "bzip2");
238246
fr_process_set_working_dir (comm->process, temp_dir);
@@ -364,6 +372,13 @@ fr_command_cfile_extract (FrCommand *comm,
364372
fr_process_add_arg (comm->process, temp_file);
365373
fr_process_end_command (comm->process);
366374
}
375+
else if (is_mime_type (comm->mime_type, "application/x-brotli")) {
376+
fr_process_begin_command (comm->process, "brotli");
377+
fr_process_add_arg (comm->process, "-f");
378+
fr_process_add_arg (comm->process, "-d");
379+
fr_process_add_arg (comm->process, temp_file);
380+
fr_process_end_command (comm->process);
381+
}
367382
else if (is_mime_type (comm->mime_type, "application/x-bzip")) {
368383
fr_process_begin_command (comm->process, "bzip2");
369384
fr_process_add_arg (comm->process, "-f");
@@ -456,6 +471,7 @@ fr_command_cfile_extract (FrCommand *comm,
456471

457472

458473
const char *cfile_mime_type[] = { "application/x-gzip",
474+
"application/x-brotli",
459475
"application/x-bzip",
460476
"application/x-compress",
461477
"application/x-lzip",
@@ -485,6 +501,10 @@ fr_command_cfile_get_capabilities (FrCommand *comm,
485501
if (is_program_available ("gzip", check_command))
486502
capabilities |= FR_COMMAND_CAN_READ_WRITE;
487503
}
504+
else if (is_mime_type (mime_type, "application/x-brotli")) {
505+
if (is_program_available ("brotli", check_command))
506+
capabilities |= FR_COMMAND_CAN_READ_WRITE;
507+
}
488508
else if (is_mime_type (mime_type, "application/x-bzip")) {
489509
if (is_program_available ("bzip2", check_command))
490510
capabilities |= FR_COMMAND_CAN_READ_WRITE;
@@ -538,6 +558,8 @@ fr_command_cfile_get_packages (FrCommand *comm,
538558
{
539559
if (is_mime_type (mime_type, "application/x-gzip"))
540560
return PACKAGES ("gzip");
561+
else if (is_mime_type (mime_type, "application/x-brotli"))
562+
return PACKAGES ("brotli");
541563
else if (is_mime_type (mime_type, "application/x-bzip"))
542564
return PACKAGES ("bzip2");
543565
else if (is_mime_type (mime_type, "application/x-compress"))

src/fr-init.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ FrMimeTypeDescription mime_type_desc[] = {
6565
{ "application/x-ar", ".a", N_("Ar (.a)"), 0 },
6666
{ "application/x-ar", ".ar", N_("Ar (.ar)"), 0 },
6767
{ "application/x-arj", ".arj", N_("Arj (.arj)"), 0 },
68+
{ "application/x-brotli", ".br", N_("brotli (.br)"), 0 },
6869
{ "application/x-bzip", ".bz2", NULL, 0 },
6970
{ "application/x-bzip-compressed-tar", ".tar.bz2", N_("Tar compressed with bzip2 (.tar.bz2)"), 0 },
7071
{ "application/x-bzip1", ".bz", NULL, 0 },
@@ -119,6 +120,7 @@ FrExtensionType file_ext_type[] = {
119120
{ ".ar", "application/x-ar" },
120121
{ ".arj", "application/x-arj" },
121122
{ ".bin", "application/x-stuffit" },
123+
{ ".br", "application/x-brotli" },
122124
{ ".bz", "application/x-bzip" },
123125
{ ".bz2", "application/x-bzip" },
124126
{ ".cab", "application/vnd.ms-cab-compressed" },

0 commit comments

Comments
 (0)