[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: Give documentlanguage setting priority over @docu
From: |
Gavin D. Smith |
Subject: |
branch master updated: Give documentlanguage setting priority over @documentlanguage |
Date: |
Sat, 28 Aug 2021 05:58:16 -0400 |
This is an automated email from the git hooks/post-receive script.
gavin pushed a commit to branch master
in repository texinfo.
The following commit(s) were added to refs/heads/master by this push:
new b767760 Give documentlanguage setting priority over @documentlanguage
b767760 is described below
commit b7677606be614bca3277904178b4bde72c211cc8
Author: Gavin Smith <gavinsmith0123@gmail.com>
AuthorDate: Sat Aug 28 10:58:02 2021 +0100
Give documentlanguage setting priority over @documentlanguage
* tp/Texinfo/XS/parsetexi/Parsetexi.xs,
* tp/Texinfo/XS/parsetexi/api.c (set_documentlanguage_override):
New Perl-visible function to replace set_documentlanguage.
* tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Call it.
* tp/Texinfo/XS/parsetexi/parser.c (set_documentlanguage_fixed):
New variable.
* tp/Texinfo/XS/parsetexi/parser.c (set_documentlanguage): Don't
set the document language if it was already set by
set_documentlanguage_override.
---
ChangeLog | 16 ++++++++++++++++
tp/Texinfo/XS/parsetexi/Parsetexi.pm | 6 +++---
tp/Texinfo/XS/parsetexi/Parsetexi.xs | 2 +-
tp/Texinfo/XS/parsetexi/api.c | 8 ++++++++
tp/Texinfo/XS/parsetexi/api.h | 2 ++
tp/Texinfo/XS/parsetexi/parser.c | 9 +++++++--
tp/Texinfo/XS/parsetexi/parser.h | 1 +
7 files changed, 38 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 68641c0..b87554b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2021-08-28 Gavin Smith <gavinsmith0123@gmail.com>
+
+ Give documentlanguage setting priority over @documentlanguage
+
+ * tp/Texinfo/XS/parsetexi/Parsetexi.xs,
+ * tp/Texinfo/XS/parsetexi/api.c (set_documentlanguage_override):
+ New Perl-visible function to replace set_documentlanguage.
+ * tp/Texinfo/XS/parsetexi/Parsetexi.pm (parser): Call it.
+ * tp/Texinfo/XS/parsetexi/parser.c (set_documentlanguage_fixed):
+ New variable.
+ * tp/Texinfo/XS/parsetexi/parser.c (set_documentlanguage): Don't
+ set the document language if it was already set by
+ set_documentlanguage_override.
+
+ Report from Patrice.
+
2021-08-27 Patrice Dumas <pertusus@free.fr>
* tp/Texinfo/Convert/Converter.pm (xml_accent): if using numerical
diff --git a/tp/Texinfo/XS/parsetexi/Parsetexi.pm
b/tp/Texinfo/XS/parsetexi/Parsetexi.pm
index 992f4a8..5ee1851 100644
--- a/tp/Texinfo/XS/parsetexi/Parsetexi.pm
+++ b/tp/Texinfo/XS/parsetexi/Parsetexi.pm
@@ -1,4 +1,4 @@
-# Copyright 2014-2020 Free Software Foundation, Inc.
+# Copyright 2014-2021 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
@@ -58,7 +58,7 @@ sub simple_parser {
goto &parser;
}
-# Stub for Texinfo::Parser::parser
+# Initialize the parser
sub parser (;$$)
{
my $conf = shift;
@@ -103,7 +103,7 @@ sub parser (;$$)
}
} elsif ($key eq 'documentlanguage') {
if (defined ($conf->{$key})) {
- set_documentlanguage ($conf->{$key});
+ set_documentlanguage_override ($conf->{$key});
}
} elsif ($key eq 'FORMAT_MENU') {
if ($conf->{$key} eq 'menu') {
diff --git a/tp/Texinfo/XS/parsetexi/Parsetexi.xs
b/tp/Texinfo/XS/parsetexi/Parsetexi.xs
index 705a4cc..36dd3b9 100644
--- a/tp/Texinfo/XS/parsetexi/Parsetexi.xs
+++ b/tp/Texinfo/XS/parsetexi/Parsetexi.xs
@@ -103,7 +103,7 @@ void
conf_set_IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME (int i)
void
-set_documentlanguage (value)
+set_documentlanguage_override (value)
char *value
void
diff --git a/tp/Texinfo/XS/parsetexi/api.c b/tp/Texinfo/XS/parsetexi/api.c
index cf3fabe..efc74d3 100644
--- a/tp/Texinfo/XS/parsetexi/api.c
+++ b/tp/Texinfo/XS/parsetexi/api.c
@@ -1025,3 +1025,11 @@ set_debug (int value)
debug_output = value;
}
+void
+set_documentlanguage_override (char *value)
+{
+ free (global_documentlanguage);
+ global_documentlanguage = strdup (value);
+ global_documentlanguage_fixed = 1;
+}
+
diff --git a/tp/Texinfo/XS/parsetexi/api.h b/tp/Texinfo/XS/parsetexi/api.h
index 7843680..e86b535 100644
--- a/tp/Texinfo/XS/parsetexi/api.h
+++ b/tp/Texinfo/XS/parsetexi/api.h
@@ -13,6 +13,8 @@ void reset_parser_except_conf (void);
void set_debug (int);
void wipe_values (void);
void reset_context_stack (void);
+void set_documentlanguage_override (char *value);
+
HV *build_texinfo_tree (void);
AV *build_label_list (void);
diff --git a/tp/Texinfo/XS/parsetexi/parser.c b/tp/Texinfo/XS/parsetexi/parser.c
index 30aa5da..2453f2e 100644
--- a/tp/Texinfo/XS/parsetexi/parser.c
+++ b/tp/Texinfo/XS/parsetexi/parser.c
@@ -136,15 +136,20 @@ COUNTER count_cells;
GLOBAL_INFO global_info;
char *global_clickstyle = 0;
char *global_documentlanguage = 0;
+int global_documentlanguage_fixed = 0;
int global_accept_internalvalue = 0;
enum kbd_enum global_kbdinputstyle = kbd_distinct;
+/* Set the document language unless it was set on the texi2any command line. */
void
set_documentlanguage (char *value)
{
- free (global_documentlanguage);
- global_documentlanguage = strdup (value);
+ if (!global_documentlanguage_fixed)
+ {
+ free (global_documentlanguage);
+ global_documentlanguage = strdup (value);
+ }
}
void
diff --git a/tp/Texinfo/XS/parsetexi/parser.h b/tp/Texinfo/XS/parsetexi/parser.h
index 045327c..a44d4a0 100644
--- a/tp/Texinfo/XS/parsetexi/parser.h
+++ b/tp/Texinfo/XS/parsetexi/parser.h
@@ -176,6 +176,7 @@ extern ELEMENT *current_part;
extern GLOBAL_INFO global_info;
extern char *global_clickstyle;
extern char *global_documentlanguage;
+extern int global_documentlanguage_fixed;
extern int global_accept_internalvalue;
enum kbd_enum {kbd_none, kbd_code, kbd_example, kbd_distinct };
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: Give documentlanguage setting priority over @documentlanguage,
Gavin D. Smith <=