annotate src/fftw-3.3.3/doc/FAQ/m-lout.pl @ 83:ae30d91d2ffe

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