Package init
This commit is contained in:
commit
b2eee66d4d
29
Avoid-memory-leak-for-malformed-files.patch
Normal file
29
Avoid-memory-leak-for-malformed-files.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 6c0ec277c393a7fe7149a1dadc1ae20540884cbf Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||||
|
Date: Fri, 28 Dec 2018 12:08:56 +0000
|
||||||
|
Subject: [PATCH 504/759] Avoid memory leak for malformed files.
|
||||||
|
|
||||||
|
* info/nodes.c (info_load_file): Free 'contents' and 'encoding'
|
||||||
|
fields of file structure in case the node table couldn't be
|
||||||
|
built.
|
||||||
|
---
|
||||||
|
ChangeLog | 8 ++++++++
|
||||||
|
info/nodes.c | 2 ++
|
||||||
|
2 files changed, 10 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/info/nodes.c b/info/nodes.c
|
||||||
|
index 8b0f7c45e..860383436 100644
|
||||||
|
--- a/info/nodes.c
|
||||||
|
+++ b/info/nodes.c
|
||||||
|
@@ -735,6 +735,8 @@ info_load_file (char *fullpath, int is_subfile)
|
||||||
|
{
|
||||||
|
free (file_buffer->fullpath);
|
||||||
|
free (file_buffer->filename);
|
||||||
|
+ free (file_buffer->contents);
|
||||||
|
+ free (file_buffer->encoding);
|
||||||
|
free (file_buffer);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
40
Fix-call-to-info_find_file.patch
Normal file
40
Fix-call-to-info_find_file.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From cba0a8d34617044b14f881880c0b7d09cd7c8fce Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||||
|
Date: Fri, 28 Dec 2018 11:26:54 +0000
|
||||||
|
Subject: [PATCH 503/759] Fix call to info_find_file.
|
||||||
|
|
||||||
|
* info/nodes.c (info_get_nodes_with_defaults): Restore the value
|
||||||
|
of the 'fullpath' field of a file structure before calling
|
||||||
|
info_find_file. Otherwise, info_find_file will not recognize
|
||||||
|
that a file has been loaded, and load it again. This can lead
|
||||||
|
to a file buffer being freed incorrectly in
|
||||||
|
gc_file_buffers_and_nodes, leading to a segmentation fault.
|
||||||
|
Segmentation fault reported by Keith Thompson.
|
||||||
|
---
|
||||||
|
ChangeLog | 12 ++++++++++++
|
||||||
|
info/nodes.c | 4 ++--
|
||||||
|
2 files changed, 14 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/info/nodes.c b/info/nodes.c
|
||||||
|
index d576134cf..8b0f7c45e 100644
|
||||||
|
--- a/info/nodes.c
|
||||||
|
+++ b/info/nodes.c
|
||||||
|
@@ -945,13 +945,13 @@ info_get_node_with_defaults (char *filename_in, char *nodename_in,
|
||||||
|
{
|
||||||
|
saved_char = *p;
|
||||||
|
*p = 0;
|
||||||
|
-
|
||||||
|
file_in_same_dir = info_add_extension (defaults->fullpath,
|
||||||
|
filename, 0);
|
||||||
|
+ *p = saved_char;
|
||||||
|
+
|
||||||
|
if (file_in_same_dir)
|
||||||
|
file_buffer = info_find_file (file_in_same_dir);
|
||||||
|
free (file_in_same_dir);
|
||||||
|
- *p = saved_char;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
35
Fix-day-one-bug-handling-as-command-character.patch
Normal file
35
Fix-day-one-bug-handling-as-command-character.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
From b95ad570e3d31cbdef5d4a6bc164c97e716602d0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Arnold D. Robbins" <arnold@skeeve.com>
|
||||||
|
Date: Wed, 6 Mar 2019 21:17:55 +0200
|
||||||
|
Subject: [PATCH 707/759] Fix day one bug handling @ as command character.
|
||||||
|
|
||||||
|
---
|
||||||
|
texindex/ti.twjr | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/texindex/ti.twjr b/texindex/ti.twjr
|
||||||
|
index ec59f68a5..45aa60e48 100644
|
||||||
|
--- a/texindex/ti.twjr
|
||||||
|
+++ b/texindex/ti.twjr
|
||||||
|
@@ -412,7 +412,8 @@ The first character must be either @samp{\} or @samp{@@}
|
||||||
|
|
||||||
|
@cindex @code{Special_chars} variable
|
||||||
|
@code{Special_chars} are the two characters that must be preceded by
|
||||||
|
-the command character inside the first key.
|
||||||
|
+the command character inside the first key. This includes the command
|
||||||
|
+character itself.
|
||||||
|
|
||||||
|
@cindex @code{beginfile()} function
|
||||||
|
@cindex @code{Output_file} variable
|
||||||
|
@@ -443,7 +444,7 @@ function beginfile(filename)
|
||||||
|
|| substr($0, 2, 5) != "entry")
|
||||||
|
fatal(_"%s is not a Texinfo index file\n", filename)
|
||||||
|
|
||||||
|
- Special_chars = "{}"
|
||||||
|
+ Special_chars = "{}" Command_char
|
||||||
|
}
|
||||||
|
@
|
||||||
|
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
97
MiscXS-avoid-memory-leak.patch
Normal file
97
MiscXS-avoid-memory-leak.patch
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
From 690b130f6ef5e5b1112087a0378669b6d01ea3c5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||||
|
Date: Thu, 16 Aug 2018 15:56:11 +0000
|
||||||
|
Subject: [PATCH 143/759] MiscXS avoid memory leak
|
||||||
|
|
||||||
|
git-svn-id: svn://127.0.0.1/svn_repo/texinfo/trunk@8095 39fee189-59d7-47db-b5d4-205258b72aed
|
||||||
|
---
|
||||||
|
ChangeLog | 8 ++++++++
|
||||||
|
tp/Texinfo/XS/misc.c | 39 ++++++++++++++++++++++-----------------
|
||||||
|
2 files changed, 30 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tp/Texinfo/MiscXS/misc.c b/tp/Texinfo/MiscXS/misc.c
|
||||||
|
index 40c8992e7..e013b1928 100644
|
||||||
|
--- a/tp/Texinfo/MiscXS/misc.c
|
||||||
|
+++ b/tp/Texinfo/MiscXS/misc.c
|
||||||
|
@@ -612,21 +612,24 @@ void xs_parse_texi_regex (SV *text_in,
|
||||||
|
if (*text == '@' && isalnum(text[1]))
|
||||||
|
{
|
||||||
|
char *p, *q;
|
||||||
|
+ static char *s;
|
||||||
|
|
||||||
|
p = text + 1;
|
||||||
|
q = text + 2;
|
||||||
|
while (isalnum (*q) || *q == '-' || *q == '_')
|
||||||
|
q++;
|
||||||
|
- *at_command = malloc (q - p + 1);
|
||||||
|
- memcpy (*at_command, p, q - p);
|
||||||
|
- (*at_command)[q - p] = '\0';
|
||||||
|
+
|
||||||
|
+ s = realloc (s, q - p + 1);
|
||||||
|
+ memcpy (s, p, q - p);
|
||||||
|
+ s[q - p] = '\0';
|
||||||
|
+ *at_command = s;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (*text == '{')
|
||||||
|
{
|
||||||
|
- *open_brace = strdup ("{");
|
||||||
|
- *separator_match = strdup ("{");
|
||||||
|
+ *open_brace = "{";
|
||||||
|
+ *separator_match = "{";
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (*text == '@'
|
||||||
|
@@ -635,16 +638,18 @@ void xs_parse_texi_regex (SV *text_in,
|
||||||
|
"*-^`=:|/\\",
|
||||||
|
text[1]))
|
||||||
|
{
|
||||||
|
- *single_letter_command = malloc (2);
|
||||||
|
- (*single_letter_command)[0] = text[1];
|
||||||
|
- (*single_letter_command)[1] = '\0';
|
||||||
|
+ static char a[2];
|
||||||
|
+ *single_letter_command = a;
|
||||||
|
+ a[0] = text[1];
|
||||||
|
+ a[1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (strchr ("{}@,:\t.\f", *text))
|
||||||
|
{
|
||||||
|
- *separator_match = malloc (2);
|
||||||
|
- (*separator_match)[0] = *text;
|
||||||
|
- (*separator_match)[1] = '\0';
|
||||||
|
+ static char a[2];
|
||||||
|
+ *separator_match = a;
|
||||||
|
+ a[0] = *text;
|
||||||
|
+ a[1] = '\0';
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
@@ -652,17 +657,17 @@ void xs_parse_texi_regex (SV *text_in,
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
if (*text == '*')
|
||||||
|
- {
|
||||||
|
- *asterisk = strdup ("*");
|
||||||
|
- }
|
||||||
|
+ *asterisk = "*";
|
||||||
|
|
||||||
|
p = text;
|
||||||
|
p += strcspn (p, "{}@,:\t.\n\f");
|
||||||
|
if (p > text)
|
||||||
|
{
|
||||||
|
- *new_text = malloc (p - text + 1);
|
||||||
|
- memcpy (*new_text, text, p - text);
|
||||||
|
- (*new_text)[p - text] = '\0';
|
||||||
|
+ static char *s;
|
||||||
|
+ s = realloc (s, p - text + 1);
|
||||||
|
+ memcpy (s, text, p - text);
|
||||||
|
+ s[p - text] = '\0';
|
||||||
|
+ *new_text = s;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
147
XS-avoid-memory-leak.patch
Normal file
147
XS-avoid-memory-leak.patch
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
From 0cdd9c75042f86985617fff4e2a195ddb28a07c6 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||||
|
Date: Thu, 16 Aug 2018 16:11:53 +0000
|
||||||
|
Subject: [PATCH 144/759] XS avoid memory leak
|
||||||
|
|
||||||
|
git-svn-id: svn://127.0.0.1/svn_repo/texinfo/trunk@8096 39fee189-59d7-47db-b5d4-205258b72aed
|
||||||
|
---
|
||||||
|
ChangeLog | 7 +++++++
|
||||||
|
tp/Texinfo/XS/text.c | 13 ++++++++++++-
|
||||||
|
tp/Texinfo/XS/text.h | 3 ++-
|
||||||
|
tp/Texinfo/XS/xspara.c | 26 +++++++++++++-------------
|
||||||
|
4 files changed, 34 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tp/Texinfo/Convert/XSParagraph/text.c b/tp/Texinfo/Convert/XSParagraph/text.c
|
||||||
|
index d686373b2..6baf8da3d 100644
|
||||||
|
--- a/tp/Texinfo/Convert/XSParagraph/text.c
|
||||||
|
+++ b/tp/Texinfo/Convert/XSParagraph/text.c
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-/* Copyright 2014, 2015, 2016 Free Software Foundation, Inc.
|
||||||
|
+/* Copyright 2014, 2015, 2016, 2018 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@@ -68,6 +68,17 @@ text_append (TEXT *t, char *s)
|
||||||
|
text_append_n (t, s, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
+/* Set text to an empty string without clearing any storage */
|
||||||
|
+void
|
||||||
|
+text_reset (TEXT *t)
|
||||||
|
+{
|
||||||
|
+ if (t->end > 0)
|
||||||
|
+ {
|
||||||
|
+ t->end = 0;
|
||||||
|
+ t->text[0] = 0;
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void
|
||||||
|
text_init (TEXT *t)
|
||||||
|
{
|
||||||
|
diff --git a/tp/Texinfo/Convert/XSParagraph/text.h b/tp/Texinfo/Convert/XSParagraph/text.h
|
||||||
|
index e8fa9f915..7f14b3d29 100644
|
||||||
|
--- a/tp/Texinfo/Convert/XSParagraph/text.h
|
||||||
|
+++ b/tp/Texinfo/Convert/XSParagraph/text.h
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-/* Copyright 2014, 2015, 2016 Free Software Foundation, Inc.
|
||||||
|
+/* Copyright 2014, 2015, 2016, 2018 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
@@ -20,6 +20,7 @@ typedef struct TEXT {
|
||||||
|
} TEXT;
|
||||||
|
|
||||||
|
void text_init (TEXT *t);
|
||||||
|
+void text_reset (TEXT *t);
|
||||||
|
void text_append (TEXT *t, char *s);
|
||||||
|
void text_append_n (TEXT *t, char *s, size_t len);
|
||||||
|
void text_printf (TEXT *t, char *format, ...);
|
||||||
|
diff --git a/tp/Texinfo/Convert/XSParagraph/xspara.c b/tp/Texinfo/Convert/XSParagraph/xspara.c
|
||||||
|
index f2d6d1ccd..52a54ed74 100644
|
||||||
|
--- a/tp/Texinfo/Convert/XSParagraph/xspara.c
|
||||||
|
+++ b/tp/Texinfo/Convert/XSParagraph/xspara.c
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-/* Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016 Free Software
|
||||||
|
+/* Copyright 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2018 Free Software
|
||||||
|
Foundation, Inc.
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
@@ -553,8 +553,8 @@ xspara_end_line (void)
|
||||||
|
char *
|
||||||
|
xspara_get_pending (void)
|
||||||
|
{
|
||||||
|
- TEXT t;
|
||||||
|
- text_init (&t);
|
||||||
|
+ static TEXT t;
|
||||||
|
+ text_reset (&t);
|
||||||
|
text_append_n (&t, state.space.text, state.space.end);
|
||||||
|
text_append_n (&t, state.word.text, state.word.end);
|
||||||
|
return t.text;
|
||||||
|
@@ -610,9 +610,9 @@ xspara__add_pending_word (TEXT *result, int add_spaces)
|
||||||
|
char *
|
||||||
|
xspara_add_pending_word (int add_spaces)
|
||||||
|
{
|
||||||
|
- TEXT ret;
|
||||||
|
+ static TEXT ret;
|
||||||
|
|
||||||
|
- text_init (&ret);
|
||||||
|
+ text_reset (&ret);
|
||||||
|
state.end_line_count = 0;
|
||||||
|
xspara__add_pending_word (&ret, add_spaces);
|
||||||
|
if (ret.text)
|
||||||
|
@@ -625,8 +625,8 @@ xspara_add_pending_word (int add_spaces)
|
||||||
|
char *
|
||||||
|
xspara_end (void)
|
||||||
|
{
|
||||||
|
- TEXT ret;
|
||||||
|
- text_init (&ret);
|
||||||
|
+ static TEXT ret;
|
||||||
|
+ text_reset (&ret);
|
||||||
|
state.end_line_count = 0;
|
||||||
|
xspara__add_pending_word (&ret, state.add_final_space);
|
||||||
|
if (!state.no_final_newline && state.counter != 0)
|
||||||
|
@@ -773,9 +773,9 @@ xspara__add_next (TEXT *result, char *word, int word_len, int transparent)
|
||||||
|
char *
|
||||||
|
xspara_add_next (char *text, int text_len, int transparent)
|
||||||
|
{
|
||||||
|
- TEXT t;
|
||||||
|
+ static TEXT t;
|
||||||
|
|
||||||
|
- text_init (&t);
|
||||||
|
+ text_reset (&t);
|
||||||
|
state.end_line_count = 0;
|
||||||
|
xspara__add_next (&t, text, text_len, transparent);
|
||||||
|
|
||||||
|
@@ -883,10 +883,10 @@ xspara_add_text (char *text)
|
||||||
|
int len;
|
||||||
|
wchar_t wc;
|
||||||
|
size_t char_len;
|
||||||
|
- TEXT result;
|
||||||
|
+ static TEXT result;
|
||||||
|
dTHX;
|
||||||
|
|
||||||
|
- text_init (&result);
|
||||||
|
+ text_reset (&result);
|
||||||
|
|
||||||
|
len = strlen (text); /* FIXME: Get this as an argument */
|
||||||
|
state.end_line_count = 0;
|
||||||
|
@@ -973,13 +973,13 @@ xspara_add_text (char *text)
|
||||||
|
/* Truncate to at most 2 spaces, and replace any
|
||||||
|
'\n' or '\r' characters with ' '. */
|
||||||
|
|
||||||
|
- TEXT new_space;
|
||||||
|
+ static TEXT new_space;
|
||||||
|
char *pspace;
|
||||||
|
int pspace_left;
|
||||||
|
int len;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
- text_init (&new_space);
|
||||||
|
+ text_reset (&new_space);
|
||||||
|
pspace = state.space.text;
|
||||||
|
pspace_left = state.space.end;
|
||||||
|
state.space_counter = 0;
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
50
XS-avoid-memory-leaks.patch
Normal file
50
XS-avoid-memory-leaks.patch
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
From d916a50c77f41655b4af6bab994a771a161ea532 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||||
|
Date: Thu, 16 Aug 2018 16:24:40 +0000
|
||||||
|
Subject: [PATCH 145/759] XS avoid memory leaks
|
||||||
|
|
||||||
|
git-svn-id: svn://127.0.0.1/svn_repo/texinfo/trunk@8097 39fee189-59d7-47db-b5d4-205258b72aed
|
||||||
|
---
|
||||||
|
ChangeLog | 5 +++++
|
||||||
|
tp/Texinfo/XS/misc.c | 10 ++++++----
|
||||||
|
2 files changed, 11 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tp/Texinfo/MiscXS/misc.c b/tp/Texinfo/MiscXS/misc.c
|
||||||
|
index e013b1928..6962f1b08 100644
|
||||||
|
--- a/tp/Texinfo/MiscXS/misc.c
|
||||||
|
+++ b/tp/Texinfo/MiscXS/misc.c
|
||||||
|
@@ -437,9 +437,11 @@ NEW_TEXT:
|
||||||
|
char *
|
||||||
|
xs_process_text (char *text)
|
||||||
|
{
|
||||||
|
- char *new, *p, *q;
|
||||||
|
+ static char *new;
|
||||||
|
+ char *p, *q;
|
||||||
|
|
||||||
|
- new = strdup (text);
|
||||||
|
+ new = realloc (new, strlen (text) + 1);
|
||||||
|
+ strcpy (new, text);
|
||||||
|
|
||||||
|
p = q = new;
|
||||||
|
while (*p)
|
||||||
|
@@ -489,7 +491,7 @@ char *
|
||||||
|
xs_unicode_text (char *text, int in_code)
|
||||||
|
{
|
||||||
|
char *p, *q;
|
||||||
|
- char *new;
|
||||||
|
+ static char *new;
|
||||||
|
int new_space, new_len;
|
||||||
|
|
||||||
|
dTHX; /* Perl boilerplate. */
|
||||||
|
@@ -499,7 +501,7 @@ xs_unicode_text (char *text, int in_code)
|
||||||
|
|
||||||
|
p = text;
|
||||||
|
new_space = strlen (text);
|
||||||
|
- new = malloc (new_space + 1);
|
||||||
|
+ new = realloc (new, new_space + 1);
|
||||||
|
new_len = 0;
|
||||||
|
#define ADD3(s) \
|
||||||
|
if (new_len + 2 >= new_space - 1) \
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
37
fix-misleading-warning-about-node-names.patch
Normal file
37
fix-misleading-warning-about-node-names.patch
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
From 4a3d0f3059583200a45ced680a860a43f83c06e0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||||
|
Date: Mon, 4 Jun 2018 09:46:18 +0000
|
||||||
|
Subject: [PATCH 051/759] fix misleading warning about node names
|
||||||
|
|
||||||
|
git-svn-id: svn://127.0.0.1/svn_repo/texinfo/trunk@8003 39fee189-59d7-47db-b5d4-205258b72aed
|
||||||
|
---
|
||||||
|
ChangeLog | 11 +++++++++++
|
||||||
|
tp/Texinfo/Convert/Plaintext.pm | 6 ++++++
|
||||||
|
2 files changed, 17 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tp/Texinfo/Convert/Plaintext.pm b/tp/Texinfo/Convert/Plaintext.pm
|
||||||
|
index 581e94c10..f745f1c6d 100644
|
||||||
|
--- a/tp/Texinfo/Convert/Plaintext.pm
|
||||||
|
+++ b/tp/Texinfo/Convert/Plaintext.pm
|
||||||
|
@@ -2064,12 +2064,18 @@ sub _convert($$)
|
||||||
|
}
|
||||||
|
# node name
|
||||||
|
$self->{'formatters'}->[-1]->{'suppress_styles'} = 1;
|
||||||
|
+
|
||||||
|
+ my $maybe_file
|
||||||
|
+ = get_pending($self->{'formatters'}->[-1]->{'container'});
|
||||||
|
my $node_text = _convert($self, {'type' => '_code',
|
||||||
|
'contents' => $node_content});
|
||||||
|
delete $self->{'formatters'}->[-1]->{'suppress_styles'};
|
||||||
|
|
||||||
|
my $node_text_checked = $node_text
|
||||||
|
.get_pending($self->{'formatters'}->[-1]->{'container'});
|
||||||
|
+ $maybe_file =~ s/^\s*//;
|
||||||
|
+ $maybe_file = quotemeta $maybe_file;
|
||||||
|
+ $node_text_checked =~ s/^\s*$maybe_file//;
|
||||||
|
$quoting_required = 0;
|
||||||
|
if ($node_text_checked =~ /([,\t\.])/m ) {
|
||||||
|
if ($self->get_conf('INFO_SPECIAL_CHARS_WARNING')) {
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
40
info-6.5-sync-fix-info-dir.patch
Normal file
40
info-6.5-sync-fix-info-dir.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
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
|
||||||
41
perl-5.28-thread-safe-locales.patch
Normal file
41
perl-5.28-thread-safe-locales.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From a028ef47353b03177aab3facb4b2b74f7c3823e2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||||
|
Date: Fri, 13 Jul 2018 15:39:29 +0000
|
||||||
|
Subject: [PATCH 056/759] perl 5.28 thread-safe locales
|
||||||
|
|
||||||
|
git-svn-id: svn://127.0.0.1/svn_repo/texinfo/trunk@8008 39fee189-59d7-47db-b5d4-205258b72aed
|
||||||
|
---
|
||||||
|
ChangeLog | 15 +++++++++++++++
|
||||||
|
tp/Texinfo/Convert/XSParagraph/xspara.c | 9 +++++++++
|
||||||
|
2 files changed, 24 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/tp/Texinfo/Convert/XSParagraph/xspara.c b/tp/Texinfo/Convert/XSParagraph/xspara.c
|
||||||
|
index 51eea4a30..f2d6d1ccd 100644
|
||||||
|
--- a/tp/Texinfo/Convert/XSParagraph/xspara.c
|
||||||
|
+++ b/tp/Texinfo/Convert/XSParagraph/xspara.c
|
||||||
|
@@ -248,6 +248,11 @@ xspara_init (void)
|
||||||
|
|
||||||
|
dTHX;
|
||||||
|
|
||||||
|
+#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
|
||||||
|
+ /* needed due to thread-safe locale handling in newer perls */
|
||||||
|
+ switch_to_global_locale();
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
if (setlocale (LC_CTYPE, "en_US.UTF-8")
|
||||||
|
|| setlocale (LC_CTYPE, "en_US.utf8"))
|
||||||
|
goto success;
|
||||||
|
@@ -320,6 +325,10 @@ failure:
|
||||||
|
{
|
||||||
|
success: ;
|
||||||
|
free (utf8_locale);
|
||||||
|
+#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
|
||||||
|
+ /* needed due to thread-safe locale handling in newer perls */
|
||||||
|
+ sync_locale();
|
||||||
|
+#endif
|
||||||
|
/*
|
||||||
|
fprintf (stderr, "tried to set LC_CTYPE to UTF-8.\n");
|
||||||
|
fprintf (stderr, "character encoding is: %s\n",
|
||||||
|
--
|
||||||
|
2.19.1
|
||||||
|
|
||||||
311
texinfo-20180310-texinfo.tex.patch
Normal file
311
texinfo-20180310-texinfo.tex.patch
Normal file
@ -0,0 +1,311 @@
|
|||||||
|
diff -up texinfo-6.5/doc/texinfo.tex.old texinfo-6.5/doc/texinfo.tex
|
||||||
|
--- texinfo-6.5/doc/texinfo.tex.old 2017-08-27 05:21:32.000000000 -0400
|
||||||
|
+++ texinfo-6.5/doc/texinfo.tex 2018-03-10 08:40:29.000000000 -0500
|
||||||
|
@@ -3,11 +3,11 @@
|
||||||
|
% Load plain if necessary, i.e., if running under initex.
|
||||||
|
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
|
||||||
|
%
|
||||||
|
-\def\texinfoversion{2017-08-23.19}
|
||||||
|
+\def\texinfoversion{2018-03-10.14}
|
||||||
|
%
|
||||||
|
% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||||
|
% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||||
|
-% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
|
||||||
|
+% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018
|
||||||
|
% Free Software Foundation, Inc.
|
||||||
|
%
|
||||||
|
% This texinfo.tex file is free software: you can redistribute it and/or
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
% General Public License for more details.
|
||||||
|
%
|
||||||
|
% You should have received a copy of the GNU General Public License
|
||||||
|
-% along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
+% along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
%
|
||||||
|
% As a special exception, when this file is read by TeX when processing
|
||||||
|
% a Texinfo source document, you may use the result without
|
||||||
|
@@ -30,9 +30,9 @@
|
||||||
|
%
|
||||||
|
% Please try the latest version of texinfo.tex before submitting bug
|
||||||
|
% reports; you can get the latest version from:
|
||||||
|
-% http://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
|
||||||
|
-% http://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
|
||||||
|
-% http://www.gnu.org/software/texinfo/ (the Texinfo home page)
|
||||||
|
+% https://ftp.gnu.org/gnu/texinfo/ (the Texinfo release area), or
|
||||||
|
+% https://ftpmirror.gnu.org/texinfo/ (same, via a mirror), or
|
||||||
|
+% https://www.gnu.org/software/texinfo/ (the Texinfo home page)
|
||||||
|
% The texinfo.tex in any given distribution could well be out
|
||||||
|
% of date, so if that's what you're using, please check.
|
||||||
|
%
|
||||||
|
@@ -56,7 +56,7 @@
|
||||||
|
% extent. You can get the existing language-specific files from the
|
||||||
|
% full Texinfo distribution.
|
||||||
|
%
|
||||||
|
-% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
|
||||||
|
+% The GNU Texinfo home page is https://www.gnu.org/software/texinfo.
|
||||||
|
|
||||||
|
|
||||||
|
\message{Loading texinfo [version \texinfoversion]:}
|
||||||
|
@@ -2235,6 +2235,20 @@ end
|
||||||
|
\font\smallersy=cmsy8
|
||||||
|
\def\smallerecsize{0800}
|
||||||
|
|
||||||
|
+% Fonts for math mode superscripts (7pt).
|
||||||
|
+\def\sevennominalsize{7pt}
|
||||||
|
+\setfont\sevenrm\rmshape{7}{1000}{OT1}
|
||||||
|
+\setfont\seventt\ttshape{10}{700}{OT1TT}
|
||||||
|
+\setfont\sevenbf\bfshape{10}{700}{OT1}
|
||||||
|
+\setfont\sevenit\itshape{7}{1000}{OT1IT}
|
||||||
|
+\setfont\sevensl\slshape{10}{700}{OT1}
|
||||||
|
+\setfont\sevensf\sfshape{10}{700}{OT1}
|
||||||
|
+\setfont\sevensc\scshape{10}{700}{OT1}
|
||||||
|
+\setfont\seventtsl\ttslshape{10}{700}{OT1TT}
|
||||||
|
+\font\seveni=cmmi7
|
||||||
|
+\font\sevensy=cmsy7
|
||||||
|
+\def\sevenecsize{0700}
|
||||||
|
+
|
||||||
|
% Fonts for title page (20.4pt):
|
||||||
|
\def\titlenominalsize{20pt}
|
||||||
|
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
|
||||||
|
@@ -2369,6 +2383,20 @@ end
|
||||||
|
\font\smallersy=cmsy8
|
||||||
|
\def\smallerecsize{0800}
|
||||||
|
|
||||||
|
+% Fonts for math mode superscripts (7pt).
|
||||||
|
+\def\sevennominalsize{7pt}
|
||||||
|
+\setfont\sevenrm\rmshape{7}{1000}{OT1}
|
||||||
|
+\setfont\seventt\ttshape{10}{700}{OT1TT}
|
||||||
|
+\setfont\sevenbf\bfshape{10}{700}{OT1}
|
||||||
|
+\setfont\sevenit\itshape{7}{1000}{OT1IT}
|
||||||
|
+\setfont\sevensl\slshape{10}{700}{OT1}
|
||||||
|
+\setfont\sevensf\sfshape{10}{700}{OT1}
|
||||||
|
+\setfont\sevensc\scshape{10}{700}{OT1}
|
||||||
|
+\setfont\seventtsl\ttslshape{10}{700}{OT1TT}
|
||||||
|
+\font\seveni=cmmi7
|
||||||
|
+\font\sevensy=cmsy7
|
||||||
|
+\def\sevenecsize{0700}
|
||||||
|
+
|
||||||
|
% Fonts for title page (20.4pt):
|
||||||
|
\def\titlenominalsize{20pt}
|
||||||
|
\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
|
||||||
|
@@ -2503,13 +2531,20 @@ end
|
||||||
|
|
||||||
|
|
||||||
|
% In order for the font changes to affect most math symbols and letters,
|
||||||
|
-% we have to define the \textfont of the standard families. We don't
|
||||||
|
-% bother to reset \scriptfont and \scriptscriptfont; awaiting user need.
|
||||||
|
+% we have to define the \textfont of the standard families.
|
||||||
|
+% We don't bother to reset \scriptscriptfont; awaiting user need.
|
||||||
|
%
|
||||||
|
\def\resetmathfonts{%
|
||||||
|
\textfont0=\rmfont \textfont1=\ifont \textfont2=\syfont
|
||||||
|
\textfont\itfam=\itfont \textfont\slfam=\slfont \textfont\bffam=\bffont
|
||||||
|
\textfont\ttfam=\ttfont \textfont\sffam=\sffont
|
||||||
|
+ %
|
||||||
|
+ % Fonts for superscript. Note that the 7pt fonts are used regardless
|
||||||
|
+ % of the current font size.
|
||||||
|
+ \scriptfont0=\sevenrm \scriptfont1=\seveni \scriptfont2=\sevensy
|
||||||
|
+ \scriptfont\itfam=\sevenit \scriptfont\slfam=\sevensl
|
||||||
|
+ \scriptfont\bffam=\sevenbf \scriptfont\ttfam=\seventt
|
||||||
|
+ \scriptfont\sffam=\sevensf
|
||||||
|
}
|
||||||
|
|
||||||
|
%
|
||||||
|
@@ -2519,6 +2554,9 @@ end
|
||||||
|
% to also set the current \fam for math mode. Our \STYLE (e.g., \rm)
|
||||||
|
% commands hardwire \STYLEfont to set the current font.
|
||||||
|
%
|
||||||
|
+% The fonts used for \ifont are for "math italics" (\itfont is for italics
|
||||||
|
+% in regular text). \syfont is also used in math mode only.
|
||||||
|
+%
|
||||||
|
% Each font-changing command also sets the names \lsize (one size lower)
|
||||||
|
% and \lllsize (three sizes lower). These relative commands are used
|
||||||
|
% in, e.g., the LaTeX logo and acronyms.
|
||||||
|
@@ -2619,26 +2657,11 @@ end
|
||||||
|
% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
|
||||||
|
% define and register \INITMACRO to be called on markup style changes.
|
||||||
|
% \INITMACRO can check \currentmarkupstyle for the innermost
|
||||||
|
-% style and the set of \ifmarkupSTYLE switches for all styles
|
||||||
|
-% currently in effect.
|
||||||
|
-\newif\ifmarkupvar
|
||||||
|
-\newif\ifmarkupsamp
|
||||||
|
-\newif\ifmarkupkey
|
||||||
|
-%\newif\ifmarkupfile % @file == @samp.
|
||||||
|
-%\newif\ifmarkupoption % @option == @samp.
|
||||||
|
-\newif\ifmarkupcode
|
||||||
|
-\newif\ifmarkupkbd
|
||||||
|
-%\newif\ifmarkupenv % @env == @code.
|
||||||
|
-%\newif\ifmarkupcommand % @command == @code.
|
||||||
|
-\newif\ifmarkuptex % @tex (and part of @math, for now).
|
||||||
|
-\newif\ifmarkupexample
|
||||||
|
-\newif\ifmarkupverb
|
||||||
|
-\newif\ifmarkupverbatim
|
||||||
|
+% style.
|
||||||
|
|
||||||
|
\let\currentmarkupstyle\empty
|
||||||
|
|
||||||
|
\def\setupmarkupstyle#1{%
|
||||||
|
- \csname markup#1true\endcsname
|
||||||
|
\def\currentmarkupstyle{#1}%
|
||||||
|
\markupstylesetup
|
||||||
|
}
|
||||||
|
@@ -2700,11 +2723,15 @@ end
|
||||||
|
% lilypond developers report. xpdf does work with the regular 0x27.
|
||||||
|
%
|
||||||
|
\def\codequoteright{%
|
||||||
|
- \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
|
||||||
|
- \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
|
||||||
|
- '%
|
||||||
|
+ \ifmonospace
|
||||||
|
+ \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
|
||||||
|
+ \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
|
||||||
|
+ '%
|
||||||
|
+ \else \char'15 \fi
|
||||||
|
\else \char'15 \fi
|
||||||
|
- \else \char'15 \fi
|
||||||
|
+ \else
|
||||||
|
+ '%
|
||||||
|
+ \fi
|
||||||
|
}
|
||||||
|
%
|
||||||
|
% and a similar option for the left quote char vs. a grave accent.
|
||||||
|
@@ -2712,13 +2739,17 @@ end
|
||||||
|
% the code environments to do likewise.
|
||||||
|
%
|
||||||
|
\def\codequoteleft{%
|
||||||
|
- \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
|
||||||
|
- \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
|
||||||
|
- % [Knuth] pp. 380,381,391
|
||||||
|
- % \relax disables Spanish ligatures ?` and !` of \tt font.
|
||||||
|
- \relax`%
|
||||||
|
+ \ifmonospace
|
||||||
|
+ \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax
|
||||||
|
+ \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
|
||||||
|
+ % [Knuth] pp. 380,381,391
|
||||||
|
+ % \relax disables Spanish ligatures ?` and !` of \tt font.
|
||||||
|
+ \relax`%
|
||||||
|
+ \else \char'22 \fi
|
||||||
|
\else \char'22 \fi
|
||||||
|
- \else \char'22 \fi
|
||||||
|
+ \else
|
||||||
|
+ \relax`%
|
||||||
|
+ \fi
|
||||||
|
}
|
||||||
|
|
||||||
|
% Commands to set the quote options.
|
||||||
|
@@ -5969,24 +6000,30 @@ end
|
||||||
|
% Split the last of the double-column material.
|
||||||
|
\savemarks
|
||||||
|
\balancecolumns
|
||||||
|
- %
|
||||||
|
+ }%
|
||||||
|
+ \eject % call the \output just set
|
||||||
|
+ \ifdim\pagetotal=0pt
|
||||||
|
% Having called \balancecolumns once, we do not
|
||||||
|
% want to call it again. Therefore, reset \output to its normal
|
||||||
|
% definition right away.
|
||||||
|
\global\output = {\onepageout{\pagecontents\PAGE}}%
|
||||||
|
- }%
|
||||||
|
- \eject
|
||||||
|
- \endgroup % started in \begindoublecolumns
|
||||||
|
- \restoremarks
|
||||||
|
- % Leave the double-column material on the current page, no automatic
|
||||||
|
- % page break.
|
||||||
|
- \box\balancedcolumns
|
||||||
|
- %
|
||||||
|
- % \pagegoal was set to the doubled \vsize above, since we restarted
|
||||||
|
- % the current page. We're now back to normal single-column
|
||||||
|
- % typesetting, so reset \pagegoal to the normal \vsize.
|
||||||
|
- \global\vsize = \txipageheight %
|
||||||
|
- \pagegoal = \txipageheight %
|
||||||
|
+ %
|
||||||
|
+ \endgroup % started in \begindoublecolumns
|
||||||
|
+ \restoremarks
|
||||||
|
+ % Leave the double-column material on the current page, no automatic
|
||||||
|
+ % page break.
|
||||||
|
+ \box\balancedcolumns
|
||||||
|
+ %
|
||||||
|
+ % \pagegoal was set to the doubled \vsize above, since we restarted
|
||||||
|
+ % the current page. We're now back to normal single-column
|
||||||
|
+ % typesetting, so reset \pagegoal to the normal \vsize.
|
||||||
|
+ \global\vsize = \txipageheight %
|
||||||
|
+ \pagegoal = \txipageheight %
|
||||||
|
+ \else
|
||||||
|
+ % We had some left-over material. This might happen when \doublecolumnout
|
||||||
|
+ % is called in \balancecolumns. Try again.
|
||||||
|
+ \expandafter\enddoublecolumns
|
||||||
|
+ \fi
|
||||||
|
}
|
||||||
|
\newbox\balancedcolumns
|
||||||
|
\setbox\balancedcolumns=\vbox{shouldnt see this}%
|
||||||
|
@@ -6001,6 +6038,7 @@ end
|
||||||
|
\ifdim\dimen@<5\baselineskip
|
||||||
|
% Don't split a short final column in two.
|
||||||
|
\setbox2=\vbox{}%
|
||||||
|
+ \global\setbox\balancedcolumns=\vbox{\pagesofar}%
|
||||||
|
\else
|
||||||
|
\divide\dimen@ by 2 % target to split to
|
||||||
|
\dimen@ii = \dimen@
|
||||||
|
@@ -6016,15 +6054,15 @@ end
|
||||||
|
\repeat
|
||||||
|
}%
|
||||||
|
% Now the left column is in box 1, and the right column in box 3.
|
||||||
|
+ %
|
||||||
|
% Check whether the left column has come out higher than the page itself.
|
||||||
|
% (Note that we have doubled \vsize for the double columns, so
|
||||||
|
% the actual height of the page is 0.5\vsize).
|
||||||
|
\ifdim2\ht1>\vsize
|
||||||
|
- % Just split the last of the double column material roughly in half.
|
||||||
|
- \setbox2=\box0
|
||||||
|
- \setbox0 = \vsplit2 to \dimen@ii
|
||||||
|
- \setbox0=\vbox to \dimen@ii {\unvbox0\vfill}%
|
||||||
|
- \setbox2=\vbox to \dimen@ii {\unvbox2\vfill}%
|
||||||
|
+ % It appears that we have been called upon to balance too much material.
|
||||||
|
+ % Output some of it with \doublecolumnout, leaving the rest on the page.
|
||||||
|
+ \setbox\PAGE=\box0
|
||||||
|
+ \doublecolumnout
|
||||||
|
\else
|
||||||
|
% Compare the heights of the two columns.
|
||||||
|
\ifdim4\ht1>5\ht3
|
||||||
|
@@ -6037,10 +6075,10 @@ end
|
||||||
|
\setbox2=\vbox to\ht1{\unvbox3\unskip}%
|
||||||
|
\setbox0=\vbox to\ht1{\unvbox1\unskip}%
|
||||||
|
\fi
|
||||||
|
+ \global\setbox\balancedcolumns=\vbox{\pagesofar}%
|
||||||
|
\fi
|
||||||
|
\fi
|
||||||
|
%
|
||||||
|
- \global\setbox\balancedcolumns=\vbox{\pagesofar}%
|
||||||
|
}
|
||||||
|
\catcode`\@ = \other
|
||||||
|
|
||||||
|
@@ -9446,7 +9484,7 @@ end
|
||||||
|
\newif\ifwarnednoepsf
|
||||||
|
\newhelp\noepsfhelp{epsf.tex must be installed for images to
|
||||||
|
work. It is also included in the Texinfo distribution, or you can get
|
||||||
|
- it from ftp://tug.org/tex/epsf.tex.}
|
||||||
|
+ it from https://ctan.org/texarchive/macros/texinfo/texinfo/doc/epsf.tex.}
|
||||||
|
%
|
||||||
|
\def\image#1{%
|
||||||
|
\ifx\epsfbox\thisisundefined
|
||||||
|
@@ -11425,9 +11463,11 @@ directory should work if nowhere else do
|
||||||
|
%
|
||||||
|
\dimen0 = #1\relax
|
||||||
|
\advance\dimen0 by \voffset
|
||||||
|
+ \advance\dimen0 by 1in % reference point for DVI is 1 inch from top of page
|
||||||
|
%
|
||||||
|
\dimen2 = \hsize
|
||||||
|
\advance\dimen2 by \normaloffset
|
||||||
|
+ \advance\dimen2 by 1in % reference point is 1 inch from left edge of page
|
||||||
|
%
|
||||||
|
\internalpagesizes{#1}{\hsize}%
|
||||||
|
{\voffset}{\normaloffset}%
|
||||||
|
@@ -11675,7 +11715,7 @@ directory should work if nowhere else do
|
||||||
|
@markupsetuprqdefault
|
||||||
|
|
||||||
|
@c Local variables:
|
||||||
|
-@c eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
+@c eval: (add-hook 'before-save-hook 'time-stamp)
|
||||||
|
@c page-delimiter: "^\\\\message\\|emacs-page"
|
||||||
|
@c time-stamp-start: "def\\\\texinfoversion{"
|
||||||
|
@c time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
236
texinfo-4.12-zlib.patch
Normal file
236
texinfo-4.12-zlib.patch
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
diff -up texinfo-6.4/install-info/install-info.c.orig texinfo-6.4/install-info/install-info.c
|
||||||
|
--- texinfo-6.4/install-info/install-info.c.orig 2016-03-04 18:52:26.000000000 +0100
|
||||||
|
+++ texinfo-6.4/install-info/install-info.c 2017-06-27 15:14:20.167998983 +0200
|
||||||
|
@@ -22,6 +22,7 @@
|
||||||
|
#include <getopt.h>
|
||||||
|
#include <regex.h>
|
||||||
|
#include <argz.h>
|
||||||
|
+#include <zlib.h>
|
||||||
|
|
||||||
|
#define TAB_WIDTH 8
|
||||||
|
|
||||||
|
@@ -684,15 +685,15 @@ 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. */
|
||||||
|
-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 *local_opened_filename, *local_compression_program;
|
||||||
|
int nread;
|
||||||
|
char data[13];
|
||||||
|
- FILE *f;
|
||||||
|
+ gzFile *f;
|
||||||
|
|
||||||
|
/* We let them pass NULL if they don't want this info, but it's easier
|
||||||
|
to always determine it. */
|
||||||
|
@@ -700,48 +701,48 @@ open_possibly_compressed_file (char *fil
|
||||||
|
opened_filename = &local_opened_filename;
|
||||||
|
|
||||||
|
*opened_filename = filename;
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
*opened_filename = concat (filename, ".gz", "");
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
}
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
free (*opened_filename);
|
||||||
|
*opened_filename = concat (filename, ".xz", "");
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
}
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
free (*opened_filename);
|
||||||
|
*opened_filename = concat (filename, ".bz2", "");
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
}
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
free (*opened_filename);
|
||||||
|
*opened_filename = concat (filename, ".lz", "");
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
}
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
free (*opened_filename);
|
||||||
|
*opened_filename = concat (filename, ".lzma", "");
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
}
|
||||||
|
#ifdef __MSDOS__
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
free (*opened_filename);
|
||||||
|
*opened_filename = concat (filename, ".igz", "");
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
}
|
||||||
|
if (!f)
|
||||||
|
{
|
||||||
|
free (*opened_filename);
|
||||||
|
*opened_filename = concat (filename, ".inz", "");
|
||||||
|
- f = fopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
+ f = gzopen (*opened_filename, FOPEN_RBIN);
|
||||||
|
}
|
||||||
|
#endif /* __MSDOS__ */
|
||||||
|
if (!f)
|
||||||
|
@@ -757,7 +758,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;
|
||||||
|
}
|
||||||
|
@@ -767,26 +768,26 @@ 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. */
|
||||||
|
- nread = fread (data, sizeof (data), 1, f);
|
||||||
|
- if (nread != 1)
|
||||||
|
+ nread = gzread (f, data, sizeof (data));
|
||||||
|
+ if (nread != sizeof (data))
|
||||||
|
{
|
||||||
|
- 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 */
|
||||||
|
}
|
||||||
|
@@ -857,35 +858,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;
|
||||||
|
|
||||||
|
if (*compression_program)
|
||||||
|
{ /* It's compressed, so open a pipe. */
|
||||||
|
+ FILE *p;
|
||||||
|
char *command = concat (*compression_program, " -d", "");
|
||||||
|
|
||||||
|
- 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;
|
||||||
|
- f = popen (command, "r");
|
||||||
|
- if (!f)
|
||||||
|
+ p = popen (command, "r");
|
||||||
|
+ if (!p)
|
||||||
|
{
|
||||||
|
/* Used for error message in calling code. */
|
||||||
|
*opened_filename = command;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
+ else
|
||||||
|
+ *is_pipe = 1;
|
||||||
|
+ return p;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
-#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;
|
||||||
|
@@ -904,7 +910,8 @@ readfile (char *filename, int *sizep,
|
||||||
|
void (*create_callback) (char *), char **opened_filename,
|
||||||
|
char **compression_program)
|
||||||
|
{
|
||||||
|
- FILE *f;
|
||||||
|
+ void *f;
|
||||||
|
+ int pipe_p;
|
||||||
|
int filled = 0;
|
||||||
|
int data_size = 8192;
|
||||||
|
char *data = xmalloc (data_size);
|
||||||
|
@@ -912,14 +919,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;
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
- int nread = fread (data + filled, 1, data_size - filled, f);
|
||||||
|
+ int nread;
|
||||||
|
+
|
||||||
|
+ if (pipe_p)
|
||||||
|
+ nread = fread (data + filled, 1, data_size - filled, f);
|
||||||
|
+ else
|
||||||
|
+ nread = gzread (f, data + filled, data_size - filled);
|
||||||
|
if (nread < 0)
|
||||||
|
return 0;
|
||||||
|
if (nread == 0)
|
||||||
|
@@ -938,8 +951,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)
|
||||||
|
pclose (f);
|
||||||
|
+ else
|
||||||
|
+ gzclose (f);
|
||||||
|
|
||||||
|
*sizep = filled;
|
||||||
|
return data;
|
||||||
|
diff -up texinfo-6.4/install-info/Makefile.in.orig texinfo-6.4/install-info/Makefile.in
|
||||||
|
--- texinfo-6.4/install-info/Makefile.in.orig 2017-06-23 08:04:39.000000000 +0200
|
||||||
|
+++ texinfo-6.4/install-info/Makefile.in 2017-06-27 15:14:20.167998983 +0200
|
||||||
|
@@ -221,7 +221,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) -lz
|
||||||
|
am__DEPENDENCIES_1 =
|
||||||
|
ginstall_info_DEPENDENCIES = $(top_builddir)/gnulib/lib/libgnu.a \
|
||||||
|
$(am__DEPENDENCIES_1)
|
||||||
49
texinfo-6.0-disable-failing-info-test.patch
Normal file
49
texinfo-6.0-disable-failing-info-test.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
diff -up texinfo-6.4.90/info/Makefile.in.orig texinfo-6.4.90/info/Makefile.in
|
||||||
|
--- texinfo-6.4.90/info/Makefile.in.orig 2017-07-10 21:06:01.000000000 +0200
|
||||||
|
+++ texinfo-6.4.90/info/Makefile.in 2017-07-11 09:58:06.501153160 +0200
|
||||||
|
@@ -1367,7 +1367,6 @@ TESTS = \
|
||||||
|
t/end-of-line.sh \
|
||||||
|
t/goal-column.sh \
|
||||||
|
t/star-note-non-whitespace.sh \
|
||||||
|
- t/c-u-m-x-scroll-forward.sh \
|
||||||
|
t/last-no-history.sh \
|
||||||
|
t/split-footnotes.sh \
|
||||||
|
t/window-split-dir.sh \
|
||||||
|
@@ -1392,10 +1391,6 @@ TESTS = \
|
||||||
|
t/search-skip-screen.sh \
|
||||||
|
t/search-empty.sh \
|
||||||
|
t/close-window-after-search.sh \
|
||||||
|
- t/inc-sea-forward.sh \
|
||||||
|
- t/inc-sea-forward-nonregex.sh \
|
||||||
|
- t/inc-sea-insensitive.sh \
|
||||||
|
- t/inc-sea-history.sh \
|
||||||
|
t/inc-sea-bs.sh \
|
||||||
|
t/gc-split.sh \
|
||||||
|
t/anchor-positions.sh \
|
||||||
|
diff -up texinfo-6.4.90/tp/tests/Makefile.in.orig texinfo-6.4.90/tp/tests/Makefile.in
|
||||||
|
--- texinfo-6.4.90/tp/tests/Makefile.in.orig 2017-07-10 20:52:24.000000000 +0200
|
||||||
|
+++ texinfo-6.4.90/tp/tests/Makefile.in 2017-07-11 09:59:30.838233561 +0200
|
||||||
|
@@ -1308,7 +1308,6 @@ one_test_files_generated_list = \
|
||||||
|
test_scripts/formatting_simplest_test_prefix_info.sh \
|
||||||
|
test_scripts/formatting_simplest_test_css.sh \
|
||||||
|
test_scripts/formatting_simplest_test_date_in_header.sh \
|
||||||
|
- test_scripts/formatting_documentlanguage_set_option.sh \
|
||||||
|
test_scripts/formatting_documentlanguage_set_unknown.sh \
|
||||||
|
test_scripts/formatting_documentlanguage_set_option_info.sh \
|
||||||
|
test_scripts/formatting_float_copying.sh \
|
||||||
|
@@ -1348,7 +1347,6 @@ one_test_files_generated_list = \
|
||||||
|
test_scripts/sectioning_top_node_up_explicit.sh \
|
||||||
|
test_scripts/coverage_texi_formatting.sh \
|
||||||
|
test_scripts/coverage_formatting.sh \
|
||||||
|
- test_scripts/coverage_formatting_fr.sh \
|
||||||
|
test_scripts/indices_double_index_entry.sh \
|
||||||
|
test_scripts/indices_split_chapter_index.sh \
|
||||||
|
test_scripts/indices_index_split.sh \
|
||||||
|
@@ -1447,7 +1445,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/tex_html_block_EOL_tex.sh \
|
||||||
@ -0,0 +1,44 @@
|
|||||||
|
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
|
||||||
190
texinfo-6.5-covscan-fixes.patch
Normal file
190
texinfo-6.5-covscan-fixes.patch
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/contrib/fix-info-dir.orig 2014-04-22 03:56:56.000000000 +0200
|
||||||
|
+++ texinfo-6.4/contrib/fix-info-dir 2018-08-08 10:40:42.585496361 +0200
|
||||||
|
@@ -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'
|
||||||
|
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/echo-area.c.orig 2018-07-25 12:42:38.806784712 +0200
|
||||||
|
+++ texinfo-6.4/info/echo-area.c 2018-07-25 12:43:15.452815108 +0200
|
||||||
|
@@ -979,6 +979,7 @@ info_read_completing_internal (const cha
|
||||||
|
inform_in_echo_area (_("No completions"));
|
||||||
|
else
|
||||||
|
inform_in_echo_area (_("Not complete"));
|
||||||
|
+ free (line);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/info.c.orig 2018-07-25 14:12:18.086188150 +0200
|
||||||
|
+++ texinfo-6.4/info/info.c 2018-07-25 14:13:00.915223083 +0200
|
||||||
|
@@ -295,6 +295,7 @@ get_initial_file (int *argc, char ***arg
|
||||||
|
ref_index, ref_list, ref_slots, 2);
|
||||||
|
|
||||||
|
initial_file = MANPAGE_FILE_BUFFER_NAME;
|
||||||
|
+ free (man_node);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/infomap.c.orig 2017-05-15 18:35:24.000000000 +0200
|
||||||
|
+++ texinfo-6.4/info/infomap.c 2018-07-30 09:40:58.517674645 +0200
|
||||||
|
@@ -603,6 +603,7 @@ fetch_user_maps (char *init_file)
|
||||||
|
compile (inf, filename, &sup_info, &sup_ea);
|
||||||
|
|
||||||
|
free (filename);
|
||||||
|
+ fclose (inf);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/m-x.c.orig 2017-05-14 12:55:17.000000000 +0200
|
||||||
|
+++ texinfo-6.4/info/m-x.c 2018-07-30 10:11:23.799858816 +0200
|
||||||
|
@@ -81,7 +81,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));
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/makedoc.c.orig 2014-11-07 11:58:55.000000000 +0100
|
||||||
|
+++ texinfo-6.4/info/makedoc.c 2018-07-30 10:23:55.128644559 +0200
|
||||||
|
@@ -427,7 +427,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);
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/nodes.c 2018-07-30 10:59:25.515087533 +0200
|
||||||
|
+++ texinfo-6.4/info/nodes.c 2018-07-30 11:10:47.547853493 +0200
|
||||||
|
@@ -305,7 +305,10 @@
|
||||||
|
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);
|
||||||
|
@@ -479,6 +482,7 @@
|
||||||
|
}
|
||||||
|
file_buffer->subfiles = NULL;
|
||||||
|
free_file_buffer_tags (file_buffer);
|
||||||
|
+ free (subfiles);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/session.c.orig 2018-07-30 11:11:33.997905448 +0200
|
||||||
|
+++ texinfo-6.4/info/session.c 2018-07-30 11:38:27.135721289 +0200
|
||||||
|
@@ -3554,6 +3554,7 @@ DECLARE_INFO_COMMAND (info_goto_invocati
|
||||||
|
if (!line)
|
||||||
|
{
|
||||||
|
info_abort_key (window, 0);
|
||||||
|
+ free (default_program_name);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (*line)
|
||||||
|
unchanged:
|
||||||
|
--- texinfo-6.4/info/variables.c.def24 2017-05-03 21:48:19.000000000 +0200
|
||||||
|
+++ texinfo-6.4/info/variables.c 2018-07-30 12:53:06.692694120 +0200
|
||||||
|
@@ -361,6 +361,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 ();
|
||||||
|
@@ -384,7 +385,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 -u texinfo-6.4/install-info/install-info.c texinfo-6.4/install-info/install-info.c
|
||||||
|
--- texinfo-6.4/install-info/install-info.c 2018-07-30 13:47:00.265812976 +0200
|
||||||
|
+++ texinfo-6.4/install-info/install-info.c 2018-07-30 13:53:50.427431251 +0200
|
||||||
|
@@ -867,10 +867,16 @@
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
@@ -880,6 +886,7 @@
|
||||||
|
}
|
||||||
|
else
|
||||||
|
*is_pipe = 1;
|
||||||
|
+ free (command);
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
@@ -923,7 +930,10 @@
|
||||||
|
&pipe_p);
|
||||||
|
|
||||||
|
if (!f)
|
||||||
|
- return 0;
|
||||||
|
+ {
|
||||||
|
+ free (data);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
for (;;)
|
||||||
|
{
|
||||||
|
@@ -983,6 +993,7 @@
|
||||||
|
{
|
||||||
|
char *command = concat (compression_program, ">", dirfile_tmp);
|
||||||
|
output = popen (command, "w");
|
||||||
|
+ free (command);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
output = fopen (dirfile_tmp, "w");
|
||||||
|
@@ -1724,6 +1735,8 @@
|
||||||
|
|
||||||
|
format_entry (name, name_len, desc, desc_len, calign, align,
|
||||||
|
maxwidth, &entry->text, &entry->text_len);
|
||||||
|
+ free (desc);
|
||||||
|
+ free (name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
17
texinfo-6.5-fix-for-perl-5.28.patch
Normal file
17
texinfo-6.5-fix-for-perl-5.28.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
diff -up texinfo-6.5/tp/Texinfo/Parser.pm.orig texinfo-6.5/tp/Texinfo/Parser.pm
|
||||||
|
--- texinfo-6.5/tp/Texinfo/Parser.pm.orig 2018-06-12 13:40:29.356030136 +0200
|
||||||
|
+++ texinfo-6.5/tp/Texinfo/Parser.pm 2018-06-12 13:41:28.357725639 +0200
|
||||||
|
@@ -5478,11 +5478,11 @@ sub _parse_special_misc_command($$$$)
|
||||||
|
}
|
||||||
|
} elsif ($command eq 'clickstyle') {
|
||||||
|
# REMACRO
|
||||||
|
- if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) {
|
||||||
|
+ if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{})?\s*/) {
|
||||||
|
$args = ['@'.$1];
|
||||||
|
$self->{'clickstyle'} = $1;
|
||||||
|
$remaining = $line;
|
||||||
|
- $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
|
||||||
|
+ $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
|
||||||
|
$has_comment = 1 if (defined($4));
|
||||||
|
} else {
|
||||||
|
$self->line_error (sprintf($self->__(
|
||||||
41
texinfo-6.5-fix-info-dir.patch
Normal file
41
texinfo-6.5-fix-info-dir.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
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
|
||||||
BIN
texinfo-6.5.tar.xz
Normal file
BIN
texinfo-6.5.tar.xz
Normal file
Binary file not shown.
7
texinfo-6.5.tar.xz.sig
Normal file
7
texinfo-6.5.tar.xz.sig
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v1
|
||||||
|
|
||||||
|
iF4EABEIAAYFAlm4QBsACgkQ3bxXnas3+6mlNwD/Tzn0IxHxWCII18A72dLZ0rDB
|
||||||
|
0GtvrWV4c/wtYHSGSNEA/3iIAv2qbGreDAXAzLHKsWm5vKzFvRPeDS7GBJQg018q
|
||||||
|
=EUkI
|
||||||
|
-----END PGP SIGNATURE-----
|
||||||
163
texinfo.spec
Normal file
163
texinfo.spec
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
%global tex_texinfo %{_datadir}/texmf/tex/texinfo
|
||||||
|
|
||||||
|
Name: texinfo
|
||||||
|
Version: 6.5
|
||||||
|
Release: 13
|
||||||
|
Summary: Tools needed to create Texinfo format documentation files
|
||||||
|
License: GPLv3+
|
||||||
|
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
|
||||||
|
|
||||||
|
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
|
||||||
|
# Update to 2018-03-10 texinfo.tex
|
||||||
|
Patch4: texinfo-20180310-texinfo.tex.patch
|
||||||
|
# rhbz#1592433, bug in fix-info-dir --delete
|
||||||
|
Patch5: texinfo-6.5-fix-info-dir.patch
|
||||||
|
# Patch6: rhbz#1590308, fixes test fail with unescaped left brace
|
||||||
|
Patch6: texinfo-6.5-fix-for-perl-5.28.patch
|
||||||
|
# Patch7: fixes issues detected by static analysis
|
||||||
|
Patch7: texinfo-6.5-covscan-fixes.patch
|
||||||
|
|
||||||
|
Patch6000: fix-misleading-warning-about-node-names.patch
|
||||||
|
Patch6001: perl-5.28-thread-safe-locales.patch
|
||||||
|
Patch6002: MiscXS-avoid-memory-leak.patch
|
||||||
|
Patch6003: XS-avoid-memory-leak.patch
|
||||||
|
Patch6004: XS-avoid-memory-leaks.patch
|
||||||
|
Patch6005: Fix-call-to-info_find_file.patch
|
||||||
|
Patch6006: Avoid-memory-leak-for-malformed-files.patch
|
||||||
|
Patch6007: Fix-day-one-bug-handling-as-command-character.patch
|
||||||
|
|
||||||
|
BuildRequires: gcc perl-generators zlib-devel ncurses-devel help2man
|
||||||
|
BuildRequires: perl(Data::Dumper) perl(Locale::Messages) perl(Unicode::EastAsianWidth) perl(Text::Unidecode) perl(Storable)
|
||||||
|
|
||||||
|
# Texinfo perl packages are not installed in default perl library dirs
|
||||||
|
%global __provides_exclude ^perl\\(.*Texinfo.*\\)$
|
||||||
|
%global __requires_exclude ^perl\\(.*Texinfo.*\\)$
|
||||||
|
|
||||||
|
%description
|
||||||
|
Texinfo is a documentation system that can produce both online
|
||||||
|
information and printed output from a single source file. The GNU
|
||||||
|
Project uses the Texinfo file format for most of its documentation.
|
||||||
|
|
||||||
|
Install texinfo if you want a documentation system for producing both
|
||||||
|
online and print documentation from the same source file and/or if you
|
||||||
|
are going to write documentation for the GNU Project.
|
||||||
|
|
||||||
|
%package tex
|
||||||
|
Summary: Tools for formatting Texinfo documentation files using TeX
|
||||||
|
Requires: texinfo = %{version}-%{release} tex(tex) tex(epsf.tex)
|
||||||
|
Requires(post): texlive-tetex
|
||||||
|
Requires(postun): texlive-tetex
|
||||||
|
|
||||||
|
%description tex
|
||||||
|
Texinfo is a documentation system that can produce both online
|
||||||
|
information and printed output from a single source file. The GNU
|
||||||
|
Project uses the Texinfo file format for most of its documentation.
|
||||||
|
|
||||||
|
%package -n info
|
||||||
|
Summary: A stand-alone TTY-based reader for GNU texinfo documentation
|
||||||
|
|
||||||
|
%description -n info
|
||||||
|
The GNU project uses the texinfo file format for much of its
|
||||||
|
documentation. The info package provides a standalone TTY-based
|
||||||
|
browser program for viewing texinfo files.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: A stand-alone TTY-based reader for GNU texinfo documentation
|
||||||
|
|
||||||
|
%description help
|
||||||
|
The GNU project uses the texinfo file format for much of its
|
||||||
|
documentation. The help package provides a standalone TTY-based
|
||||||
|
browser program for viewing texinfo files.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
%configure --with-external-Text-Unidecode --with-external-libintl-perl --with-external-Unicode-EastAsianWidth --disable-perl-xs
|
||||||
|
%make_build
|
||||||
|
|
||||||
|
%install
|
||||||
|
mkdir -p ${RPM_BUILD_ROOT}/sbin
|
||||||
|
|
||||||
|
%make_install
|
||||||
|
|
||||||
|
mkdir -p $RPM_BUILD_ROOT%{tex_texinfo}
|
||||||
|
install -p -m644 doc/texinfo.tex doc/txi-??.tex $RPM_BUILD_ROOT%{tex_texinfo}
|
||||||
|
|
||||||
|
mv $RPM_BUILD_ROOT%{_bindir}/install-info $RPM_BUILD_ROOT/sbin
|
||||||
|
|
||||||
|
install -Dpm0755 -t %{buildroot}%{_sbindir} contrib/fix-info-dir
|
||||||
|
|
||||||
|
%find_lang %{name}
|
||||||
|
%find_lang %{name}_document
|
||||||
|
|
||||||
|
%check
|
||||||
|
export ALL_TESTS=yes
|
||||||
|
%make_build check
|
||||||
|
|
||||||
|
%post
|
||||||
|
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
|
||||||
|
|
||||||
|
%postun
|
||||||
|
%{_bindir}/texconfig-sys rehash 2> /dev/null || :
|
||||||
|
|
||||||
|
%transfiletriggerin help -- %{_infodir}
|
||||||
|
[ -f %{_infodir}/dir ] && create_arg="" || create_arg="--create"
|
||||||
|
%{_sbindir}/fix-info-dir $create_arg %{_infodir}/dir &>/dev/null
|
||||||
|
|
||||||
|
%transfiletriggerpostun help -- %{_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
|
||||||
|
%license COPYING
|
||||||
|
%{_bindir}/makeinfo
|
||||||
|
%{_bindir}/texi2any
|
||||||
|
%{_bindir}/pod2texi
|
||||||
|
%{_datadir}/texinfo
|
||||||
|
|
||||||
|
%files tex
|
||||||
|
%{_bindir}/texindex
|
||||||
|
%{_bindir}/texi2dvi
|
||||||
|
%{_bindir}/texi2pdf
|
||||||
|
%{_bindir}/pdftexi2dvi
|
||||||
|
|
||||||
|
%files -n info
|
||||||
|
%license COPYING
|
||||||
|
%{_bindir}/info
|
||||||
|
/sbin/install-info
|
||||||
|
%{_sbindir}/fix-info-dir
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%license COPYING
|
||||||
|
%{_infodir}/info-stnd.info*
|
||||||
|
%{_mandir}/man1/info.1*
|
||||||
|
%{_mandir}/man1/install-info.1*
|
||||||
|
%{_mandir}/man5/info.5*
|
||||||
|
%{tex_texinfo}/
|
||||||
|
%{_mandir}/man1/texindex.1*
|
||||||
|
%{_mandir}/man1/texi2dvi.1*
|
||||||
|
%{_mandir}/man1/texi2pdf.1*
|
||||||
|
%{_mandir}/man1/pdftexi2dvi.1*
|
||||||
|
%{_mandir}/man1/makeinfo.1*
|
||||||
|
%{_mandir}/man5/texinfo.5*
|
||||||
|
%{_mandir}/man1/texi2any.1*
|
||||||
|
%{_mandir}/man1/pod2texi.1*
|
||||||
|
%{_infodir}/texinfo*
|
||||||
|
%ghost %{_infodir}/dir
|
||||||
|
%ghost %{_infodir}/dir.old
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Wed Sep 26 2019 openEuler Buildteam <buildteam@openeuler.org> - 6.5-13
|
||||||
|
- Add rpm texinfo-tex, info
|
||||||
|
|
||||||
|
* Tue Sep 17 2019 openEuler Buildteam <buildteam@openeuler.org> - 6.5-12
|
||||||
|
- Package init
|
||||||
Loading…
x
Reference in New Issue
Block a user