* 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
116 lines
3.6 KiB
Diff
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");
|