Compare commits

..

1 Commits
master ... f22

Author SHA1 Message Date
Vitezslav Crhonek 8a1f2a1346 Fix missing C-n binding in info 2015-09-15 10:57:18 +02:00
17 changed files with 408 additions and 577 deletions

10
.gitignore vendored
View File

@ -1,2 +1,8 @@
/texinfo-6.6.tar.xz
/texinfo-6.6.tar.xz.sig
texinfo-4.13a.tar.lzma
texinfo-4.13a.tar.lzma.sig
/texinfo-5.0.tar.xz
/texinfo-5.0.tar.xz.sig
/texinfo-5.1.tar.xz
/texinfo-5.1.tar.xz.sig
/texinfo-5.2.tar.xz
/texinfo-5.2.tar.xz.sig

4
filter-provides-texinfo.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
/usr/lib/rpm/find-provides "$@" | grep -v 'perl('
exit 0

4
filter-requires-texinfo.sh Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
/usr/lib/rpm/find-provides "$@" | grep 'perl(\(Text::Unidecode\|Unicode::EastAsianWidth\|Data::Dumper\|Locale::Messages\))'
exit 0

View File

@ -1,40 +0,0 @@
diff -uNr texinfo-6.5.orig/contrib/fix-info-dir texinfo-6.5/contrib/fix-info-dir
--- texinfo-6.5.orig/contrib/fix-info-dir 2014-04-22 03:56:56.000000000 +0200
+++ texinfo-6.5/contrib/fix-info-dir 2018-02-04 13:48:35.979359350 +0100
@@ -163,29 +163,23 @@
{
### output the dir header
- echo "-*- Text -*-"
- echo "This file was generated automatically by $0."
- echo "This version was generated on `date`"
- echo "by `whoami`@`hostname` for `pwd`"
cat<<DIR_FILE_END_OF_FILE
-This is the file .../info/$DIR_FILE, which contains the topmost node of the
-Info hierarchy. The first time you invoke Info you start off
-looking at that node, which is ($DIR_FILE)Top.
-
+This is the file .../info/$DIR_FILE, which contains the
+topmost node of the Info hierarchy, called ($DIR_FILE)Top.
+The first time you invoke Info you start off looking at this node.

-File: $DIR_FILE Node: Top This is the top of the INFO tree
+File: $DIR_FILE, Node: Top This is the top of the INFO tree
This (the Directory node) gives a menu of major topics.
- Typing "q" exits, "?" lists all Info commands, "d" returns here,
+ Typing "q" exits, "H" lists all Info commands, "d" returns here,
"h" gives a primer for first-timers,
- "mEmacs<Return>" visits the Emacs topic, etc.
+ "mEmacs<Return>" visits the Emacs manual, etc.
In Emacs, you can click mouse button 2 on a menu item or cross reference
to select it.
-* Menu: The list of major topics begins on the next line.
-
+* Menu:
DIR_FILE_END_OF_FILE
### go through the list of files in the skeleton. If an info file

22
info-dir Normal file
View File

@ -0,0 +1,22 @@
$Id: dir,v 1.2 1996/09/24 18:43:01 karl Exp $
This is the file .../info/dir, which contains the topmost node of the
Info hierarchy. The first time you invoke Info you start off
looking at that node, which is (dir)Top.

File: dir Node: Top This is the top of the INFO tree
This (the Directory node) gives a menu of major topics.
Typing "q" exits, "?" lists all Info commands, "d" returns here,
"h" gives a primer for first-timers,
"mEmacs<Return>" visits the Emacs topic, etc.
In Emacs, you can click mouse button 2 on a menu item or cross reference
to select it.
* Menu:
Texinfo documentation system
* Info: (info). Documentation browsing system.
Miscellaneous
* bash: (bash). The Bourne Again Shell.

View File

@ -1,15 +1,15 @@
%info_requires \
Requires(post): /sbin/install-info \
Requires(preun): /sbin/install-info
Requires(post): /usr/sbin/install-info \
Requires(preun): /usr/sbin/install-info
%info_post() \
if [ -f %{_infodir}/%1 ]; then # --excludedocs? \
/sbin/install-info %{_infodir}/%1 %{_infodir}/dir || : \
/usr/sbin/install-info %{_infodir}/%1 %{_infodir}/dir || : \
fi
%info_preun() \
if [ $1 == 0 ]; then \
if [ -f %{_infodir}/%1 ]; then # --excludedocs? \
/sbin/install-info --delete %{_infodir}/%1 %{_infodir}/dir || : \
/usr/sbin/install-info --delete %{_infodir}/%1 %{_infodir}/dir || : \
fi \
fi

View File

@ -1,2 +1,2 @@
SHA512 (texinfo-6.6.tar.xz) = 96e0764d0808152d3662e65c3287fb0f86ed918912cdc036380637dbadaacd6a489b516543c07b08105686575e8d495a945f73e23ff0909d5a0f12026e4131e0
SHA512 (texinfo-6.6.tar.xz.sig) = b4af1d28e4cc20b6e86255b907542122aa1da423652ea962b885b2f2d1cc135747d12c4eb78a24c25320b981e2448ce87f66bf9ac264527f989dc7439cefd03b
cb489df8a7ee9d10a236197aefdb32c5 texinfo-5.2.tar.xz
23be0c1d1ff653bc7599643e359ca1be texinfo-5.2.tar.xz.sig

View File

@ -1,7 +1,7 @@
diff -up texinfo-6.5.91/install-info/install-info.c.orig texinfo-6.5.91/install-info/install-info.c
--- texinfo-6.5.91/install-info/install-info.c.orig 2019-01-13 12:43:10.000000000 +0100
+++ texinfo-6.5.91/install-info/install-info.c 2019-01-14 09:31:45.322849494 +0100
@@ -19,6 +19,7 @@
diff -up texinfo-5.1/install-info/install-info.c.orig texinfo-5.1/install-info/install-info.c
--- texinfo-5.1/install-info/install-info.c.orig 2013-03-09 03:21:55.000000000 +0100
+++ texinfo-5.1/install-info/install-info.c 2013-03-18 12:47:02.721136885 +0100
@@ -22,6 +22,7 @@
#include <getopt.h>
#include <regex.h>
#include <argz.h>
@ -9,17 +9,16 @@ diff -up texinfo-6.5.91/install-info/install-info.c.orig texinfo-6.5.91/install-
#define TAB_WIDTH 8
@@ -681,15 +682,15 @@ The first time you invoke Info you start
@@ -670,7 +671,7 @@ The first time you invoke Info you start
Return either stdin reading the file, or a non-stdin pipe reading
the output of the compression program. */
MAGIC number, not the filename. */
-FILE *
+void *
open_possibly_compressed_file (char *filename,
void (*create_callback) (char *),
- char **opened_filename, char **compression_program)
+ char **opened_filename, char **compression_program, int *is_pipe)
{
char **opened_filename, char **compression_program, int *is_pipe)
@@ -678,7 +679,7 @@ open_possibly_compressed_file (char *fil
char *local_opened_filename, *local_compression_program;
int nread;
char data[13];
@ -28,7 +27,7 @@ diff -up texinfo-6.5.91/install-info/install-info.c.orig texinfo-6.5.91/install-
/* We let them pass NULL if they don't want this info, but it's easier
to always determine it. */
@@ -697,48 +698,48 @@ open_possibly_compressed_file (char *fil
@@ -686,48 +687,48 @@ open_possibly_compressed_file (char *fil
opened_filename = &local_opened_filename;
*opened_filename = filename;
@ -84,17 +83,17 @@ diff -up texinfo-6.5.91/install-info/install-info.c.orig texinfo-6.5.91/install-
+ f = gzopen (*opened_filename, FOPEN_RBIN);
}
#endif /* __MSDOS__ */
if (!f)
@@ -754,7 +755,7 @@ open_possibly_compressed_file (char *fil
(*create_callback) (filename);
/* And try opening it again. */
- f = fopen (*opened_filename, FOPEN_RBIN);
+ f = gzopen (*opened_filename, FOPEN_RBIN);
if (!f)
return 0;
}
@@ -764,26 +765,26 @@ open_possibly_compressed_file (char *fil
if (!f)
@@ -739,7 +740,7 @@ open_possibly_compressed_file (char *fil
/* And try opening it again. */
free (*opened_filename);
*opened_filename = filename;
- f = fopen (*opened_filename, FOPEN_RBIN);
+ f = gzopen (*opened_filename, FOPEN_RBIN);
if (!f)
pfatal_with_name (filename);
}
@@ -749,12 +750,12 @@ open_possibly_compressed_file (char *fil
/* Read first few bytes of file rather than relying on the filename.
If the file is shorter than this it can't be usable anyway. */
@ -103,100 +102,51 @@ diff -up texinfo-6.5.91/install-info/install-info.c.orig texinfo-6.5.91/install-
+ nread = gzread (f, data, sizeof (data));
+ if (nread != sizeof (data))
{
/* Empty files don't set errno, so we get something like
"install-info: No error for foo", which is confusing. */
- if (nread == 0)
+ if (nread >= 0)
{
/* Try to create the file if its empty. */
- if (feof (f) && create_callback)
+ if (gzeof (f) && create_callback)
{
- if (fclose (f) != 0)
+ if (gzclose (f) < 0)
return 0; /* unknown error closing file */
if (remove (filename) != 0)
return 0; /* unknown error deleting file */
(*create_callback) (filename);
- f = fopen (*opened_filename, FOPEN_RBIN);
+ f = gzopen (*opened_filename, FOPEN_RBIN);
if (!f)
return 0;
- nread = fread (data, sizeof (data), 1, f);
- if (nread == 0)
+ nread = gzread (f, data, sizeof (data));
+ if (nread <= 0)
return 0;
goto determine_file_type; /* success */
}
@@ -854,35 +855,40 @@ determine_file_type:
*compression_program = NULL;
/* Seek back over the magic bytes. */
- if (fseek (f, 0, 0) < 0)
+ if (gzseek (f, 0, SEEK_SET) == -1)
return 0;
fatal (_("%s: empty file"), *opened_filename);
pfatal_with_name (*opened_filename);
}
@@ -821,20 +822,22 @@ open_possibly_compressed_file (char *fil
if (*compression_program)
{ /* It's compressed, so open a pipe. */
{ /* It's compressed, so fclose the file and then open a pipe. */
+ FILE *p;
char *command = concat (*compression_program, " -d", "");
char *command = concat (*compression_program," -cd <", *opened_filename);
- if (fclose (f) < 0)
+ if (gzclose (f) < 0)
return 0;
- f = freopen (*opened_filename, FOPEN_RBIN, stdin);
- if (!f)
+ p = freopen (*opened_filename, FOPEN_RBIN, stdin);
+ if (!p)
return 0;
pfatal_with_name (*opened_filename);
- f = popen (command, "r");
- if (!f)
- if (f)
+ p = popen (command, "r");
+ if (!p)
{
/* Used for error message in calling code. */
*opened_filename = command;
return 0;
}
+ else
+ *is_pipe = 1;
+ if (p)
*is_pipe = 1;
else
pfatal_with_name (command);
+ return p;
}
else
{
{ /* It's a plain file, seek back over the magic bytes. */
- if (fseek (f, 0, 0) < 0)
+ if (gzseek (f, 0, SEEK_SET) < 0)
pfatal_with_name (*opened_filename);
-#if O_BINARY
+#if 0 && O_BINARY
/* Since this is a text file, and we opened it in binary mode,
switch back to text mode. */
f = freopen (*opened_filename, "r", f);
if (! f)
return 0;
#endif
+ *is_pipe = 0;
}
return f;
@@ -901,7 +907,8 @@ readfile (char *filename, int *sizep,
void (*create_callback) (char *), char **opened_filename,
@@ -859,7 +862,7 @@ readfile (char *filename, int *sizep,
char **compression_program)
{
char *real_name;
- FILE *f;
+ void *f;
+ int pipe_p;
int pipe_p;
int filled = 0;
int data_size = 8192;
char *data = xmalloc (data_size);
@@ -909,14 +916,20 @@ readfile (char *filename, int *sizep,
/* If they passed the space for the file name to return, use it. */
f = open_possibly_compressed_file (filename, create_callback,
opened_filename,
- compression_program);
+ compression_program,
+ &pipe_p);
if (!f)
return 0;
@@ -873,7 +876,12 @@ readfile (char *filename, int *sizep,
for (;;)
{
@ -208,24 +158,21 @@ diff -up texinfo-6.5.91/install-info/install-info.c.orig texinfo-6.5.91/install-
+ else
+ nread = gzread (f, data + filled, data_size - filled);
if (nread < 0)
return 0;
pfatal_with_name (real_name);
if (nread == 0)
@@ -935,8 +948,10 @@ readfile (char *filename, int *sizep,
/* We need to close the stream, since on some systems the pipe created
by popen is simulated by a temporary file which only gets removed
inside pclose. */
- if (f != stdin)
+ if (pipe_p)
@@ -895,7 +903,7 @@ readfile (char *filename, int *sizep,
if (pipe_p)
pclose (f);
+ else
else
- fclose (f);
+ gzclose (f);
*sizep = filled;
return data;
diff -up texinfo-6.5.91/install-info/Makefile.in.orig texinfo-6.5.91/install-info/Makefile.in
--- texinfo-6.5.91/install-info/Makefile.in.orig 2019-01-14 09:32:31.729895052 +0100
+++ texinfo-6.5.91/install-info/Makefile.in 2019-01-14 09:32:52.574914503 +0100
@@ -218,7 +218,7 @@ am__installdirs = "$(DESTDIR)$(bindir)"
diff -up texinfo-5.1/install-info/Makefile.in.orig texinfo-5.1/install-info/Makefile.in
--- texinfo-5.1/install-info/Makefile.in.orig 2013-03-12 23:56:43.000000000 +0100
+++ texinfo-5.1/install-info/Makefile.in 2013-03-18 12:42:57.165767101 +0100
@@ -171,7 +171,7 @@ am__installdirs = "$(DESTDIR)$(bindir)"
PROGRAMS = $(bin_PROGRAMS)
am_ginstall_info_OBJECTS = install-info.$(OBJEXT)
ginstall_info_OBJECTS = $(am_ginstall_info_OBJECTS)
@ -233,4 +180,4 @@ diff -up texinfo-6.5.91/install-info/Makefile.in.orig texinfo-6.5.91/install-inf
+ginstall_info_LDADD = $(LDADD) -lz
am__DEPENDENCIES_1 =
ginstall_info_DEPENDENCIES = $(top_builddir)/gnulib/lib/libgnu.a \
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
$(am__DEPENDENCIES_1)

View File

@ -0,0 +1,12 @@
diff -up texinfo-5.1/install-info/install-info.c.orig texinfo-5.1/install-info/install-info.c
--- texinfo-5.1/install-info/install-info.c.orig 2013-03-18 12:37:15.375860494 +0100
+++ texinfo-5.1/install-info/install-info.c 2013-03-18 12:37:42.589012295 +0100
@@ -835,7 +835,7 @@ open_possibly_compressed_file (char *fil
}
else
{ /* It's a plain file, seek back over the magic bytes. */
- if (gzseek (f, 0, SEEK_SET) < 0)
+ if (gzseek (f, 0, SEEK_SET) == -1)
pfatal_with_name (*opened_filename);
#if 0 && O_BINARY
/* Since this is a text file, and we opened it in binary mode,

View File

@ -0,0 +1,195 @@
Index: info/nodes.c
===================================================================
--- info/nodes.c (revision 5245)
+++ info/nodes.c (revision 5246)
@@ -563,6 +563,7 @@
/* Okay, we have isolated the node name, and we know where the
node starts. Remember this information. */
entry = xmalloc (sizeof (TAG));
+ entry->content_cache = NULL;
entry->nodename = xmalloc (1 + (end - start));
strncpy (entry->nodename, nodeline + start, end - start);
entry->nodename[end - start] = 0;
@@ -667,6 +668,7 @@
break;
entry = xmalloc (sizeof (TAG));
+ entry->content_cache = NULL;
/* Find the beginning of the node definition. */
tmp_search->start += name_offset;
@@ -981,7 +983,12 @@
node->filename = subfile->fullpath;
node->parent = NULL;
node->nodename = tag->nodename;
- node->contents = subfile->contents + tag->nodestart;
+
+ if (tag->content_cache)
+ node->contents = tag->content_cache;
+ else
+ node->contents = subfile->contents + tag->nodestart;
+
node->display_pos = 0;
node->flags = 0;
node_set_body_start (node);
@@ -1049,6 +1056,12 @@
node_body.end = buff_end - node_body.buffer;
node_body.flags = 0;
tag->nodelen = get_node_length (&node_body);
+ /* Expand eventual \b[...\b] constructs in the contents.
+ If found, update node->contents to point to the resulting
+ buffer. */
+ if (tags_expand (node->contents, tag->nodelen,
+ &tag->content_cache, &tag->nodelen))
+ node->contents = tag->content_cache;
node->nodelen = tag->nodelen;
}
else if (tag->nodelen == 0) /* anchor, return containing node */
@@ -1173,7 +1186,8 @@
free_info_tag (TAG *tag)
{
free (tag->nodename);
-
+ free (tag->content_cache);
+
/* We don't free tag->filename, because that filename is part of the
subfiles list for the containing FILE_BUFFER. free_info_tags ()
will free the subfiles when it is appropriate. */
Index: info/tag.c
===================================================================
--- info/tag.c (revision 5245)
+++ info/tag.c (revision 5246)
@@ -113,6 +113,8 @@
if (state == state_delim)
continue;
}
+ else if (state == state_delim)
+ state = state_kw;
cur_len = mb_len (mbi_cur (iter));
cur_ptr = mbi_cur_ptr (iter);
@@ -125,6 +127,8 @@
switch (*cur_ptr)
{
case '=':
+ if (state != state_kw)
+ break;
text_buffer_add_char (&tmpbuf, 0);
kw = tmpbuf.base;
if (!mbi_avail (iter))
@@ -197,22 +201,29 @@
return NULL;
}
-void
-tags_expand (char **pbuf, size_t *pbuflen)
+/* Expand \b[...\b] constructs in INPUT (of INPUTLEN bytes). If encountered,
+ put the expanded text into PBUF, store its length in PBUFLEN, and return
+ 1. Otherwise, don't touch neither of the latter and return 0. */
+int
+tags_expand (char *input, size_t inputlen, char **pbuf, size_t *pbuflen)
{
- char *input = *pbuf;
- char *endp = input + *pbuflen;
+ char *endp = input + inputlen;
struct text_buffer outbuf;
+ int text_buffer_used = 0;
char *p;
- text_buffer_init (&outbuf);
-
while ((p = input + strlen (input)) < endp) /* go forward to null */
{
if (memcmp(p + 1, "\b[", 2) == 0) /* opening magic? */
{
char *q;
+ if (!text_buffer_used)
+ {
+ text_buffer_init (&outbuf);
+ text_buffer_used = 1;
+ }
+
p += 3;
q = p + strlen (p); /* forward to next null */
if (memcmp (q + 1, "\b]", 2) == 0) /* closing magic? */
@@ -227,10 +238,7 @@
while (p[len] == ' ' || p[len] == '\t')
++len; /* move past whitespace */
- if (!text_buffer_off (&outbuf))
- text_buffer_add_string (&outbuf, *pbuf, p - *pbuf - 3);
- else
- text_buffer_add_string (&outbuf, input, p - input - 3);
+ text_buffer_add_string (&outbuf, input, p - input - 3);
if (tp->handler (p + len, &outbuf) == 0)
{
input = q + 3;
@@ -240,21 +248,21 @@
}
}
- if (text_buffer_off (&outbuf))
- {
- text_buffer_add_string (&outbuf, input, p - input);
- }
+ if (text_buffer_used)
+ text_buffer_add_string (&outbuf, input, p - input);
+
input = p + 1;
}
- if (text_buffer_off (&outbuf))
+ if (text_buffer_used && text_buffer_off (&outbuf))
{
if (input < endp)
text_buffer_add_string (&outbuf, input, endp - input);
- free (*pbuf);
*pbuflen = text_buffer_off (&outbuf);
*pbuf = text_buffer_base (&outbuf);
+ return 1;
}
+ return 0;
}
void
Index: info/nodes.h
===================================================================
--- info/nodes.h (revision 5245)
+++ info/nodes.h (revision 5246)
@@ -90,6 +90,9 @@
char *nodename; /* The node pointed to by this tag. */
long nodestart; /* The offset of the start of this node. */
long nodelen; /* The length of this node. */
+ char *content_cache; /* Cache of the node contents; used if the
+ node contents must be preprocessed before
+ displaying it. */
} TAG;
/* The following structure is used to remember information about the contents
Index: info/filesys.c
===================================================================
--- info/filesys.c (revision 5245)
+++ info/filesys.c (revision 5246)
@@ -645,8 +645,6 @@
files are coming from some Windows system across a network. */
fsize = convert_eols (contents, fsize);
- tags_expand (&contents, &fsize);
-
/* EOL conversion can shrink the text quite a bit. We don't
want to waste storage. */
contents = xrealloc (contents, 1 + fsize);
Index: info/tag.h
===================================================================
--- info/tag.h (revision 5245)
+++ info/tag.h (revision 5246)
@@ -19,7 +19,7 @@
#ifndef TAG_H
#define TAG_H
-void tags_expand (char **pbuf, size_t *pbuflen);
+int tags_expand (char *input, size_t inputlen, char **pbuf, size_t *pbuflen);
void handle_tag (char *tag);
#endif

View File

@ -0,0 +1,11 @@
diff -up texinfo-5.2/info/infomap.c.orig texinfo-5.2/info/infomap.c
--- texinfo-5.2/info/infomap.c.orig 2015-09-15 10:40:14.464877073 +0200
+++ texinfo-5.2/info/infomap.c 2015-09-15 10:40:35.269964560 +0200
@@ -297,6 +297,7 @@ static unsigned char default_emacs_like_
CONTROL('f'), NUL, A_info_forward_char,
CONTROL('h'), NUL, A_info_get_help_window,
CONTROL('l'), NUL, A_info_redraw_display,
+ CONTROL('n'), NUL, A_info_next_line,
CONTROL('p'), NUL, A_info_prev_line,
CONTROL('r'), NUL, A_isearch_backward,
CONTROL('s'), NUL, A_isearch_forward,

View File

@ -0,0 +1,18 @@
diff -up texinfo-5.2/info/info.c.orig texinfo-5.2/info/info.c
--- texinfo-5.2/info/info.c.orig 2014-01-16 08:55:50.084084818 +0100
+++ texinfo-5.2/info/info.c 2014-01-16 08:55:55.464112252 +0100
@@ -859,7 +859,13 @@ show_error_node (NODE *node)
{
if (info_error_rings_bell_p)
terminal_ring_bell ();
- if (!echo_area_is_active)
+ if (user_output_filename)
+ {
+ if (node->contents[node->nodelen - 1] == '\n')
+ node->contents[node->nodelen - 1] = 0;
+ info_error ("%s", node->contents);
+ }
+ else if (!echo_area_is_active)
{
free_echo_area ();
window_set_node_of_window (the_echo_area, node);

View File

@ -1,25 +0,0 @@
diff -up texinfo-6.5.92/install-info/tests/Makefile.in.orig texinfo-6.5.92/install-info/tests/Makefile.in
--- texinfo-6.5.92/install-info/tests/Makefile.in.orig 2019-02-01 16:16:49.000000000 +0100
+++ texinfo-6.5.92/install-info/tests/Makefile.in 2019-02-18 10:33:52.078877104 +0100
@@ -1229,8 +1229,8 @@ ii-0021-test ii-0022-test ii-0023-test i
ii-0026-test ii-0027-test ii-0028-test ii-0029-test ii-0030-test \
ii-0031-test ii-0032-test ii-0033-test ii-0034-test ii-0035-test \
ii-0036-test ii-0037-test ii-0038-test ii-0039-test ii-0040-test \
-ii-0041-test ii-0042-test ii-0043-test ii-0044-test ii-0045-test \
-ii-0046-test ii-0047-test ii-0048-test ii-0049-test ii-0050-test \
+ii-0042-test ii-0043-test ii-0044-test ii-0045-test \
+ii-0046-test ii-0047-test ii-0048-test ii-0049-test \
ii-0051-test ii-0052-test ii-0053-test ii-0054-test ii-0055-test \
ii-0056-test ii-0057-test
diff -up texinfo-6.5.92/tp/tests/Makefile.in.orig texinfo-6.5.92/tp/tests/Makefile.in
--- texinfo-6.5.92/tp/tests/Makefile.in.orig 2019-02-01 16:16:50.000000000 +0100
+++ texinfo-6.5.92/tp/tests/Makefile.in 2019-02-18 10:33:13.774827269 +0100
@@ -1374,7 +1374,6 @@ one_test_files_generated_list = \
test_scripts/layout_formatting_html32.sh \
test_scripts/layout_formatting_regions.sh \
test_scripts/layout_formatting_exotic.sh \
- test_scripts/layout_formatting_fr_icons.sh \
test_scripts/layout_formatting_chm.sh \
test_scripts/layout_formatting_nodes.sh \
test_scripts/layout_formatting.sh \

View File

@ -1,44 +0,0 @@
diff -up texinfo-6.1/install-info/install-info.c.orig texinfo-6.1/install-info/install-info.c
--- texinfo-6.1/install-info/install-info.c.orig 2016-06-22 09:49:38.766013018 +0200
+++ texinfo-6.1/install-info/install-info.c 2016-06-22 14:11:58.673780736 +0200
@@ -973,18 +973,23 @@ output_dirfile (char *dirfile, int dir_n
int n_entries_added = 0;
int i;
FILE *output;
+ char *dirfile_tmp = NULL;
+
+ asprintf (&dirfile_tmp, "%s.tmp", dirfile);
+ if (!dirfile_tmp)
+ xalloc_die ();
if (compression_program)
{
- char *command = concat (compression_program, ">", dirfile);
+ char *command = concat (compression_program, ">", dirfile_tmp);
output = popen (command, "w");
}
else
- output = fopen (dirfile, "w");
+ output = fopen (dirfile_tmp, "w");
if (!output)
{
- perror (dirfile);
+ perror (dirfile_tmp);
exit (EXIT_FAILURE);
}
@@ -1095,6 +1100,13 @@ output_dirfile (char *dirfile, int dir_n
pclose (output);
else
fclose (output);
+
+ if (rename (dirfile_tmp, dirfile) < 0)
+ {
+ perror (dirfile_tmp);
+ exit (EXIT_FAILURE);
+ }
+ free (dirfile_tmp);
}
/* Read through the input LINES, to find the section names and the

View File

@ -1,168 +0,0 @@
diff -up texinfo-6.5.91/contrib/fix-info-dir.p7 texinfo-6.5.91/contrib/fix-info-dir
--- texinfo-6.5.91/contrib/fix-info-dir.p7 2019-01-21 10:52:18.453973008 +0100
+++ texinfo-6.5.91/contrib/fix-info-dir 2019-01-21 10:52:18.456973012 +0100
@@ -28,7 +28,6 @@ if test -z "$LINENO"; then
fi
MENU_BEGIN='^\*\([ ]\)\{1,\}Menu:'
-MENU_ITEM='^\* ([^ ]).*:([ ])+\('
MENU_FILTER1='s/^\*\([ ]\)\{1,\}/* /'
MENU_FILTER2='s/\([ ]\)\{1,\}$//g'
diff -up texinfo-6.5.91/info/infomap.c.p7 texinfo-6.5.91/info/infomap.c
--- texinfo-6.5.91/info/infomap.c.p7 2019-01-13 12:43:10.000000000 +0100
+++ texinfo-6.5.91/info/infomap.c 2019-01-21 10:52:18.457973013 +0100
@@ -589,6 +589,7 @@ fetch_user_maps (char *init_file)
compile (inf, filename, &sup_info, &sup_ea);
free (filename);
+ fclose (inf);
return 1;
}
diff -up texinfo-6.5.91/info/makedoc.c.p7 texinfo-6.5.91/info/makedoc.c
--- texinfo-6.5.91/info/makedoc.c.p7 2019-01-13 12:43:10.000000000 +0100
+++ texinfo-6.5.91/info/makedoc.c 2019-01-21 10:52:18.457973013 +0100
@@ -425,7 +425,11 @@ process_one_file (char *filename, FILE *
offset++;
if (offset >= file_size)
- break;
+ {
+ free (func_name);
+ free (func);
+ break;
+ }
doc = xmalloc (1 + (offset - point));
strncpy (doc, buffer + point, offset - point);
diff -up texinfo-6.5.91/info/m-x.c.p7 texinfo-6.5.91/info/m-x.c
--- texinfo-6.5.91/info/m-x.c.p7 2019-01-13 12:43:10.000000000 +0100
+++ texinfo-6.5.91/info/m-x.c 2019-01-21 10:52:18.457973013 +0100
@@ -79,7 +79,10 @@ DECLARE_INFO_COMMAND (describe_command,
InfoCommand *cmd = named_function (line);
if (!cmd)
- return;
+ {
+ free (line);
+ return;
+ }
window_message_in_echo_area ("%s: %s.",
line, function_documentation (cmd));
diff -up texinfo-6.5.91/info/nodes.c.p7 texinfo-6.5.91/info/nodes.c
--- texinfo-6.5.91/info/nodes.c.p7 2019-01-13 12:43:10.000000000 +0100
+++ texinfo-6.5.91/info/nodes.c 2019-01-21 10:52:18.457973013 +0100
@@ -303,7 +303,10 @@ get_nodes_of_tags_table (FILE_BUFFER *fi
for (p = 0; nodedef[p] && nodedef[p] != INFO_TAGSEP; p++)
;
if (nodedef[p] != INFO_TAGSEP)
- continue;
+ {
+ free (entry);
+ continue;
+ }
entry->nodename = xmalloc (p + 1);
strncpy (entry->nodename, nodedef, p);
@@ -477,6 +480,7 @@ get_tags_of_indirect_tags_table (FILE_BU
}
file_buffer->subfiles = NULL;
free_file_buffer_tags (file_buffer);
+ free (subfiles);
return;
}
diff -up texinfo-6.5.91/info/session.c.p7 texinfo-6.5.91/info/session.c
--- texinfo-6.5.91/info/session.c.p7 2019-01-13 12:43:10.000000000 +0100
+++ texinfo-6.5.91/info/session.c 2019-01-21 10:52:18.458973014 +0100
@@ -3552,6 +3552,7 @@ DECLARE_INFO_COMMAND (info_goto_invocati
if (!line)
{
info_abort_key (window, 0);
+ free (default_program_name);
return;
}
if (*line)
diff -up texinfo-6.5.91/info/variables.c.p7 texinfo-6.5.91/info/variables.c
--- texinfo-6.5.91/info/variables.c.p7 2019-01-13 12:43:10.000000000 +0100
+++ texinfo-6.5.91/info/variables.c 2019-01-21 10:52:18.459973015 +0100
@@ -359,6 +359,7 @@ read_variable_name (char *prompt, WINDOW
{
char *line;
REFERENCE **variables;
+ VARIABLE_ALIST *alist;
/* Get the completion array of variable names. */
variables = make_variable_completions_array ();
@@ -382,7 +383,9 @@ read_variable_name (char *prompt, WINDOW
return NULL;
}
- return variable_by_name (line);
+ alist = variable_by_name (line);
+ free (line);
+ return alist;
}
/* Make an array of REFERENCE which actually contains the names of the
diff -up texinfo-6.5.91/install-info/install-info.c.p7 texinfo-6.5.91/install-info/install-info.c
--- texinfo-6.5.91/install-info/install-info.c.p7 2019-01-21 10:52:18.447973002 +0100
+++ texinfo-6.5.91/install-info/install-info.c 2019-01-21 10:52:18.460973016 +0100
@@ -864,10 +864,16 @@ determine_file_type:
char *command = concat (*compression_program, " -d", "");
if (gzclose (f) < 0)
- return 0;
+ {
+ free (command);
+ return 0;
+ }
p = freopen (*opened_filename, FOPEN_RBIN, stdin);
if (!p)
- return 0;
+ {
+ free (command);
+ return 0;
+ }
p = popen (command, "r");
if (!p)
{
@@ -877,6 +883,7 @@ determine_file_type:
}
else
*is_pipe = 1;
+ free (command);
return p;
}
else
@@ -920,7 +927,10 @@ readfile (char *filename, int *sizep,
&pipe_p);
if (!f)
- return 0;
+ {
+ free (data);
+ return 0;
+ }
for (;;)
{
@@ -980,6 +990,7 @@ output_dirfile (char *dirfile, int dir_n
{
char *command = concat (compression_program, ">", dirfile_tmp);
output = popen (command, "w");
+ free (command);
}
else
output = fopen (dirfile_tmp, "w");
@@ -1721,6 +1732,8 @@ reformat_new_entries (struct spec_entry
format_entry (name, name_len, desc, desc_len, calign, align,
maxwidth, &entry->text, &entry->text_len);
+ free (desc);
+ free (name);
}
}

View File

@ -1,41 +0,0 @@
This fixes two issues:
https://bugzilla.redhat.com/show_bug.cgi?id=1592433
This is a bug in fix-info-dir --delete
(Hunk 3)
https://bugzilla.redhat.com/show_bug.cgi?id=1614162
This is a weird infinite loop that happens when fix-info-dir is run with stderr
redirected to /dev/null while /dev/null doesn't exist (or isn't a device)
(Hunks 1 and 2)
diff --git a/contrib/fix-info-dir b/contrib/fix-info-dir
index 4439ada..9240060 100755
--- a/contrib/fix-info-dir
+++ b/contrib/fix-info-dir
@@ -124,6 +124,7 @@ if test "$CREATE_NODE"; then
fi
shift
else
+ SKIP_READ=yes
SKELETON=/dev/null
fi
@@ -188,7 +189,7 @@ DIR_FILE_END_OF_FILE
# Read one line from the file. This is so that we can echo lines with
# whitespace and quoted characters in them.
- while read fileline; do
+ while test -z "$SKIP_READ" && read fileline; do
# flag fancy features
if test ! -z "$echoline"; then # echo line
echo "$fileline"
@@ -294,7 +295,7 @@ else
DONE_MSG="total invalid menu item(s) were removed from `pwd`/$DIR_FILE"
for Info_Name in `comm -23 $TMP_FILE1 $TMP_FILE2`; do
Changed="y"
- if install-info --remove $Info_Name $DIR_FILE; then
+ if install-info --remove --remove-exactly $Info_Name $DIR_FILE; then
Total=`expr "$Total" + "1"`
fi
done

View File

@ -1,34 +1,38 @@
%global _use_internal_dependency_generator 0
%global tex_texinfo %{_datadir}/texmf/tex/texinfo
Summary: Tools needed to create Texinfo format documentation files
Name: texinfo
Version: 6.6
Release: 2%{?dist}
Version: 5.2
Release: 9%{?dist}
License: GPLv3+
Group: Applications/Publishing
Url: http://www.gnu.org/software/texinfo/
Source0: ftp://ftp.gnu.org/gnu/texinfo/texinfo-%{version}.tar.xz
Source1: ftp://ftp.gnu.org/gnu/texinfo/texinfo-%{version}.tar.xz.sig
Source2: info-dir
# Source3: script for filtering out false perl requires
Source3: filter-requires-texinfo.sh
# Source4: script for filtering out false perl provides
Source4: filter-provides-texinfo.sh
# Source5: macro definitions
Source5: macros.info
Patch0: texinfo-4.12-zlib.patch
# Patch1: this is needed just for koji/mock, all tests pass fine in local build
Patch1: texinfo-6.0-disable-failing-info-test.patch
# Patch2: rhbz#1348671, because of OSTree
Patch2: texinfo-6.1-install-info-use-create-tmp-then-rename-pattern.patch
# Patch3: we need to fix template fix-info-dir generates
Patch3: info-6.5-sync-fix-info-dir.patch
# Patch4: rhbz#1592433, bug in fix-info-dir --delete
Patch4: texinfo-6.5-fix-info-dir.patch
# Patch5: fixes issues detected by static analysis
Patch5: texinfo-6.5-covscan-fixes.patch
BuildRequires: gcc
BuildRequires: perl-generators
Patch1: texinfo-4.13a-powerpc.patch
# Patch2: bz#1053129, already upstream
Patch2: texinfo-5.2-non-existing-info-page-segfault.patch
# Patch3: bz#1257370, already upstream
Patch3: texinfo-5.2-missing-c-n-binding.patch
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
Requires: perl >= 5.7.3, perl(Text::Unidecode)
Requires: perl(Unicode::EastAsianWidth), perl(Data::Dumper), perl(Locale::Messages)
BuildRequires: zlib-devel, ncurses-devel, help2man, perl(Data::Dumper)
BuildRequires: perl(Locale::Messages), perl(Unicode::EastAsianWidth), perl(Text::Unidecode)
BuildRequires: perl(Storable)
# Texinfo perl packages are not installed in default perl library dirs
%global __provides_exclude ^perl\\(.*Texinfo.*\\)$
%global __requires_exclude ^perl\\(.*Texinfo.*\\)$
%global __find_requires %{SOURCE3}
%global __find_provides %{SOURCE4}
%description
Texinfo is a documentation system that can produce both online
@ -41,6 +45,7 @@ are going to write documentation for the GNU Project.
%package -n info
Summary: A stand-alone TTY-based reader for GNU texinfo documentation
Group: System Environment/Base
%description -n info
The GNU project uses the texinfo file format for much of its
@ -49,6 +54,7 @@ browser program for viewing texinfo files.
%package tex
Summary: Tools for formatting Texinfo documentation files using TeX
Group: Applications/Publishing
Requires: texinfo = %{version}-%{release}
Requires: tex(tex) tex(epsf.tex)
Requires(post): %{_bindir}/texconfig-sys
@ -63,33 +69,66 @@ The texinfo-tex package provides tools to format Texinfo documents
for printing using TeX.
%prep
%autosetup -p1
%setup -q
%patch0 -p1 -b .zlib
%patch1 -p1 -b .powerpc
%patch2 -p1 -b .non-existing-info-page-segfault
%patch3 -p1 -b .missing-c-n-binding
%build
%configure --with-external-Text-Unidecode \
--with-external-libintl-perl \
--with-external-Unicode-EastAsianWidth \
--disable-perl-xs
%make_build
--with-external-Unicode-EastAsianWidth
make %{?_smp_mflags}
%install
mkdir -p ${RPM_BUILD_ROOT}/sbin
%make_install
make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p'
mkdir -p $RPM_BUILD_ROOT%{tex_texinfo}
install -p -m644 doc/texinfo.tex doc/txi-??.tex $RPM_BUILD_ROOT%{tex_texinfo}
install -p -m644 %{SOURCE2} $RPM_BUILD_ROOT%{_infodir}/dir
mv $RPM_BUILD_ROOT%{_bindir}/install-info $RPM_BUILD_ROOT/sbin
install -Dpm0755 -t %{buildroot}%{_sbindir} contrib/fix-info-dir
mkdir -p $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d
cp %{SOURCE5} $RPM_BUILD_ROOT%{_rpmconfigdir}/macros.d
%find_lang %{name}
%find_lang %{name}_document
%check
export ALL_TESTS=yes
%make_build check
make %{?_smp_mflags} check
%post
if [ -f %{_infodir}/texinfo.gz ]; then # --excludedocs?
/sbin/install-info %{_infodir}/texinfo.gz %{_infodir}/dir || :
fi
%preun
if [ $1 = 0 ]; then
if [ -f %{_infodir}/texinfo.gz ]; then # --excludedocs?
/sbin/install-info --delete %{_infodir}/texinfo.gz %{_infodir}/dir || :
fi
fi
%post -n info
if [ -f %{_infodir}/info-stnd.info ]; then # --excludedocs?
/sbin/install-info %{_infodir}/info-stnd.info %{_infodir}/dir
fi
if [ -x /bin/sed ]; then
/bin/sed -i '/^This is.*produced by makeinfo.*from/d' %{_infodir}/dir || :
fi
%preun -n info
if [ $1 = 0 ]; then
if [ -f %{_infodir}/info-stnd.info ]; then # --excludedocs?
/sbin/install-info --delete %{_infodir}/info-stnd.info %{_infodir}/dir \
|| :
fi
fi
%post tex
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
@ -97,15 +136,10 @@ export ALL_TESTS=yes
%postun tex
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
%transfiletriggerin -n info -- %{_infodir}
[ -f %{_infodir}/dir ] && create_arg="" || create_arg="--create"
%{_sbindir}/fix-info-dir $create_arg %{_infodir}/dir &>/dev/null
%transfiletriggerpostun -n info -- %{_infodir}
[ -f %{_infodir}/dir ] && %{_sbindir}/fix-info-dir --delete %{_infodir}/dir &>/dev/null
%files -f %{name}.lang -f %{name}_document.lang
%doc AUTHORS ChangeLog NEWS README TODO
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_bindir}/makeinfo
%{_bindir}/texi2any
@ -118,16 +152,19 @@ export ALL_TESTS=yes
%{_mandir}/man1/pod2texi.1*
%files -n info
%config(noreplace) %verify(not md5 size mtime) %{_infodir}/dir
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_bindir}/info
%{_bindir}/infokey
%{_infodir}/info.info*
%{_infodir}/info-stnd.info*
/sbin/install-info
%{_sbindir}/fix-info-dir
%{_mandir}/man1/info.1*
%{_mandir}/man1/infokey.1*
%{_mandir}/man1/install-info.1*
%{_mandir}/man5/info.5*
%ghost %{_infodir}/dir
%ghost %{_infodir}/dir.old
%{_rpmconfigdir}/macros.d/macros.info
%files tex
%{_bindir}/texindex
@ -141,116 +178,9 @@ export ALL_TESTS=yes
%{_mandir}/man1/pdftexi2dvi.1*
%changelog
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Feb 18 2019 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.6-1
- Update to texinfo-6.6
Resolves: #1677911
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Oct 04 2018 Jason L Tibbitts III <tibbs@math.uh.edu> - 6.5-11
- Fix another issue in fix-info-dir which could lead to an infinite loop in odd
circumstances.
Resolves: #1614162
* Thu Aug 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6.5-10
- Drop macros.info
* Wed Aug 08 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-9
- Fix issues detected by static analysis
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri Jun 29 2018 Jitka Plesnikova <jplesnik@redhat.com> - 6.5-7
- Perl 5.28 rebuild
* Thu Jun 21 2018 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-6
- Fix fail of test because of unescaped left brace with Perl 5.28
(patch by Jitka Plesnikova)
Resolves: #1590308
* Tue Jun 19 2018 Jason L Tibbitts III <tibbs@math.uh.edu> - 6.5-5
- Fix bug in fix-info-dir which prevented the transfiletriggerpostun script
from working properly.
* Fri Mar 30 2018 Tom Callaway <spot@fedoraproject.org> - 6.5-4
- update texinfo.tex
* Tue Feb 13 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6.5-3
- Implement transaction filetriggers for crating info/dir
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Sep 13 2017 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.5-1
- Update to texinfo-6.5
Resolves: #1491075
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.4-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jul 13 2017 Petr Pisar <ppisar@redhat.com> - 6.4-3
- perl dependency renamed to perl-interpreter
<https://fedoraproject.org/wiki/Changes/perl_Package_to_Install_Core_Modules>
* Mon Jul 10 2017 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.4-2
- Fix broken reference following when the reference is split to
more than one line
- Fix possible incorrect selection of already loaded file when
following cross reference
Resolves: #1383057
* Tue Jun 27 2017 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.4-1
- Update to texinfo-6.4
Resolves: #1464624
* Mon Mar 13 2017 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.3-3
- Fix path to install-info in macros.info
Resolves: #1419246
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Mon Sep 19 2016 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.3-1
- Update to texinfo-6.3
Resolves: #1374962
* Wed Jun 22 2016 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.1-3
- install-info: use create-tmp-then-rename pattern because of OSTree
(patch by Colin Walters)
Resolves: #1348671
* Wed Feb 24 2016 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.1-2
- Fix texi2dvi exits without completing the task
Resolves: #1309702
* Thu Feb 11 2016 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.1-1
- Update to texinfo-6.1
Resolves: #1305316
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 6.0-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Sun Aug 9 2015 Orion Poplawski <orion@cora.nwra.com> - 6.0-2
- Add BR on perl(Storable), fix perl requires (bug #1251766)
* Tue Jul 14 2015 Vitezslav Crhonek <vcrhonek@redhat.com> - 6.0-1
- Update to texinfo-6.0
Resolves: #1236254
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 5.2-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat Feb 21 2015 Till Maas <opensource@till.name> - 5.2-9
- Rebuilt for Fedora 23 Change
https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code
* Tue Sep 15 2015 Vitezslav Crhonek <vcrhonek@redhat.com> - 5.2-9
- Fix missing C-n binding in info
Resolves: #1257370
* Mon Feb 02 2015 Vitezslav Crhonek <vcrhonek@redhat.com> - 5.2-8
- Add macros.info