CC
https://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg1938238.html
https://bugs.gentoo.org/916104
Signed-off-by: Frank Plowman <p...@frankplowman.com>
---
doc/t2h.pm | 97 +++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 78 insertions(+), 19 deletions(-)
diff --git a/doc/t2h.pm b/doc/t2h.pm
index d07d974286..1f23083703 100644
--- a/doc/t2h.pm
+++ b/doc/t2h.pm
@@ -20,8 +20,41 @@
# License along with FFmpeg; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+# Texinfo 7.0 changed the syntax of various functions.
+# Provide a shim for older versions.
+sub ff_set_from_init_file($$) {
+ my $key = shift;
+ my $value = shift;
+ if (exists &{'texinfo_set_from_init_file'}) {
+ texinfo_set_from_init_file($key, $value);
+ } else {
+ set_from_init_file($key, $value);
+ }
+}
+
+sub ff_get_conf($) {
+ my $key = shift;
+ if (exists &{'texinfo_get_conf'}) {
+ texinfo_get_conf($key);
+ } else {
+ get_conf($key);
+ }
+}
+
+sub get_formatting_function($$) {
+ my $obj = shift;
+ my $func = shift;
+
+ my $sub = $obj->can('formatting_function');
+ if ($sub) {
+ return $obj->formatting_function($func);
+ } else {
+ return $obj->{$func};
+ }
+}
+
# no navigation elements
-set_from_init_file('HEADERS', 0);
+ff_set_from_init_file('HEADERS', 0);
sub ffmpeg_heading_command($$$$$)
{
@@ -55,7 +88,7 @@ sub ffmpeg_heading_command($$$$$)
$element = $command->{'parent'};
}
if ($element) {
- $result .= &{$self->{'format_element_header'}}($self, $cmdname,
+ $result .= &{get_formatting_function($self,
'format_element_header')}($self, $cmdname,
$command, $element);
}
@@ -112,8 +145,8 @@ sub ffmpeg_heading_command($$$$$)
$cmdname
=
$Texinfo::Common::level_to_structuring_command{$cmdname}->[$heading_level];
}
- $result .= &{$self->{'format_heading_text'}}(
- $self, $cmdname, $heading,
+ $result .= &{get_formatting_function($self,'format_heading_text')}(
+ $self, $cmdname, [$heading],
$heading_level +
$self->get_conf('CHAPTER_HEADER_LEVEL') - 1,
$command);
}
@@ -127,22 +160,22 @@ foreach my $command
(keys(%Texinfo::Common::sectioning_commands), 'node') {
}
# determine if texinfo is at least version 6.8
-my $program_version_num =
version->declare(get_conf('PACKAGE_VERSION'))->numify;
+my $program_version_num =
version->declare(ff_get_conf('PACKAGE_VERSION'))->numify;
my $program_version_6_8 = $program_version_num >= 6.008000;
# print the TOC where @contents is used
if ($program_version_6_8) {
- set_from_init_file('CONTENTS_OUTPUT_LOCATION', 'inline');
+ ff_set_from_init_file('CONTENTS_OUTPUT_LOCATION', 'inline');
} else {
- set_from_init_file('INLINE_CONTENTS', 1);
+ ff_set_from_init_file('INLINE_CONTENTS', 1);
}
# make chapters <h2>
-set_from_init_file('CHAPTER_HEADER_LEVEL', 2);
+ff_set_from_init_file('CHAPTER_HEADER_LEVEL', 2);
# Do not add <hr>
-set_from_init_file('DEFAULT_RULE', '');
-set_from_init_file('BIG_RULE', '');
+ff_set_from_init_file('DEFAULT_RULE', '');
+ff_set_from_init_file('BIG_RULE', '');
# Customized file beginning
sub ffmpeg_begin_file($$$)
@@ -159,7 +192,18 @@ sub ffmpeg_begin_file($$$)
my ($title, $description, $encoding, $date, $css_lines,
$doctype, $bodytext, $copying_comment, $after_body_open,
$extra_head, $program_and_version, $program_homepage,
- $program, $generator) = $self->_file_header_informations($command);
+ $program, $generator);
+ if ($program_version_num >= 7.000000) {
+ ($title, $description, $encoding, $date, $css_lines,
+ $doctype, $bodytext, $copying_comment, $after_body_open,
+ $extra_head, $program_and_version, $program_homepage,
+ $program, $generator) = $self->_file_header_information($command);
+ } else {
+ ($title, $description, $encoding, $date, $css_lines,
+ $doctype, $bodytext, $copying_comment, $after_body_open,
+ $extra_head, $program_and_version, $program_homepage,
+ $program, $generator) = $self->_file_header_informations($command);
+ }
my $links = $self->_get_links ($filename, $element);
@@ -223,7 +267,7 @@ if ($program_version_6_8) {
sub ffmpeg_end_file($)
{
my $self = shift;
- my $program_string = &{$self->{'format_program_string'}}($self);
+ my $program_string =
&{get_formatting_function($self,'format_program_string')}($self);
my $program_text = <<EOT;
<p style="font-size: small;">
$program_string
@@ -244,7 +288,7 @@ if ($program_version_6_8) {
# Dummy title command
# Ignore title. Title is handled through ffmpeg_begin_file().
-set_from_init_file('USE_TITLEPAGE_FOR_TITLE', 1);
+ff_set_from_init_file('USE_TITLEPAGE_FOR_TITLE', 1);
sub ffmpeg_title($$$$)
{
return '';
@@ -262,8 +306,13 @@ sub ffmpeg_float($$$$$)
my $args = shift;
my $content = shift;
- my ($caption, $prepended) = Texinfo::Common::float_name_caption($self,
- $command);
+ if ($program_version_num >= 7.000000) {
+ my ($caption, $prepended) =
Texinfo::Convert::Converter::float_name_caption($self,
+
$command);
+ } else {
+ my ($caption, $prepended) = Texinfo::Common::float_name_caption($self,
+
$command);
+ }
my $caption_text = '';
my $prepended_text;
my $prepended_save = '';
@@ -335,8 +384,13 @@ sub ffmpeg_float($$$$$)
$caption->{'args'}->[0], 'float caption');
}
if ($prepended_text.$caption_text ne '') {
- $prepended_text = $self->_attribute_class('div','float-caption'). '>'
- . $prepended_text;
+ if ($program_version_num >= 7.000000) {
+ $prepended_text =
$self->html_attribute_class('div',['float-caption']). '>'
+ . $prepended_text;
+ } else {
+ $prepended_text = $self->_attribute_class('div',['float-caption']).
'>'
+ . $prepended_text;
+ }
$caption_text .= '</div>';
}
my $html_class = '';
@@ -349,8 +403,13 @@ sub ffmpeg_float($$$$$)
$prepended_text = '';
$caption_text = '';
}
- return $self->_attribute_class('div', $html_class). '>' . "\n" .
- $prepended_text . $caption_text . $content . '</div>';
+ if ($program_version_num >= 7.000000) {
+ return $self->html_attribute_class('div', [$html_class]). '>' . "\n" .
+ $prepended_text . $caption_text . $content . '</div>';
+ } else {
+ return $self->_attribute_class('div', [$html_class]). '>' . "\n" .
+ $prepended_text . $caption_text . $content . '</div>';
+ }
}
texinfo_register_command_formatting('float',