texinfo: add missing patch
salvaged from the src.tar.gz
This commit is contained in:
parent
fb9cf2df90
commit
f5e934fcbb
125
texinfo/0000-documentencoding-is-not-file-specific.patch
Normal file
125
texinfo/0000-documentencoding-is-not-file-specific.patch
Normal file
@ -0,0 +1,125 @@
|
||||
From f7ecfb787d5c6dd117a499543e4f87683c67698e Mon Sep 17 00:00:00 2001
|
||||
From: Gavin Smith <gavinsmith0123@gmail.com>
|
||||
Date: Tue, 19 Feb 2019 19:49:00 +0000
|
||||
Subject: [PATCH] @documentencoding is not file-specific.
|
||||
|
||||
* tp/Texinfo/XS/parsetexi/input.c (input_encoding): New
|
||||
variable.
|
||||
(set_input_encoding, next_text):
|
||||
Use that encoding instead of an encoding on the input stack.
|
||||
|
||||
(INPUT): Remove field 'encoding'.
|
||||
(input_push, input_push_file): Update.
|
||||
|
||||
Eli Zaretskii reported that a @documentencoding command in an
|
||||
@include'd file would not take effect outside of that file,
|
||||
which was wrong for the Emacs manuals.
|
||||
---
|
||||
ChangeLog | 16 ++++++++++++++
|
||||
tp/Texinfo/XS/parsetexi/input.c | 37 ++++++++++++++-------------------
|
||||
2 files changed, 32 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/tp/Texinfo/XS/parsetexi/input.c b/tp/Texinfo/XS/parsetexi/input.c
|
||||
index cad1edc47..560e637f8 100644
|
||||
--- a/tp/Texinfo/XS/parsetexi/input.c
|
||||
+++ b/tp/Texinfo/XS/parsetexi/input.c
|
||||
@@ -42,7 +42,6 @@ typedef struct {
|
||||
enum input_type type;
|
||||
|
||||
FILE *file;
|
||||
- char *input_encoding;
|
||||
LINE_NR line_nr;
|
||||
|
||||
char *text; /* Input text to be parsed as Texinfo. */
|
||||
@@ -50,6 +49,15 @@ typedef struct {
|
||||
into lines. */
|
||||
} INPUT;
|
||||
|
||||
+static char *input_encoding;
|
||||
+
|
||||
+void
|
||||
+set_input_encoding (char *encoding)
|
||||
+{
|
||||
+ input_encoding = encoding;
|
||||
+}
|
||||
+
|
||||
+
|
||||
static INPUT *input_stack = 0;
|
||||
int input_number = 0;
|
||||
int input_space = 0;
|
||||
@@ -134,9 +142,9 @@ text_buffer_iconv (TEXT *buf, iconv_t iconv_state,
|
||||
|
||||
|
||||
|
||||
-/* Return conversion of S according to ENC. This function frees S. */
|
||||
+/* Return conversion of S according to ENCODING. This function frees S. */
|
||||
static char *
|
||||
-convert_to_utf8 (char *s, char *input_encoding)
|
||||
+convert_to_utf8 (char *s, char *encoding)
|
||||
{
|
||||
iconv_t our_iconv;
|
||||
static TEXT t;
|
||||
@@ -184,13 +192,13 @@ convert_to_utf8 (char *s, char *input_encoding)
|
||||
}
|
||||
|
||||
enc = ce_latin1;
|
||||
- if (!input_encoding)
|
||||
+ if (!encoding)
|
||||
;
|
||||
- else if (!strcmp (input_encoding, "utf-8"))
|
||||
+ else if (!strcmp (encoding, "utf-8"))
|
||||
enc = ce_utf8;
|
||||
- else if (!strcmp (input_encoding, "iso-8859-2"))
|
||||
+ else if (!strcmp (encoding, "iso-8859-2"))
|
||||
enc = ce_latin2;
|
||||
- else if (!strcmp (input_encoding, "shift_jis"))
|
||||
+ else if (!strcmp (encoding, "shift_jis"))
|
||||
enc = ce_shiftjis;
|
||||
|
||||
switch (enc)
|
||||
@@ -325,7 +333,7 @@ next_text (void)
|
||||
i->line_nr.line_nr++;
|
||||
line_nr = i->line_nr;
|
||||
|
||||
- return convert_to_utf8 (line, i->input_encoding);
|
||||
+ return convert_to_utf8 (line, input_encoding);
|
||||
}
|
||||
free (line); line = 0;
|
||||
break;
|
||||
@@ -368,7 +376,6 @@ input_push (char *text, char *macro, char *filename, int line_number)
|
||||
input_stack[input_number].file = 0;
|
||||
input_stack[input_number].text = text;
|
||||
input_stack[input_number].ptext = text;
|
||||
- input_stack[input_number].input_encoding = 0;
|
||||
|
||||
if (!macro)
|
||||
line_number--;
|
||||
@@ -473,17 +480,6 @@ top_file_index (void)
|
||||
return i;
|
||||
}
|
||||
|
||||
-void
|
||||
-set_input_encoding (char *encoding)
|
||||
-{
|
||||
- int i;
|
||||
-
|
||||
- /* Set encoding of top file in stack. */
|
||||
- i = top_file_index ();
|
||||
- if (i >= 0)
|
||||
- input_stack[i].input_encoding = encoding;
|
||||
-}
|
||||
-
|
||||
|
||||
static char **include_dirs;
|
||||
static size_t include_dirs_number;
|
||||
@@ -578,7 +574,6 @@ input_push_file (char *filename)
|
||||
input_stack[input_number].line_nr.macro = 0;
|
||||
input_stack[input_number].text = 0;
|
||||
input_stack[input_number].ptext = 0;
|
||||
- input_stack[input_number].input_encoding = 0;
|
||||
input_number++;
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.17.0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user