Initialize for texinfo
This commit is contained in:
commit
31978d4409
9 changed files with 1165 additions and 0 deletions
115
texinfo-zlib.patch
Normal file
115
texinfo-zlib.patch
Normal file
|
@ -0,0 +1,115 @@
|
|||
Index: texinfo-6.5/install-info/Makefile.in
|
||||
===================================================================
|
||||
--- texinfo-6.5.orig/install-info/Makefile.in
|
||||
+++ texinfo-6.5/install-info/Makefile.in
|
||||
@@ -222,7 +222,7 @@ am__installdirs = "$(DESTDIR)$(bindir)"
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_ginstall_info_OBJECTS = install-info.$(OBJEXT)
|
||||
ginstall_info_OBJECTS = $(am_ginstall_info_OBJECTS)
|
||||
-ginstall_info_LDADD = $(LDADD)
|
||||
+ginstall_info_LDADD = $(LDADD) -lzio
|
||||
am__DEPENDENCIES_1 =
|
||||
ginstall_info_DEPENDENCIES = $(top_builddir)/gnulib/lib/libgnu.a \
|
||||
$(am__DEPENDENCIES_1)
|
||||
Index: texinfo-6.5/install-info/install-info.c
|
||||
===================================================================
|
||||
--- texinfo-6.5.orig/install-info/install-info.c
|
||||
+++ texinfo-6.5/install-info/install-info.c
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <getopt.h>
|
||||
#include <regex.h>
|
||||
#include <argz.h>
|
||||
+#include <zio.h>
|
||||
|
||||
#define TAB_WIDTH 8
|
||||
|
||||
@@ -701,34 +702,59 @@ open_possibly_compressed_file (char *fil
|
||||
|
||||
*opened_filename = filename;
|
||||
f = fopen (*opened_filename, FOPEN_RBIN);
|
||||
+ if (!compression_program)
|
||||
+ compression_program = &local_compression_program;
|
||||
+ *compression_program = NULL;
|
||||
+ if (f)
|
||||
+ {
|
||||
+ nread = fread (data, sizeof (data), 1, f);
|
||||
+ if (nread == 1)
|
||||
+ {
|
||||
+ if (data[0] == '\x1f' && data[1] == '\x8b')
|
||||
+ *compression_program = "g";
|
||||
+ else if (data[0] == '\x1f' && data[1] == '\x9d')
|
||||
+ *compression_program = "Z";
|
||||
+ else if (data[0] == '\x1f' && data[1] == '\x9e')
|
||||
+ *compression_program = "z";
|
||||
+ else if (data[0] == 'B' && data[1] == 'Z' && data[2] == 'h')
|
||||
+ *compression_program = "b";
|
||||
+ }
|
||||
+ fclose (f);
|
||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
||||
+ }
|
||||
if (!f)
|
||||
{
|
||||
*opened_filename = concat (filename, ".gz", "");
|
||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
||||
+ *compression_program = "g";
|
||||
}
|
||||
if (!f)
|
||||
{
|
||||
free (*opened_filename);
|
||||
*opened_filename = concat (filename, ".xz", "");
|
||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
||||
+ *compression_program = "x";
|
||||
}
|
||||
if (!f)
|
||||
{
|
||||
free (*opened_filename);
|
||||
*opened_filename = concat (filename, ".bz2", "");
|
||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
||||
+ *compression_program = "b";
|
||||
}
|
||||
if (!f)
|
||||
{
|
||||
free (*opened_filename);
|
||||
*opened_filename = concat (filename, ".lz", "");
|
||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
||||
+ *compression_program = "l";
|
||||
}
|
||||
if (!f)
|
||||
{
|
||||
free (*opened_filename);
|
||||
*opened_filename = concat (filename, ".lzma", "");
|
||||
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||
+ f = fzopen (*opened_filename, FOPEN_RBIN);
|
||||
+ *compression_program = "l";
|
||||
}
|
||||
#ifdef __MSDOS__
|
||||
if (!f)
|
||||
@@ -961,8 +987,22 @@ output_dirfile (char *dirfile, int dir_n
|
||||
|
||||
if (compression_program)
|
||||
{
|
||||
- char *command = concat (compression_program, ">", dirfile);
|
||||
- output = popen (command, "w");
|
||||
+ output = NULL;
|
||||
+ if (*compression_program == 'g' || *compression_program == 'z')
|
||||
+ output = fzopen (dirfile, "wg");
|
||||
+ if (*compression_program == 'b')
|
||||
+ output = fzopen (dirfile, "wb");
|
||||
+ if (*compression_program == 'Z')
|
||||
+ output = fzopen (dirfile, "wZ");
|
||||
+ if (*compression_program == 'l')
|
||||
+ output = fzopen (dirfile, "wl");
|
||||
+ if (*compression_program == 'x')
|
||||
+ output = fzopen (dirfile, "wx");
|
||||
+ if (!output)
|
||||
+ {
|
||||
+ char *command = concat (compression_program, ">", dirfile);
|
||||
+ output = popen (command, "w");
|
||||
+ }
|
||||
}
|
||||
else
|
||||
output = fopen (dirfile, "w");
|
Loading…
Add table
Add a link
Reference in a new issue