annotate src/fftw-3.3.8/doc/FAQ/m-info.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 d0c2a83c1364
children
rev   line source
Chris@82 1 ## Info output
Chris@82 2 # Copyright (C) 1993-1995 Ian Jackson.
Chris@82 3
Chris@82 4 # This file is free software; you can redistribute it and/or modify
Chris@82 5 # it under the terms of the GNU General Public License as published by
Chris@82 6 # the Free Software Foundation; either version 2, or (at your option)
Chris@82 7 # any later version.
Chris@82 8
Chris@82 9 # It is distributed in the hope that it will be useful,
Chris@82 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@82 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@82 12 # GNU General Public License for more details.
Chris@82 13
Chris@82 14 # You should have received a copy of the GNU General Public License
Chris@82 15 # along with GNU Emacs; see the file COPYING. If not, write to
Chris@82 16 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Chris@82 17 # Boston, MA 02111-1307, USA.
Chris@82 18
Chris@82 19 # (Note: I do not consider works produced using these BFNN processing
Chris@82 20 # tools to be derivative works of the tools, so they are NOT covered
Chris@82 21 # by the GPL. However, I would appreciate it if you credited me if
Chris@82 22 # appropriate in any documents you format using BFNN.)
Chris@82 23
Chris@82 24 sub info_init {
Chris@82 25 open(INFO,">$prefix.info");
Chris@82 26 print INFO <<END;
Chris@82 27 Info file: $prefix.info, -*-Text-*-
Chris@82 28 produced by bfnnconv.pl from the Bizarre Format With No Name.
Chris@82 29
Chris@82 30 END
Chris@82 31 }
Chris@82 32
Chris@82 33 sub info_heading {
Chris@82 34 # refstring Node Next Previous Up
Chris@82 35 print INFO "\nFile: $prefix.info, Node: $_[1]";
Chris@82 36 print INFO ", Next: $_[2]" if length($_[2]);
Chris@82 37 print INFO ", Previous: $_[3]" if length($_[3]);
Chris@82 38 print INFO ", Up: $_[4]" if length($_[4]);
Chris@82 39 print INFO "\n\n";
Chris@82 40 $info_status= '';
Chris@82 41 }
Chris@82 42
Chris@82 43 sub info_startmajorheading {
Chris@82 44 return if $_[0] eq '0';
Chris@82 45 &info_heading('s_'.$_[0],@_[1..$#_],'Top');
Chris@82 46 }
Chris@82 47
Chris@82 48 sub info_startminorheading {
Chris@82 49 &info_heading(@_);
Chris@82 50 }
Chris@82 51
Chris@82 52 sub info_italic { &info_text('*'); }
Chris@82 53 sub info_enditalic { $info_para .= '*'; }
Chris@82 54
Chris@82 55 sub info_email { &info_text('<'); } sub info_endemail { &info_text('>'); }
Chris@82 56
Chris@82 57 sub info_ftpon { } sub info_endftpon { }
Chris@82 58 sub info_ftpin { } sub info_endftpin { }
Chris@82 59 sub info_docref { } sub info_enddocref { }
Chris@82 60 sub info_courier { } sub info_endcourier { }
Chris@82 61 sub info_newsgroup { } sub info_endnewsgroup { }
Chris@82 62 sub info_ftpsilent { $info_ignore++; }
Chris@82 63 sub info_endftpsilent { $info_ignore--; }
Chris@82 64
Chris@82 65 sub info_text {
Chris@82 66 return if $info_ignore;
Chris@82 67 if ($info_status eq '') {
Chris@82 68 $info_status= 'p';
Chris@82 69 }
Chris@82 70 $info_para .= $_[0];
Chris@82 71 }
Chris@82 72
Chris@82 73 sub info_tab {
Chris@82 74 local ($n) = $_[0]-length($info_para);
Chris@82 75 $info_para .= ' 'x$n if $n>0;
Chris@82 76 }
Chris@82 77
Chris@82 78 sub info_newline {
Chris@82 79 return unless $info_status eq 'p';
Chris@82 80 print INFO &info_writepara;
Chris@82 81 }
Chris@82 82
Chris@82 83 sub info_writepara {
Chris@82 84 local ($thisline, $thisword, $rest, $output);
Chris@82 85 for (;;) {
Chris@82 86 last unless $info_para =~ m/\S/;
Chris@82 87 $thisline= $info_indentstring;
Chris@82 88 for (;;) {
Chris@82 89 last unless $info_para =~ m/^(\s*\S+)/;
Chris@82 90 unless (length($1) + length($thisline) < 75 ||
Chris@82 91 length($thisline) == length($info_indentstring)) {
Chris@82 92 last;
Chris@82 93 }
Chris@82 94 $thisline .= $1;
Chris@82 95 $info_para= $';
Chris@82 96 }
Chris@82 97 $info_para =~ s/^\s*//;
Chris@82 98 $output.= $thisline."\n";
Chris@82 99 $info_indentstring= $info_nextindent;
Chris@82 100 last unless length($info_para);
Chris@82 101 }
Chris@82 102 $info_status= ''; $info_para= '';
Chris@82 103 return $output;
Chris@82 104 }
Chris@82 105
Chris@82 106 sub info_endpara {
Chris@82 107 return unless $info_status eq 'p';
Chris@82 108 print INFO &info_writepara;
Chris@82 109 print INFO "\n";
Chris@82 110 }
Chris@82 111
Chris@82 112 sub info_endheading {
Chris@82 113 $info_para =~ s/\s*$//;
Chris@82 114 print INFO "$info_para\n\n";
Chris@82 115 $info_status= '';
Chris@82 116 $info_para= '';
Chris@82 117 }
Chris@82 118
Chris@82 119 sub info_endmajorheading { &info_endheading(@_); }
Chris@82 120 sub info_endminorheading { &info_endheading(@_); }
Chris@82 121
Chris@82 122 sub info_startverbatim {
Chris@82 123 print INFO &info_writepara;
Chris@82 124 }
Chris@82 125
Chris@82 126 sub info_verbatim {
Chris@82 127 print INFO $_[0],"\n";
Chris@82 128 }
Chris@82 129
Chris@82 130 sub info_endverbatim {
Chris@82 131 $info_status= $info_vstatus;
Chris@82 132 }
Chris@82 133
Chris@82 134 sub info_finish {
Chris@82 135 close(INFO);
Chris@82 136 }
Chris@82 137
Chris@82 138 sub info_startindex {
Chris@82 139 &info_endpara;
Chris@82 140 $info_moredetail= '';
Chris@82 141 $info_status= '';
Chris@82 142 }
Chris@82 143
Chris@82 144 sub info_endindex {
Chris@82 145 print INFO "$info_moredetail\n" if length($info_moredetail);
Chris@82 146 }
Chris@82 147
Chris@82 148 sub info_endindexitem {
Chris@82 149 $info_indentstring= sprintf("* %-17s ",$info_label.'::');
Chris@82 150 $info_nextindent= ' 'x20;
Chris@82 151 local ($txt);
Chris@82 152 $txt= &info_writepara;
Chris@82 153 if ($info_main) {
Chris@82 154 print INFO $label.$txt;
Chris@82 155 $txt =~ s/^.{20}//;
Chris@82 156 $info_moredetail.= $txt;
Chris@82 157 } else {
Chris@82 158 $info_moredetail.= $label.$txt;
Chris@82 159 }
Chris@82 160 $info_indentstring= $info_nextindent= '';
Chris@82 161 $info_status='p';
Chris@82 162 }
Chris@82 163
Chris@82 164 sub info_startindexitem {
Chris@82 165 print INFO "* Menu:\n" if $info_status eq '';
Chris@82 166 $info_status= '';
Chris@82 167 $info_label= $_[2];
Chris@82 168 $info_main= 0;
Chris@82 169 }
Chris@82 170
Chris@82 171 sub info_startindexmainitem {
Chris@82 172 print INFO "* Menu:\n" if $info_status eq '';
Chris@82 173 $info_label= $_[2];
Chris@82 174 $info_main= 1;
Chris@82 175 $info_moredetail .= "\n$_[2], ";
Chris@82 176 $info_status= '';
Chris@82 177 }
Chris@82 178
Chris@82 179 sub info_startindent {
Chris@82 180 $info_istatus= $info_status;
Chris@82 181 print INFO &info_writepara;
Chris@82 182 $info_indentstring= " $info_indentstring";
Chris@82 183 $info_nextindent= " $info_nextindent";
Chris@82 184 }
Chris@82 185
Chris@82 186 sub info_endindent {
Chris@82 187 $info_indentstring =~ s/^ //;
Chris@82 188 $info_nextindent =~ s/^ //;
Chris@82 189 $info_status= $info_istatus;
Chris@82 190 }
Chris@82 191
Chris@82 192 sub info_startpackedlist { $info_plc=0; }
Chris@82 193 sub info_endpackedlist { &info_newline if !$info_plc; }
Chris@82 194 sub info_packeditem {
Chris@82 195 &info_newline if !$info_plc;
Chris@82 196 &info_tab($info_plc*40+5);
Chris@82 197 $info_plc= !$info_plc;
Chris@82 198 }
Chris@82 199
Chris@82 200 sub info_startlist {
Chris@82 201 $info_istatus= $info_status;
Chris@82 202 print INFO &info_writepara;
Chris@82 203 $info_indentstring= " $info_indentstring";
Chris@82 204 $info_nextindent= " $info_nextindent";
Chris@82 205 }
Chris@82 206
Chris@82 207 sub info_endlist {
Chris@82 208 $info_indentstring =~ s/^ //;
Chris@82 209 $info_nextindent =~ s/^ //;
Chris@82 210 $info_status= $info_lstatus;
Chris@82 211 }
Chris@82 212
Chris@82 213 sub info_item {
Chris@82 214 &info_newline;
Chris@82 215 $info_indentstring =~ s/ $/* /;
Chris@82 216 }
Chris@82 217
Chris@82 218 sub info_pageref {
Chris@82 219 &info_text("*Note Question $_[1]:: \`");
Chris@82 220 }
Chris@82 221
Chris@82 222 sub info_endpageref {
Chris@82 223 &info_text("'");
Chris@82 224 }
Chris@82 225
Chris@82 226 1;