annotate src/fftw-3.3.8/doc/FAQ/m-lout.pl @ 168:ceec0dd9ec9c

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam <cannam@all-day-breakfast.com>
date Fri, 07 Feb 2020 11:51:13 +0000
parents bd3cc4d1df30
children
rev   line source
cannam@167 1 ## Lout output
cannam@167 2 # Copyright (C) 1993-1995 Ian Jackson.
cannam@167 3
cannam@167 4 # This file is free software; you can redistribute it and/or modify
cannam@167 5 # it under the terms of the GNU General Public License as published by
cannam@167 6 # the Free Software Foundation; either version 2, or (at your option)
cannam@167 7 # any later version.
cannam@167 8
cannam@167 9 # It is distributed in the hope that it will be useful,
cannam@167 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
cannam@167 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
cannam@167 12 # GNU General Public License for more details.
cannam@167 13
cannam@167 14 # You should have received a copy of the GNU General Public License
cannam@167 15 # along with GNU Emacs; see the file COPYING. If not, write to
cannam@167 16 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
cannam@167 17 # Boston, MA 02111-1307, USA.
cannam@167 18
cannam@167 19 # (Note: I do not consider works produced using these BFNN processing
cannam@167 20 # tools to be derivative works of the tools, so they are NOT covered
cannam@167 21 # by the GPL. However, I would appreciate it if you credited me if
cannam@167 22 # appropriate in any documents you format using BFNN.)
cannam@167 23
cannam@167 24 sub lout_init {
cannam@167 25 open(LOUT,">$prefix.lout");
cannam@167 26 chop($dprint= `date '+%d %B %Y'`);
cannam@167 27 $dprint =~ s/^0//;
cannam@167 28 }
cannam@167 29
cannam@167 30 sub lout_startup {
cannam@167 31 local ($lbs) = &lout_sanitise($user_brieftitle);
cannam@167 32 print LOUT <<END;
cannam@167 33 \@SysInclude{ fontdefs }
cannam@167 34 \@SysInclude{ langdefs }
cannam@167 35 \@SysInclude{ dl }
cannam@167 36 \@SysInclude{ docf }
cannam@167 37 \@Use { \@DocumentLayout
cannam@167 38 \@OddTop { \@Null }
cannam@167 39 \@EvenTop { \@Null }
cannam@167 40 \@StartOddTop { \@Null }
cannam@167 41 \@StartEvenTop { \@Null }
cannam@167 42 \@OddFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } }
cannam@167 43 \@EvenFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } }
cannam@167 44 \@StartOddFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } }
cannam@167 45 \@StartEvenFoot { { $lbs } \@Centre{ - \@PageNum - } \@Right{ $dprint } }
cannam@167 46 \@ParaGap { 1.70vx }
cannam@167 47 \@InitialBreak { 1.0fx ragged hyphen }
cannam@167 48 }
cannam@167 49 \@Use { \@OrdinaryLayout }
cannam@167 50 END
cannam@167 51 $lout_textstatus= 'p';
cannam@167 52 }
cannam@167 53
cannam@167 54 sub lout_pageref {
cannam@167 55 print LOUT "Q$_[1] (page {\@PageOf{$_[0]}}) ";
cannam@167 56 &lout_text("\`");
cannam@167 57 }
cannam@167 58
cannam@167 59 sub lout_endpageref {
cannam@167 60 &lout_text("'");
cannam@167 61 }
cannam@167 62
cannam@167 63 sub lout_finish {
cannam@167 64 print LOUT "\@End \@Text\n";
cannam@167 65 close(L);
cannam@167 66 }
cannam@167 67
cannam@167 68 sub lout_startmajorheading {
cannam@167 69 $lout_styles .= 'h';
cannam@167 70 print LOUT <<END
cannam@167 71 \@CNP
cannam@167 72 {
cannam@167 73 newpath 0 ysize 0.3 ft sub moveto
cannam@167 74 xsize 0 rlineto
cannam@167 75 0 0.2 ft rlineto
cannam@167 76 xsize neg 0 rlineto
cannam@167 77 closepath fill
cannam@167 78 } \@Graphic { //1.6f \@HAdjust \@Heading{
cannam@167 79 END
cannam@167 80 ;
cannam@167 81 $endh= "}\n{\@PageMark s_$_[0]}\n/1.0fo\n";
cannam@167 82 &lout_text($_[0] ? "Section $_[0]. " : '');
cannam@167 83 }
cannam@167 84
cannam@167 85 sub lout_startminorheading {
cannam@167 86 $lout_styles .= 'h';
cannam@167 87 print LOUT "//0.2f \@CNP {\@PageMark $_[0]} \@Heading{\n";
cannam@167 88 $endh= '';
cannam@167 89 }
cannam@167 90
cannam@167 91 sub lout_endheading {
cannam@167 92 $lout_styles =~ s/.$//; print LOUT "}\n$endh";
cannam@167 93 $lout_status= 'p';
cannam@167 94 }
cannam@167 95
cannam@167 96 sub lout_endmajorheading { &lout_endheading(@_); }
cannam@167 97 sub lout_endminorheading { &lout_endheading(@_); }
cannam@167 98
cannam@167 99 sub lout_courier {
cannam@167 100 $lout_styles .= 'f';
cannam@167 101 print LOUT "{{0.7 1.0} \@Scale {Courier Bold} \@Font {";
cannam@167 102 }
cannam@167 103
cannam@167 104 sub lout_endcourier {
cannam@167 105 $lout_styles =~ s/.$//; print LOUT "}}";
cannam@167 106 }
cannam@167 107
cannam@167 108 sub lout_italic { $lout_styles .= 'f'; print LOUT "{Slope \@Font {"; }
cannam@167 109 sub lout_enditalic { $lout_styles =~ s/.$//; print LOUT "}}"; }
cannam@167 110
cannam@167 111 sub lout_startindent { $lout_styles .= 'i'; print LOUT "\@IndentedDisplay {\n"; }
cannam@167 112
cannam@167 113 sub lout_endindent {
cannam@167 114 &lout_endpara;
cannam@167 115 $lout_styles =~ s/.$//; print LOUT "}\n\@LP\n";
cannam@167 116 }
cannam@167 117
cannam@167 118 sub lout_startpackedlist { $lout_plc=-1; }
cannam@167 119 sub lout_endpackedlist { &lout_newline if !$lout_plc; }
cannam@167 120 sub lout_packeditem {
cannam@167 121 &lout_newline if !$lout_plc;
cannam@167 122 &lout_tab(($lout_plc>0)*40+5);
cannam@167 123 $lout_plc= !$lout_plc;
cannam@167 124 }
cannam@167 125
cannam@167 126 sub lout_startlist {
cannam@167 127 &lout_endpara;
cannam@167 128 print LOUT "\@RawIndentedList style {\@Bullet} indent {0.5i} gap {1.1vx}\n";
cannam@167 129 $lout_styles .= 'l';
cannam@167 130 $lout_status= '';
cannam@167 131 }
cannam@167 132
cannam@167 133 sub lout_endlist {
cannam@167 134 &lout_endpara;
cannam@167 135 print LOUT "\@EndList\n\n";
cannam@167 136 $lout_styles =~ s/.$//;
cannam@167 137 }
cannam@167 138
cannam@167 139 sub lout_item {
cannam@167 140 &lout_endpara;
cannam@167 141 print LOUT "\@ListItem{";
cannam@167 142 $lout_styles.= 'I';
cannam@167 143 }
cannam@167 144
cannam@167 145 sub lout_startindex {
cannam@167 146 print LOUT "//0.0fe\n";
cannam@167 147 }
cannam@167 148
cannam@167 149 sub lout_endindex {
cannam@167 150 $lout_status='p';
cannam@167 151 }
cannam@167 152
cannam@167 153 sub lout_startindexmainitem {
cannam@167 154 $lout_marker= $_[0];
cannam@167 155 $lout_status= '';
cannam@167 156 print LOUT "//0.3vx Bold \@Font \@HAdjust { \@HContract { { $_[1] } |3cx {";
cannam@167 157 $lout_iiendheight= '1.00';
cannam@167 158 $lout_styles .= 'X';
cannam@167 159 }
cannam@167 160
cannam@167 161 sub lout_startindexitem {
cannam@167 162 $lout_marker= $_[0];
cannam@167 163 print LOUT "\@HAdjust { \@HContract { { $_[1] } |3cx {";
cannam@167 164 $lout_iiendheight= '0.95';
cannam@167 165 $lout_styles .= 'X';
cannam@167 166 }
cannam@167 167
cannam@167 168 sub lout_endindexitem {
cannam@167 169 print LOUT "} } |0c \@PageOf { $lout_marker } } //${lout_iiendheight}vx\n";
cannam@167 170 $lout_styles =~ s/.$//;
cannam@167 171 }
cannam@167 172
cannam@167 173 sub lout_email { &lout_courier; &lout_text('<'); }
cannam@167 174 sub lout_endemail { &lout_text('>'); &lout_endcourier; }
cannam@167 175
cannam@167 176 sub lout_ftpon { &lout_courier; } sub lout_endftpon { &lout_endcourier; }
cannam@167 177 sub lout_ftpin { &lout_courier; } sub lout_endftpin { &lout_endcourier; }
cannam@167 178 sub lout_docref { } sub lout_enddocref { }
cannam@167 179 sub lout_ftpsilent { $lout_ignore++; }
cannam@167 180 sub lout_endftpsilent { $lout_ignore--; }
cannam@167 181
cannam@167 182 sub lout_newsgroup { &lout_courier; }
cannam@167 183 sub lout_endnewsgroup { &lout_endcourier; }
cannam@167 184
cannam@167 185 sub lout_text {
cannam@167 186 return if $lout_ignore;
cannam@167 187 $lout_status= 'p';
cannam@167 188 $_= &lout_sanitise($_[0]);
cannam@167 189 s/ $/\n/ unless $lout_styles =~ m/[fhX]/;
cannam@167 190 print LOUT $_;
cannam@167 191 }
cannam@167 192
cannam@167 193 sub lout_tab {
cannam@167 194 local ($size) = $_[0]*0.5;
cannam@167 195 print LOUT " |${size}ft ";
cannam@167 196 }
cannam@167 197
cannam@167 198 sub lout_newline {
cannam@167 199 print LOUT " //1.0vx\n";
cannam@167 200 }
cannam@167 201
cannam@167 202 sub lout_sanitise {
cannam@167 203 local ($in) = @_;
cannam@167 204 local ($out);
cannam@167 205 $in= ' '.$in.' ';
cannam@167 206 $out='';
cannam@167 207 while ($in =~ m/(\s)(\S*[\@\/|\\\"\^\&\{\}\#]\S*)(\s)/) {
cannam@167 208 $out .= $`.$1;
cannam@167 209 $in = $3.$';
cannam@167 210 $_= $2;
cannam@167 211 s/[\\\"]/\\$&/g;
cannam@167 212 $out .= '"'.$_.'"';
cannam@167 213 }
cannam@167 214 $out .= $in;
cannam@167 215 $out =~ s/^ //; $out =~ s/ $//;
cannam@167 216 $out;
cannam@167 217 }
cannam@167 218
cannam@167 219 sub lout_endpara {
cannam@167 220 return if $lout_status eq '';
cannam@167 221 if ($lout_styles eq '') {
cannam@167 222 print LOUT "\@LP\n\n";
cannam@167 223 } elsif ($lout_styles =~ s/I$//) {
cannam@167 224 print LOUT "}\n";
cannam@167 225 }
cannam@167 226 $lout_status= '';
cannam@167 227 }
cannam@167 228
cannam@167 229 sub lout_startverbatim {
cannam@167 230 print LOUT "//0.4f\n\@RawIndentedDisplay lines \@Break".
cannam@167 231 " { {0.7 1.0} \@Scale {Courier Bold} \@Font {\n";
cannam@167 232 }
cannam@167 233
cannam@167 234 sub lout_verbatim {
cannam@167 235 $_= $_[0];
cannam@167 236 s/^\s*//;
cannam@167 237 print LOUT &lout_sanitise($_),"\n";
cannam@167 238 }
cannam@167 239
cannam@167 240 sub lout_endverbatim { print LOUT "}\n}\n//0.4f\n"; }
cannam@167 241
cannam@167 242 1;