diff options
Diffstat (limited to 'Build/source/utils/texi2html/examples/roff.init')
-rw-r--r-- | Build/source/utils/texi2html/examples/roff.init | 1165 |
1 files changed, 0 insertions, 1165 deletions
diff --git a/Build/source/utils/texi2html/examples/roff.init b/Build/source/utils/texi2html/examples/roff.init deleted file mode 100644 index 221cb214cbf..00000000000 --- a/Build/source/utils/texi2html/examples/roff.init +++ /dev/null @@ -1,1165 +0,0 @@ -# -*-perl-*- - -main::load_init_file('', 'noheaders.init'); - -$SPLIT = 'none'; -@EXPAND = ('info'); -$USE_ISO = 0; -#$SHOW_MENU = 0; -$SMALL_RULE = ''; -$DEFAULT_RULE = ''; -$MIDDLE_RULE = ''; -$BIG_RULE = ''; -$NODE_FILE_EXTENSION = "roff"; -$EXTENSION = "roff"; -$MENU_SYMBOL = '*'; -$AVOID_MENU_REDUNDANCY = 0; - -$print_Top = \&T2H_ROFF_print_Top; -$print_misc = \&T2H_ROFF_print_misc; -$print_page_head = \&T2H_ROFF_print_page_head; -$print_page_foot = \&T2H_ROFF_print_page_foot; -$toc_body = \&T2H_ROFF_toc_body; -$titlepage = \&T2H_ROFF_titlepage; - -sub T2H_ROFF_print_page_head -{ - my $fh = shift; - print $fh <<EOT; -.nr _- 0 -.tr \\(is' -.tr \\(if` -.tr \\(pd" - -$AFTER_BODY_OPEN - -EOT - print $fh $Texi2HTML::THISDOC{'copying'} . "\n"; - print $fh "" . &$comment("Created on $Texi2HTML::THISDOC{today} by $Texi2HTML::THISDOC{program}\n"); - print $fh "" . &$comment($Texi2HTML::THISDOC{program_authors}); - print $fh ".ds St " . protect_spaces($Texi2HTML::THISDOC{'title'}) . "\n"; - print $fh '.oh \'\\\\*(St\'\'%\'' ."\n".'.eh \'%\'\'\\\\*(St\'' . "\n"; -} - -sub T2H_ROFF_print_page_foot -{ - my $fh = shift; - my $program_string = program_string(); - print $fh <<EOT; -.br -.pp -$program_string -EOT -} - -sub T2H_ROFF_print_Top($$) -{ - my $fh = shift; - my $has_top_heading = shift; - - my $buttons = \@MISC_BUTTONS; - &$print_head_navigation($fh, $buttons); - print $fh $Texi2HTML::TITLEPAGE; - main::print_lines($fh, $Texi2HTML::THIS_SECTION); -} - -sub T2H_ROFF_print_misc -{ - my $fh = shift; - &$print_misc_header($fh); - main::print_lines($fh); - &$print_misc_footer($fh); -} - -sub T2H_ROFF_titlepage () -{ - my $result = ''; - if (@{$Texi2HTML::THISDOC{'titles'}} - or @{$Texi2HTML::THISDOC{'subtitles'}} - or @{$Texi2HTML::THISDOC{'authors'}}) - { - foreach my $title (@{$Texi2HTML::THISDOC{'titles'}}) - { - $result .= ".sz +10\n.ce\n" . protect_spaces($title) . "\n.sz -10\n"; - } - foreach my $subtitle (@{$Texi2HTML::THISDOC{'subtitles'}}) - { - $result .= ".sz +4\n.ce\n" . protect_spaces($subtitle) . "\n.sz -4\n"; - } - $result .= ".sp 4\n" if ($result ne ''); - foreach my $author (@{$Texi2HTML::THISDOC{'authors'}}) - { - $result .= protect_spaces($author) . "\n.br\n"; - } - $result .= ".sp 2\n" if (@{$Texi2HTML::THISDOC{'authors'}}); - } - if (($result ne '') or ($Texi2HTML::TITLEPAGE ne '')) - { - $Texi2HTML::TITLEPAGE = ".tp\n" . $result . $Texi2HTML::TITLEPAGE . ".++ C\n"; - } -} - -######################################################################## -# Control of formatting: -# 1.) For some changes, it is often enough to change the value of -# some global map. It might necessitate building a little -# function along with the change in hash, if the change is the use -# of another function (in style_map). -# 2.) For other changes, reimplement one of the t2h_default_<fnc>* routines, -# give them another name, and assign them to the respective -# $<fnc> variable (below). - - -# -# This hash should have keys corresponding with the nonletter command accent -# whose following character is considered to be the argument -# This hash associates an accent macro to the ISO name for the accent if any. -# The customary use of this map is to find the ISO name appearing in html -# entity (like é) associated with a texinfo accent macro. -# -# The keys of the hash are -# ": umlaut -# ~: tilda accent -# ^: circumflex accent -# `: grave accent -# ': acute accent -# =: macron accent -%accent_map = ( - '"', ':', - '~', '~', - '^', '^', - '`', '`', - "'", "'", - '=', '', - ); - -# -# texinfo "simple things" (@foo) to HTML ones -# -%simple_map = ( -# "*", "\n.br\n", - ' ', '\ ', - "\t", "\\\t", - "\n", "\\\n", - # "­" or "­" could also be possible for @-, but it seems - # that some browser will consider this as an always visible hyphen mark - # which is not what we want (see http://www.cs.tut.fi/~jkorpela/shy.html) - '-', '', # hyphenation hint - '|', '', # used in formatting commands @evenfooting and friends - '/', '', - # spacing commands - ':', '', - '!', '!', - '?', '?', - '.', '\&.', - '@', '@', - '}', '}', - '{', '{', - ); - -# this map is used in preformatted text -%simple_map_pre = %simple_map; - -# -# texinfo "things" (@foo{}) to HTML ones -# -%things_map = ( - 'TeX' => 'TeX', - 'LaTeX' => 'LaTeX', - 'bullet' => '\(bu', - 'copyright' => '\(co', - 'registeredsymbol' => '\(rg', - 'dots' => '\&...', - 'enddots' => '\&....', - 'equiv' => '\(==', -# i18n - 'error' => 'error->', - 'expansion' => '\(->', - 'minus' => '\-', - 'point' => '*', - 'print' => '-|', - 'result' => '\(rh', - # set in code using the language - # 'today', &pretty_date, - 'aa' => '\(oa', - 'AA' => '\(oA', - 'ae' => '\(ae', - 'oe' => '\(oe', - 'AE' => '\(AE', - 'OE' => '\(OE', - 'o' => '\(/o', - 'O' => '\(/O', - 'ss' => '\(ss', - 'l' => '\(/l', - 'L' => '\(/L', - 'exclamdown' => '\(r!', - 'questiondown' => '\(r?', - 'pounds' => '\(Po', - 'ordm' => '\(Om', - 'ordf' => '\(Of', - 'euro' => '\(eu', - ); - -# This map is used in preformatted environments -%pre_map = %things_map; - -#%style_map = ( -# 'acronym', '', -# 'asis', '', -# 'b', ['\fB', '\fR'], -# 'cite', ['\fI', '\fR'], -# 'code', ['\fR\&\f(CW', '\fR'], -# 'command', ['\fR\&\f(CW', '\fR'], -# 'ctrl', ['\fR\&\f(CW', '\fR'], -# 'dfn', ['\fI', '\fR'], -# 'dmn', '', -# 'email', ['\fB', '\fR'], -# 'emph', ['\fI', '\fR'], -# 'env', ['\fR\&\f(CW', '\fR'], -# 'file', ['\fR\&\f(CW', '\fR', '"'], -# 'i', ['\fI', '\fR'], -# 'kbd', ['\fR\&\f(CW', '\fR'], -# 'key', ['\fR\&\f(CW', '\fR'], -# 'math', ['\fR\&\f(CW', '\fR'], -# 'option', ['\fR\&\f(CW', '\fR', '"'], -# 'r', ['\fR', ''], -# 'samp', ['\fR\&\f(CW', '\fR', '"'], -# 'sc', '&roff_sc', -# 'strong', ['\fB', '\fR'], -# 't', ['\fR\&\f(CW', '\fR'], -# 'uref', '&default_uref', -# 'url', '&default_url', -# 'var', ['\fI', '\fR'], -# 'verb', ['\fR\&\f(CW', '\fR'], -# 'titlefont', ["\n.sz +10\n.ce\n", "\n.sz -10\n"], -# 'w', '', -# 'H', '&roff_accent', -# 'dotaccent', '&roff_accent', -# 'ringaccent', '&roff_accent', -# 'tieaccent', '&roff_accent', -# 'u', '&roff_accent', -# 'ubaraccent', '&roff_accent', -# 'udotaccent', '&roff_accent', -# 'v', '&roff_accent', -# ',', '&roff_accent', -# 'dotless', '' -# ); - -my @bold_commands = ('strong', 'b', 'email'); -my @italic_commands = ('cite', 'dfn', 'emph', 'i', 'var', 'slanted'); -my @fixed_command = ('code', 'command', 'ctrl', 'env', 'file', 'kbd', 'key', - 'math', 'option', 'samp', 't', 'verb'); - -foreach my $accent_command ('tieaccent', 'dotless', keys(%unicode_accents), keys(%accent_map)) -{ - #$style_map{$accent_command} = { 'function' => \&t2h_roff_accent }; - $style_map{$accent_command} = '&roff_accent'; -} -#foreach my $accent (keys(%accent_map)) -#{ -# $style_map{$accent} = '&roff_accent'; -#} - -foreach my $command (keys(%style_map)) -{ - delete $style_map{$command}->{'attribute'} if (exists($style_map{$command}->{'attribute'})); - if (grep {$_ eq $command} @bold_commands) - { - delete $style_map{$command}->{'function'} if (exists($style_map{$command}->{'function'})); - $style_map{$command}->{'begin'} = '\fB'; - $style_map{$command}->{'end'} = '\fR'; - next; - } - elsif (grep {$_ eq $command} @italic_commands) - { - delete $style_map{$command}->{'function'} if (exists($style_map{$command}->{'function'})); - $style_map{$command}->{'begin'} = '\fI'; - $style_map{$command}->{'end'} = '\fR'; - next; - } - elsif (grep {$_ eq $command} @fixed_commands) - { - delete $style_map{$command}->{'function'} if (exists($style_map{$command}->{'function'})); - $style_map{$command}->{'begin'} = '\fR\&\f(CW'; - $style_map{$command}->{'end'} = '\fR'; - next; - } -} - -delete $style_map{'titlefont'}->{'function'} if (exists($style_map{'titlefont'}->{'function'})); -$style_map{'titlefont'}->{'begin'} = "\n.sz +10\n.ce\n"; -$style_map{'titlefont'}->{'end'} = "\n.sz -10\n"; - -delete $style_map{'r'}->{'function'} if (exists($style_map{'r'}->{'function'})); -$style_map{'r'}->{'begin'} = '\r'; -#$style_map{'r'}->{'end'} = ''; - -$style_map{'sc'} = '&roff_sc'; - -$style_map{'indicateurl'}->{'begin'} = '<'; -$style_map{'indicateurl'}->{'end'} = '>'; - -foreach my $command (keys(%style_map)) -{ - if (ref($style_map{$command}) ne 'HASH') - { - $style_map_pre{$command} = $style_map{$command}; - next; - } - $style_map_pre{$command} = {}; - foreach my $key (keys(%{$style_map{$command}})) - { - $style_map_pre{$command}->{$key} = $style_map{$command}->{$key}; - } -} - -%special_accents = ( - 'ringaccent' => 'aA', - "'" => 'aeiouyAEIOUY', - ',' => 'cC', - '^' => 'aeiouAEIOU', - '`' => 'aeiouAEIOU', - '~' => 'nNaoAO', - '"' => 'aeiouyAEIOUY', - 'v' => 'sSzZ', -); - -sub roff_accent($$) -{ - my $text = shift; - my $accent = shift; - return $text if ($accent eq 'dotless'); - return "\\($accent_map{$accent}${text}" if (defined($accent_map{$accent}) and defined($special_accents{$accent}) and ($text =~ /^[$special_accents{$accent}]$/)); - return "\\(o${text}" if (($accent eq 'ringaccent') and (defined($special_accents{$accent})) and ($text =~ /^[$special_accents{$accent}]$/)); - return "\\(v${text}" if (($accent eq 'v') and (defined($special_accents{$accent})) and ($text =~ /^[$special_accents{$accent}]$/)); - return "\\(,${text}" if (($accent eq ',') and (defined($special_accents{$accent})) and ($text =~ /^[$special_accents{$accent}]$/)); -#FIXME maybe we should protect the symbols such that they look like strings and -# not ponctuation marks ? Like it is done in texi2roff ? -# otherwise we should use -# return ascii_accents($text, $accent); - return $text . $accent if (defined($accent_map{$accent})); - return $text . "''" if ($accent eq 'H'); - return $text . '\\&.' if ($accent eq 'dotaccent'); - return $text . '*' if ($accent eq 'ringaccent'); - return $text . '[' if ($accent eq 'tieaccent'); - return $text . '(' if ($accent eq 'u'); - return $text . '_' if ($accent eq 'ubaraccent'); - return '\\&.' . $text if ($accent eq 'udotaccent'); - return $text . '<' if ($accent eq 'v'); - return $text . ',' if ($accent eq ','); -} - -sub roff_sc($$) -{ - return "\n.sz -6\n" . uc($_[0]) . "\n.sz +6\n" ; -} - -sub roff_ctrl($$) -{ - return "\\*^$_[0]"; -} - -$format = \&T2H_ROFF_format; - -sub T2H_ROFF_format($$$) -{ - my $tag = shift; - my $element = shift; - my $text = shift; - return '' if (!defined($element) or ($text !~ /\S/)); - return $element->[0] . $text . $element->[1]; -} - -%format_map = ( - 'quotation' => [ ".(q\n", ".)q\n" ], - # lists - 'itemize' => [ ".(l L F\n.ba +5\n", ".ba -5\n.)l\n" ], - 'enumerate' => [ ".(l L F\n.ba +5\n", ".ba -5\n.)l\n" ], - 'multitable' => [ ".(l M\n.nh\n", ".hy\n.)l\n" ], - 'table' => [ ".(l L F\n.ba +5\n", ".ba -5\n.)l\n" ], - 'vtable' => [ ".(l L F\n.ba +5\n", ".ba -5\n.)l\n" ], - 'ftable' => [ ".(l L F\n.ba +5\n", ".ba -5\n.)l\n" ], - ); - -%special_list_commands = ( - 'table' => {}, - 'vtable' => {}, - 'ftable' => {}, - 'itemize' => {} - ); - -# an eval of these $complex_format_map->{what}->{'begin'} yields beginning -# an eval of these $complex_format_map->{what}->{'end'} yields end -# $EXAMPLE_INDENT_CELL and SMALL_EXAMPLE_INDENT_CELL can be usefull here -$complex_format_map = -{ - 'example' => - { - 'begin' => q{""}, - 'end' => q{""}, - 'begin_region' => ".(l I\n\\&\\fR\\f(CW", - 'end_region' => "\\&\\fR\n.)l\n" - }, - 'smallexample' => - { - 'begin' => q{""}, - 'end' => q{""}, - 'begin_region' => ".(l I\n.size -2\n\\&\\fR\\f(CW", - 'end_region' => "\\&\\fR\n.size +2\n.)l\n" - }, - 'display' => - { - 'begin' => q{""}, - 'end' => q{""}, - 'begin_region' => ".(l I\n\\&\\fR\\f(CW", - 'end_region' => "\\&\\fR\n.)l\n" - }, - 'smalldisplay' => - { - 'begin' => q{""}, - 'end' => q{""}, - 'begin_region' => ".(l I\n.size -2\n\\&\\fR\\f(CW", - 'end_region' => "\\&\\fR\n.size +2\n.)l\n" - }, - 'menu-comment' => - { - 'begin' => q{""}, - 'end' => q{""}, - 'begin_region' => "", - 'end_region' => "\n" - }, - 'menu-preformatted' => - { - 'begin' => q{""}, - 'end' => q{""}, - 'begin_region' => "", - 'end_region' => "\n" - } -}; - -# format shouldn't narrow the margins - -$complex_format_map->{'lisp'} = $complex_format_map->{'example'}; -$complex_format_map->{'smalllisp'} = $complex_format_map->{'smallexample'}; -$complex_format_map->{'format'} = $complex_format_map->{'display'}; -$complex_format_map->{'smallformat'} = $complex_format_map->{'smalldisplay'}; - -sub protect_spaces($) -{ - my $text = shift; - my $result = ''; - while($text) - { - if ($text =~ s/^([^\\]*)\\//o) - { - my $leading = $1; - if (defined($leading)) - { - $leading =~ s/([\t ])/\\$1/go; - $result .= $leading . '\\'; - } - if (($text =~ s/^(\s)//o) or ($text =~ s/^(.)//o)) - { - $result .= $1; - } - } - else - { - $text =~ s/([\t ])/\\$1/go; - $result .= $text; - $text = ''; - } - } - return $result; -} - -# formatting functions - -$anchor = \&t2h_roff_anchor; -$def_item = \&t2h_roff_def_item; -$def = \&t2h_roff_def; -$menu = \&t2h_roff_menu; -$menu_link = \&t2h_roff_menu_link; -$menu_comment = \&t2h_roff_menu_comment; -$menu_description = \&t2h_roff_menu_description; -$simple_menu_link = \&t2h_roff_simple_menu_link; -$table_item = \&t2h_roff_table_item; -$table_line = \&t2h_roff_table_line; -$row = \&t2h_roff_row; -$cell = \&t2h_roff_cell; -$list_item = \&t2h_roff_list_item; -$comment = \&t2h_roff_comment; -$def_line = \&t2h_roff_def_line; -$raw = \&t2h_roff_raw; -$heading = \&t2h_roff_heading; -$paragraph = \&t2h_roff_paragraph; -$preformatted = \&t2h_roff_preformatted; -$foot_line_and_ref = \&t2h_roff_foot_line_and_ref; -$foot_section = \&t2h_roff_foot_section; -$image = \&t2h_roff_image; -$index_entry_label = \&t2h_roff_index_entry_label; -$index_summary = \&t2h_roff_index_summary; -$print_index = \&t2h_roff_print_index; -$protect_text = \&t2h_roff_protect_text; -$cartouche = \&t2h_roff_cartouche; -$sp = \&t2h_roff_sp; -$normal_text = \&t2h_roff_normal_text; -$empty_line = \&t2h_roff_empty_line; -$unknown = \&t2h_roff_unknown; -$float = \&t2h_roff_float; -$listoffloats = \&t2h_roff_listoffloats; -$listoffloats_entry = \&t2h_roff_listoffloats_entry; - -# This function is used to protect characters which are special in html -# in inline text: &, ", <, and >. -# -# argument: -# text to be protected -sub t2h_roff_protect_text($) -{ - my $text = shift; - $text =~ s/\\/\\e/g; - $text =~ s/$;---$;/\\(em/g; - $text =~ s/$;--$;/-/g; - $text =~ s/$;-$;/\\-/g; - $text =~ s/^\./\\&./; - $text =~ s/([\s])\./$1\\&./g; - return $text; -} - -sub t2h_roff_normal_text($) -{ - my $text = shift; - #$text =~ s/---/\\(em/g; - $text =~ s/(--?-?)/$;$1$;/go; - return $text; -} - -sub t2h_roff_unknown($$) -{ - my $macro = shift; - my $line = shift; - - if ($macro eq '*') - { - $line = '' if ($line =~ /^\s*$/); - return ($line, 1, "\n.br\n", undef); - } - return ($line, 0, undef, undef); -} - - -# This function produces an anchor -# -# arguments: -# $name : anchor name -# $href : anchor href -# text : text displayed -# extra_attribs : added to anchor attributes list -sub t2h_roff_anchor($;$$$) -{ - my $name = shift; - my $href = shift; - my $text = shift; - my $attributes = shift; - $href = '' if (!defined($href) or ($href !~ /\S/)); - $text = '' if (!defined($text)); - return $text if ($text ne ''); - return "[$href]" if ($href ne ''); - return ''; -} - -# This function is used to format the text associated with a @deff/@end deff -# -# argument: -# text -sub t2h_roff_def_item($) -{ - my $text = shift; - if ($text =~ /\S/) - { - { - #return ".ba +5\n.(l L F\n" . $text . ".)l\n.ba -5\n"; - return ".(l L F\n.ba +5\n" . $text . ".ba -5\n.)l\n"; - } - } - return ''; -} - -# format the container for the @deffn line and text -# -# argument -# text of the whole @def, line and associated text. -sub t2h_roff_def($) -{ - my $text = shift; - return $text; -} - -# a whole menu -# -# argument: -# the whole menu text (entries and menu comments) -# -# argument: -# whole menu text. -sub t2h_roff_menu($) -{ - my $text = shift; - chomp $text; - return ".(l M\n\\&\\s8" . &$I('Menu:') . "\n" . $text . "\\&\\s0\n.)l\n"; -} - -# a simple menu entry ref in case we aren't in a standard menu context -sub t2h_roff_simple_menu_link($$$$$) -{ - my $text = shift; - my $href = shift; - my $node = shift; - my $name = shift; - my $ending = shift; - $name .= ':' if ($name ne ''); - return "$MENU_SYMBOL$name$node$ending"; -} - -# formats a menu entry link pointing to a node or section -# -# arguments: -# the entry text -# the state, a hash reference holding informations about the context, with a -# usefull entry, 'preformatted', true if we are in a preformatted format -# (a format keeping space between words). In that case a function -# of the main program, main::do_preformatted($text, $state) might -# be used to format the text with the current format style. -# href is optionnal. It is the reference to the section or the node anchor -# which should be used to make the link (typically it is the argument -# of a href= attribute in a <a> element). -sub t2h_roff_menu_link($$$$$$) -{ - my $text = shift; - my $state = shift; - my $href = shift; - my $node = shift; - my $name = shift; - my $ending = shift; - $name .= ':' if ($name ne ''); - return "$MENU_SYMBOL$name$node$ending"; -} - -# formats a menu entry description, ie the text appearing after the node -# specification in a menu entry an spanning until there is another -# menu entry, an empty line or some text at the very beginning of the line -# (we consider that text at the beginning of the line begins a menu comment) -# -# arguments: -# the description text -# the state. See menu_entry. -sub t2h_roff_menu_description($$) -{ - my $text = shift; - my $state = shift; - return $text; -} - -# a menu comment (between menu lines) -# formats the container of a menu comment. A menu comment is any text -# appearing between menu lines, either separated by an empty line from -# the preceding menu entry, or a text beginning at the first character -# of the line (text not at the very beginning of the line is considered to -# be the continuation of a menu entry description text). -# -# The text itself is considered to be in a preformatted environment -# with name 'menu-commment' and with style $MENU_PRE_STYLE. -# -# argument -# text contained in the menu comment. -sub t2h_roff_menu_comment($) -{ - my $text = shift; - return $text; -} - -# text after @item in table, vtable and ftable -sub t2h_roff_table_item($$$$$) -{ - my $text = shift; - my $index_label = shift; - my $format = shift; - my $command = shift; - my $formatted_command = shift; - $formatted_command = '' if (!defined($formatted_command) or - exists($special_list_commands{$format}->{$command})); - $text = '.ip ' . $formatted_command . protect_spaces($text) . "\n"; - $text .= $index_label if (defined($index_label)); - return $text; -} - -# format text on the line following @item (in table, vtable and ftable) -sub t2h_roff_table_line($) -{ - my $text = shift; - return $text; -} - -# row in multitable -sub t2h_roff_row($) -{ - my $text = shift; - - if ($text =~ /\S/) - { - return $text ."\n" ; - } - return ''; -} - -# cell in multitable -sub t2h_roff_cell($) -{ - my $text = shift; - chomp $text; - return protect_spaces($text) . "\\\t"; -} - -# format an item in a list -# -# argument: -# text of the item -sub t2h_roff_list_item($$$$$$$) -{ - my $text = shift; - my $format = shift; - my $command = shift; - my $formatted_command = shift; - my $item_nr = shift; - my $enumerate_style = shift; - my $number = shift; - $formatted_command = '' if (!defined($formatted_command) or - exists($special_list_commands{$format}->{$command})); - if ($text =~ /\S/) - { - #return $formatted_command . $text; - return $text . "\n"; - } - return ''; -} - -# an comment -sub t2h_roff_comment($) -{ - my $text = shift; - my $result = ''; - while ($text) - { - $text =~ s/$;---$;/--/g; - $text =~ s/$;--$;/-/g; - $text =~ s/$;-$;/-/g; - $text =~ s/^(.*)//; - $result .= ".\\\"$1"; - $result .= "\n" if ($text =~ s/^\n//); - } - return $result; -} - -# a paragraph -sub t2h_roff_paragraph($$$$$$$$$) -{ - my $text = shift; - my $align = shift; - my $paragraph_command = shift; - my $paragraph_command_formatted = shift; - my $paragraph_number = shift; - my $format = shift; - my $item_nr = shift; - my $enumerate_style = shift; - my $number = shift; - return '' if ($text =~ /^\s*$/); - if (defined($paragraph_number) and defined($$paragraph_number)) - { - $$paragraph_number++; - $paragraph_command_formatted = undef if ($$paragraph_number > 1); - } - $paragraph_command_formatted = '' if (!defined($paragraph_command_formatted) or - exists($special_list_commands{$format}->{$paragraph_command})); - #return $text if (defined($format) and $format eq 'multitable'); - return $text if (defined($format) and (($format eq 'multitable') or ($format eq 'quotation'))); - my $open = ".pp\n"; - if (defined($format) and (($format eq 'itemize') or ($format eq 'enumerate')) and - defined($paragraph_number) and defined($$paragraph_number) and ($$paragraph_number == 1)) - { - $open = ".lp\n"; - } - my $close = ''; - if ($align) - { - if ($align eq 'flushleft') - { - $open .= ".ad l\n"; - $close .= ".ad b\n"; - } - elsif ($align eq 'flushright') - { - $open .= ".ad r\n"; - $close .= ".ad b\n"; - } - elsif ($align eq 'center') - { - $open .= ".ce\n"; - } - } - if (defined($format) and ($format eq 'enumerate') and - defined($paragraph_number) and defined($$paragraph_number) and ($$paragraph_number == 1) and defined($number) and ($number ne '')) - { - $open .= "$number."; - } - chomp ($text); - return $open. $paragraph_command_formatted . $text . "\n" . $close; -} - -# a preformatted region -sub t2h_roff_preformatted($$$$$$$$$$) -{ - my $text = shift; - my $pre_style = shift; - my $class = shift; - my $leading_command = shift; - my $leading_command_formatted = shift; - my $preformatted_number = shift; - my $format = shift; - my $item_nr = shift; - my $enumerate_style = shift; - my $number = shift; - $leading_command_formatted = '' if (!defined($leading_command_formatted) or - exists($special_list_commands{$format}->{$leading_command})); - - if (defined($format) and $format eq 'multitable') - { - my $chomped = chomp($text); - my $result = '\&\fR\f(CW' . $text . '\&\fR'; - $result .= "\n" if ($chomped); - return $result; - } - return '' if ($text eq ''); - if (defined($preformatted_number) and defined($$preformatted_number)) - { - $$preformatted_number++; - $leading_command_formatted = undef if ($$preformatted_number > 1); - } - $leading_command_formatted = '' if (!defined($leading_command_formatted)); - chomp $text; - my $open = ''; - if (defined($format) and ($format eq 'enumerate') and - defined($paragraph_number) and defined($$paragraph_number) and ($$paragraph_number == 1) and defined($number) and ($number ne '')) - { - $open = "$number. "; - } - return $complex_format_map->{$class}->{'begin_region'} . $leading_command_formatted . $open . $text . $complex_format_map->{$class}->{'end_region'}; -} - -# This function formats a heading for an element -# -# argument: -# an element. It is a hash reference for a node or a sectionning command. -# The interesting keys are: -# 'text': the heading text -# 'name': the heading text without section number -# 'node': true if it is a node -# 'level': level of the element. 0 for @top, 1 for chapter, heading, -# appendix..., 2 for section and so on... -# 'tag_level': the sectionning element name, raisesections and lowersections -# taken into account -# -# relevant configuration variable: -# $NUMBER_SECTIONS -sub t2h_roff_heading($) -{ - my $element = shift; - my $name = $element->{'text'}; - if (!$element->{'node'}) - { - $name = $element->{'name'}; - } - return '' if ($element->{'name'} !~ /\S/); - my $class = $element->{'tag_level'}; - $class = 'unnumbered' if ($class eq 'top'); - $level = $element->{'level'}; - $level = 3 if (!defined($level)); - $level = 1 if ($level == 0); - my $heading = ''; - $heading = ".bp\n" if ($level == 1); - $heading .= '.if !\n(_- \{\\' . "\n.nr _- 1\n.nr \$1 0 1\n" . '.af $1 A\}' . "\n" - if ($class =~ /^appendix/); - $name = protect_spaces($name); - my $toc_entry = '\&'; - if ($class =~ /^unnumbered/ or ($class eq 'node')) - { - $heading .= ".uh $name\n"; - $toc_entry .= ' '; - } - elsif (($class =~ /section$/) or ($class eq 'chapter') or ($class =~ /^appendix/)) - { - $heading .= ".sh $level $name\n"; - my $number = 1; - while ($number < $level) - { - $toc_entry .= "\\n(\$$number."; - $number++; - } - $toc_entry .= "\\n(\$$number "; - } - $toc_entry .= $name; - return $heading . "\n" if ($class eq 'node'); - return $heading . ".(x\n" . $toc_entry . "\n.)x\n\\&\\fR\n"; -} - -sub T2H_ROFF_toc_body($$$) -{ - my $elements_list = shift; - my $do_contents = shift; - my $do_scontents = shift; - if ($do_contents or $do_scontents) - { - my $lines = ".pp\n.nr % 0 1\n.af % i\n.bp \\n%+1\n.ce\n\\&\\fB" . &$I('Table of Contents') . "\\fR\n.sp 2\n.xp\n"; - if (!$do_contents) - { - push @{$Texi2HTML::OVERVIEW}, $lines; - } - else - { - push @{$Texi2HTML::TOC_LINES}, $lines; - } - } -} - -# formatting of raw regions -# ih L2H is true another mechanism is used for tex -sub t2h_roff_raw($$) -{ - my $style = shift; - my $text = shift; - if ($style eq 'verbatim' or $style eq 'tex' or $style eq 'html') - { - chomp ($text); - return ".(l M\n\\fR\\&\\f(CW" . &$protect_text($text) . "\\fR\n.)l\n" ; - } - else - { - warn "$WARN (bug) unknown style $style\n"; - return &$protect_text($text); - } -} - -# This function formats a footnote reference and the footnote text associated -# with a given footnote. -# The footnote reference is the text appearing in the main document pointing -# to the footnote text. -# -# arguments: -# absolute number of the footnote (in the document) -# relative number of the footnote (in the page) -# identifier for the footnote -# identifier for the footnote reference in the main document -# main document file -# footnote text file -# array with the footnote text lines -# the state. See menu entry. -# -# returns: -# reference on an array containing the footnote text lines which should -# have been updated -# the text for the reference pointing on the footnote text -sub t2h_roff_foot_line_and_ref($$$$$$$) -{ - my $number_in_doc = shift; - my $number_in_page = shift; - my $footnote_id = shift; - my $place_id = shift; - my $document_file = shift; - my $footnote_file = shift; - my $lines = shift; - my $state = shift; - - my $text = ''; - my $line; - while (@$lines) - { - $line = shift @$lines; - $text .= $line; - } - chomp $text; - return ([], "\n.(f\n" . $text . "\n.)f\n" ); -} - -# formats a group of footnotes. -# -# argument: -# array reference on the footnotes texts lines -# -# returns an array reference on the group of footnotes lines -sub t2h_roff_foot_section($) -{ - my $lines = shift; - @$lines = (); -} - -# format an image -# -# arguments: -# image file name -# image basename -# a boolean true if we are in a preformatted format -sub t2h_roff_image($$$$) -{ - my $file = shift; - my $base = shift; - my $preformatted = shift; - my $file_name = shift; - return "[$base src=$file_name]" if ($base ne $file_name); - return "[$base]"; -} - -# format a target in the main document for an index entry. -# -# arguments: -# target identifier -# boolean true if in preformatted format -sub t2h_roff_index_entry_label($$$$) -{ - my $identifier = shift; - my $preformatted = shift; - my $label = shift; - my $index_name = shift; - return ".(x $index_name\n" . protect_spaces($label) . "\n.)x\n"; -} - -# process definition commands line @deffn for example -sub t2h_roff_def_line($$$$$) -{ - my $category = shift; - my $name = shift; - my $type = shift; - my $arguments = shift; - my $index_label = shift; - $index_label = '' if (!defined($index_label)); - $name = '' if (!defined($name) or ($name =~ /^\s*$/)); - $type = '' if (!defined($type) or $type =~ /^\s*$/); - if (!defined($arguments) or $arguments =~ /^\s*$/) - { - $arguments = ''; - } - else - { - $arguments = '\fI' . protect_spaces($arguments) . '\fR'; - } - my $type_name = ' '; - $type_name = " $type" if ($type ne ''); - - $type_name .= '\fB' . protect_spaces($name) . '\fR' if ($name ne ''); - $type_name .= $arguments . "\n"; - return '\fI' . protect_spaces($category) . ':\fR' . $type_name . $index_label; -} - -# a cartouche -sub t2h_roff_cartouche($$) -{ - my $text = shift; - return $text; -} - -sub t2h_roff_sp($$) -{ - my $number = shift; - my $preformatted = shift; - return "\n.sp $number\n"; -} - -# format a whole index -# -# argument: -# index text -# index name -sub t2h_roff_print_index($$) -{ - my $text = shift; - my $name = shift; - return ".xp $name\n"; -} - -# format an index summary. This is a list of letters linking to the letter -# entries. -# -# arguments: -# array reference containing the formatted alphabetical letters -# array reference containing the formatted non lphabetical letters -sub t2h_roff_index_summary($$) -{ - my $alpha = shift; - my $nonalpha = shift; - my $join = ''; - my $nonalpha_text = ''; - my $alpha_text = ''; - return ''; -} - -# FIXME the following construct leads to something wrong ? -# something @c a comment -# -# other thing -sub t2h_roff_empty_line($) -{ - my $text = shift; - return ''; -} - -sub t2h_roff_listoffloats_entry($$$$) -{ - my $style_texi = shift; - my $float = shift; - my $float_style = shift; - my $caption = shift; - my $href = shift; - chomp ($caption); - - return '.ip ' . protect_spaces($float_style) . "\n" . $caption . "\n"; -} - -sub t2h_roff_listoffloats($$$) -{ - my $style_texi = shift; - my $style = shift; - my $float_entries = shift; - - my $result = ".(l L F\n.ba +5\n"; - foreach my $float_entry (@$float_entries) - { - $result .= $float_entry; - } - return $result . ".ba -5\n.)l\n"; -} - -sub t2h_roff_float($$$$$) -{ - my $text = shift; - my $float = shift; - my $caption = shift; - my $shortcaption = shift; - - my $caption_text = ''; - - if (defined($float->{'caption_texi'})) - { - $caption_text = $caption; - } - elsif (defined($float->{'shortcaption_texi'})) - { - $caption_text = $shortcaption; - } - elsif (defined($caption)) - { - $caption_text = $caption; - } - chomp ($caption_text); - return ".(b L F\n" . $text . $caption_text . "\n.b)\n"; -} - -1; |