@@ -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
458473const 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" ))
0 commit comments