texinfo/texinfo-zlib.patch
Dominique Leuenberger ebd8970604 - Update to version 6.5:
* info:
    + some bugs fixed:
      a bug where a segfault could happen in the regex search, for
      example when the user entered a single \ as the search string
    + another bug which could make nodes inaccessible in long
      "split" info files
    + a bug where it was not possible to follow a cross-reference
      that was split across more than one line has been fixed
    + do not fall back to a man page if following a cross-reference
      in an info file failed
    + if looking for a file failed, do not convert the name of a
      file to lower-case and look for it again
  * texinfo.tex
    + some faulty definitions for Unicode characters have been
      changed or removed
    + fix indentation in table of contents for entries that are
      split across multiple lines
  * texi2dvi
    + a bug that broke the processing of LaTeX files that did not
      use BibTeX has been fixed
  * texi2any
    + output the encoding declaration of a HTML file earlier so it
      will always occur within first 1024 bytes of file
    + `INLINE_INSERTCOPYING' removed as a customization variable

OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/texinfo?expand=0&rev=49
2018-01-16 08:24:00 +00:00

116 lines
3.6 KiB
Diff

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");