--- a/info/filesys.c
+++ b/info/filesys.c
@@ -60,6 +60,7 @@
{ ".xz", "unxz" },
{ ".bz2", "bunzip2" },
{ ".z", "gunzip" },
+ { ".br", "brunzip" },
{ ".lzma", "unlzma" },
{ ".Z", "uncompress" },
{ ".zst", "unzstd", "--rm", "-q" },
--- a/install-info/install-info.c
+++ b/install-info/install-info.c
@@ -438,6 +438,11 @@
len -= 3;
ret[len] = 0;
}
+ else if (len > 3 && FILENAME_CMP (ret + len - 3, ".br") == 0)
+ {
+ len -= 3;
+ ret[len] = 0;
+ }
else if (len > 5 && FILENAME_CMP (ret + len - 5, ".lzma") == 0)
{
len -= 5;
@@ -726,6 +731,12 @@
}
if (!f)
{
+ free (*opened_filename);
+ *opened_filename = concat (filename, ".br", "");
+ f = fopen (*opened_filename, FOPEN_RBIN);
+ }
+ if (!f)
+ {
free (*opened_filename);
*opened_filename = concat (filename, ".lzma", "");
f = fopen (*opened_filename, FOPEN_RBIN);
@@ -838,6 +849,14 @@
*compression_program = "lzip";
#endif
+ else if (data[0] == '\xce' && data[1] == '\xb2'
+ && data[2] == '\xcf' && data[3] == '\x81')
+#ifndef STRIP_DOT_EXE
+ *compression_program = "brzip.exe";
+#else
+ *compression_program = "brzip";
+#endif
+
/* We (try to) match against old lzma format (which lacks proper
header, two first matches), as well as the new format (last match). */
else if ((data[9] == 0x00 && data[10] == 0x00 && data[11] == 0x00