aft-5.098/0000777000175000017500000000000011442552733007324 500000000000000aft-5.098/aft-bn-html.dat0000744000175000017500000000506511244400652012042 00000000000000# Style created by Ben Lilburne # use aft-html.dat ID HTML Preamble{ %title%
}Preamble StartTable
EndTable
aft-5.098/aft-dbarticle.dat0000744000175000017500000000602310035035115012420 00000000000000# NOT DONE YET!!! DocBook 3.1 (Article) AFT 5.0 rules # All fields must be seperated by tabs!! # # This file will be documented one day... # # Identification of rule file ID DocBookArticle # Everything between Preamble{ and }Preamble is printed before any other # element markup. # Preamble{
%author% }Preamble # Everything between Postamble{ and }Postamble is printed last after all other # element markup. This string can take one argument: the AFT version string. # Postamble{
}Postamble preFilter \014 preFilter \& \& preFilter \" \" preFilter \> \> preFilter \< \< preFilter \\\\
# Handle hyperlinks... # URL %text% InternalReference %text% Target %text% Title %title% Author %author% TOC Image-left Image-right Image-center Image * %section% * %section% * %section% * %section% EndSect1 EndSect2 EndSect3 EndSect4 NoteRef %ref% Superscript %stuff% Subscript %stuff% Center %center% StartParagraph EndParagraph HorizontalLine StartTable TableCaption %caption% TableHeader %stuff% TableElement %stuff% TableRowStart TableRowEnd EndTable
StartBulletList BulletListElement EndBulletListElement EndBulletList StartNamedList NamedListElement %name% EndNamedListElement EndNamedList StartNumberedList NumberedListElement EndNumberedListElement EndNumberedList StartQuote
EndQuote
PreFilterVerbatim? Yes FullFilterFilteredVerbatim? Yes StartBlockedVerbatim StartFilteredVerbatim EndFilteredVerbatim StartVerbatim EndVerbatim StartTeletype EndTeletype StartSmall EndSmall StartEmphasis EndEmphasis StartStrong EndStrong CommentLine %line% StrikeLine Striken: %line% NBSPACE   aft-5.098/ChangeLog0000744000175000017500000000002207717037245011013 00000000000000See Changelog.aft aft-5.098/mkinstalldirs0000744000175000017500000000132207654734543012055 00000000000000#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here aft-5.098/aft-xhtml.dat0000744000175000017500000000414210316247250011632 00000000000000# HTML AFT 5.0 elements # use aft-html.dat # Identification of rule file ID XHTML # Everything between Preamble{ and }Preamble is printed before any other # element markup. # Preamble{ %title% }Preamble Postamble{

%aft%
}Postamble # preFilter \\\\
Title

%title%

Author

%author%

Image-left
Image-right
Image Image-center

*

%section%

**

%section%

***

%section%

****
%section%
EndSect1
EndSect2
EndSect3
EndSect4
^*
[Top]

%section%

^**
[Top]

%section%

^***
[Top]

%section%

^****
[Top]
%section%
StartTable ParagraphBreak
HorizontalLine
NBSPACE   aft-5.098/postrtf.pl0000744000175000017500000001000310007430510011251 00000000000000# # postrtf.pl - postprocessing of rtf-files generated from AFT # # Copyright (C) 2001 Eva Maria Krause. All rights reserved. # usage (@ARGV == 0) && do { print (STDERR "Usage: postrtf filename.rtf \n"); exit 2; }; $rtffile = $ARGV[0] || die "postrtf: no rtffile specified\n";; open(FILE, "<$rtffile") || die "postrtf: $rtffile couldn't be opened: $!\n"; while () { $STR .= $_; } close (FILE); # constants $stdind = 500; # standard-indention in twips $stdcolwidth = 1000; # standard-column-width of table columns $verbrtf = "\\line\\li"; # rtf-verbatim-code $listind = "\\par\\pard\\li"; # list-indention $bul = "\{\\f2\\fs30\\bullet\}"; # bullet in bullet-lists $celldesign = "\\clbrdrt\\brdrw15\\brdrs". # top border "\\clbrdrl\\brdrw15\\brdrs". # left border "\\clbrdrb\\brdrw15\\brdrs". # bottom border "\\clbrdrr\\brdrw15\\brdrs"; # right border # for no borderlines, substitute by # $celldesign = ""; ########################## # handle verbatim-blocks # ########################## $STR=~s/\\verbatim/\\verbatim/g; $STR=~s/\n\\endverbatim/\\endverbatim\n/g; # special case: {+, {-, }+, }- in verbatim-block while ($STR=~m/\\verbatim([^]*)[^\\]([\{\}][\+\-])/) { $STR=~s/\\verbatim([^]*)([^\\])([\{\}][\+\-])/\\verbatim$1$2\\$3/g; } while ($STR=~m/\\verbatim([^]*)[\+\-]([\{\}])/) { $STR=~s/\\verbatim([^]*)([\+\-])([\{\}])/\\verbatim$1$2\\$3/g; } # replace blanks in verbatim-block by \~ while ($STR=~m/\\verbatim([^]*) /) { $STR=~s/\\verbatim([^]*) /\\verbatim$1\\~/g; } # indent each line in verbatim-block while ($STR=~m/\\verbatim([^\n]*)\n/) { $STR=~s/\\verbatim([^\n]*)\n/$1\n$verbrtf$stdind \\verbatim/g; } $STR=~s/\\verbatim//g; $STR=~s/\\endverbatim/\\par\\pard/g; ############################ # handle list-environments # ############################ $STR=~s/\\(num|bul)list/\\beginlist$1/g; $STR=~s/\\end(num|bul)list/\\endlist$1/g; # assign level to each list, starting with 0 $level=0; $countlevel=0; while ($STR=~m/\\beginlist/ || $STR=~m/\\endlist/) { if ($STR=~m/\\bl[^]*\\endlist/) { # most inner list $level--; $STR=~s/\\bl([^]*)\\endlist/\\bl$1\\el$level/; } else { $STR=~s/\\beginlist/\\bl$level$1/; $level++; if ($level>$countlevel) {$countlevel=$level;} } } # handle bullet-lists $STR=~s/\\bl(\d*)bul/\\bl$1/g; $STR=~s/\\el(\d*)bul/\\ebl$1/g; $STR=~s/\\bulitem/%item%/g; # new paragraph after the most outer list $STR=~s/\\ebl0/\\ebl0\\par\\pard/g; for ($ii=$countlevel-1; $ii>=0;$ii--) { $ind = ($ii+1)*$stdind; while ($STR=~m/\\bl$ii([^%]*)%item%/) { $STR=~s/\\bl$ii([^%]*)%item%/$1$listind$ind $bul\\bl$ii/g; } $STR=~s/\\bl$ii([^]*)\\ebl$ii/$1/g; } # handle numbered lists $STR=~s/\\bl(\d*)num/\\nl$1/g; $STR=~s/\\el(\d*)num/\\enl$1/g; $STR=~s/\\numitem/%item%/g; # new paragraph after the most outer list $STR=~s/\\enl0/\\enl0\\par\\pard/g; for ($ii=$countlevel-1; $ii>=0;$ii--) { $ind = ($ii+1)*$stdind; $nr=1; while ($STR=~m/\\nl$ii([^%]*)%item%/) { $STR=~s/\\nl$ii([^%]*)%item%/$1$listind$ind $nr.\\nl$ii/g; $nr++; } $STR=~s/\\nl$ii([^]*)\\enl$ii/$1/g; } # handle tables $STR=~s/\\cellxx/\\cellx/g; while ($STR=~m/\\tabcols/) { $STR=~s/\\tabcols(\d*)\\endtabcols//; $count = $1; # number of columns for ($i = 1; $i <= $count; $i++) { $colwidth = $i*$stdcolwidth; $STR=~s/\\cellx/\n$celldesign\\cellx$colwidth\\cellx/; } $STR=~s/\\cellx//; } # join lines with intermediate space if beginning with letters, numbers or left curly braces $STR=~s/\n(\w|\{)/ $1/g; # delete leading spaces $STR=~s/\n /\n/g; # eliminate multiple blank lines $STR=~s/\n+/\n/g; # eliminate multiple spaces $STR=~s/ +/ /g; # delete spaces in front of backslashes $STR=~s/ \\/\\/g; # delete spaces after left curly brace $STR=~s/\{ /\{/g; open(FILE, ">$rtffile") || die "postrtf: $rtffile couldn't be opened: $!\n"; print FILE $STR; close (FILE);aft-5.098/Makefile.cvs0000744000175000017500000000071307654734543011507 00000000000000# -*-makefile-*- # Makefile.cvs # 2002/02/10 alane@geeksrus.net # AUTOHEADER= autoheader${ACSUFFIX} AUTOCONF= autoconf${ACSUFFIX} AUTOCONF_ARGS= ACLOCAL= aclocal${AMSUFFIX} AUTOMAKE= automake${AMSUFFIX} AUTOMAKE_ARGS= -a --foreign UNCLEAN= aclocal.m4\ configure\ install-sh\ missing\ mkinstalldirs\ Makefile.in prep: -rm -f ${UNCLEAN} ${ACLOCAL} -test -n "${WITH_AUTOHEADER}" && ${AUTOHEADER} ${AUTOMAKE} ${AUTOMAKE_ARGS} ${AUTOCONF} #EOF aft-5.098/NEWS0000744000175000017500000000000007717037225007732 00000000000000aft-5.098/aft.gif0000744000175000017500000000153607654734543010522 00000000000000GIF87a{,{ڋ޼H扦ʶ m:|A*Ȍ)k O#[`\LL25}2~;]!7VȷE!w8h8X&I&yihڗZȘȀiںu2ેk zkL {J\;|,=",k I3 ]>,M·nMN&\/}ڼsx@x oH("80`8 pD" DŽ: J1xSfM._hEfgR \atRz&!sIQ6L!jմ_:l(n к{C4{X]ͩJtֲZN9vφ}RCڊ;)[*u~lb7X";Nd!.3wqG&W9㷟C--Vkaf^pw˥.(\捯~~:+{wwrG>'s^璃6a-5 Fcab.&V}"bU14*5:Q!XNwޠi ytfvS*eeXTv 3aI"dvjƵf4;XIftމgLg<3g+q!㎝N'-6kP(=L h5Bl&|Z)Q4z7 +i:l+S@,Ʋl.{,B*RhpbKX~ nKn枋nn oKoދo;aft-5.098/LICENSE.txt0000744000175000017500000001530207666253741011077 00000000000000 The Clarified Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below. "Copyright Holder" is whoever is named in the copyright or copyrights for the package. "You" is you, if you're thinking about copying or distributing this Package. "Distribution fee" is a fee you charge for providing a copy of this Package to another party. "Freely Available" means that no fee is charged for the right to use the item, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain, or those made Freely Available, or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: 1. place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major network archive site allowing unrestricted access to them, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. 2. use the modified Package only within your corporation or organization. 3. rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. 4. make other distribution arrangements with the Copyright Holder. 5. permit and encourge anyone who receives a copy of the modified Package permission to make your modifications Freely Available in some specific way. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: 1. distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. 2. accompany the distribution with the machine-readable source of the Package with your modifications. 3. give non-standard executables non-standard names, and clearly document the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. 4. make other distribution arrangements with the Copyright Holder. 5. offer the machine-readable source of the Package, with your modifications, by mail order. 5. You may charge a distribution fee for any distribution of this Package. If you offer support for this Package, you may charge any fee you choose for that support. You may not charge a license fee for the right to use this Package itself. You may distribute this Package in aggregate with other (possibly commercial and possibly nonfree) programs as part of a larger (possibly commercial and possibly nonfree) software distribution, and charge license fees for other parts of that software distribution, provided that you do not advertise this Package as a product of your own. If the Package includes an interpreter, You may embed this Package's interpreter within an executable of yours (by linking); this shall be construed as a mere form of aggregation, provided that the complete Standard Version of the interpreter is so embedded. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whoever generated them, and may be sold commercially, and may be aggregated with this Package. If such scripts or library files are aggregated with this Package via the so-called "undump" or "unexec" methods of producing a binary executable image, then distribution of such an image shall neither be construed as a distribution of this Package nor shall it fall under the restrictions of Paragraphs 3 and 4, provided that you do not represent such an executable image as a Standard Version of this Package. 7. C subroutines (or comparably compiled subroutines in other languages) supplied by you and linked into this Package in order to emulate subroutines and variables of the language defined by this Package shall not be considered part of this Package, but are the equivalent of input as in Paragraph 6, provided these subroutines do not change the language in any way that would cause it to fail the regression tests for the language. 8. Aggregation of the Standard Version of the Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package. 9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. aft-5.098/trip.aft0000744000175000017500000001524111250760030010702 00000000000000#---SET \[={brace} #---SET \]={end} #---SET trip=_TRIP_ #---SET-HTML test=test #---SET-LaTeX test=\emph{test} *Title: %trip% %test% *Author: Todd Coram ''hello'' _there_ ''_ok_'' ~''Trying to %trip% up AFT the best we can :)''~ ---- _''A %[%Table%]% of %trip% %test% Contents''_ *TOC -------- * Testing SECTION _A bolded paragraph by any other name is still an emphasis._ Except when... ''There are italics to be dealt with!'' ~Or small text, as in this case.~ Here at level }-Level 1-{1. He said underscored \_ by me \_. And this |\|| (pipe) too. A backslash: \ and a _continued \ line_. As well as \~this\~. ~But not that~ #---SET-LaTeX tilde=~ #---SET-HTML tilde=~ So this is a test? {+http://www.foo_bar_x.com+} http://www.foobarx.com/%tilde%todd Tilde is %tilde%. =[(A target)]= "What do you expect?", he said. "I dunno. Something better.", she replied. TeX is =[^cool]=. TeX is cool. Yes, "TeX" is cool. But LaTeX is easier. |What is this? A Bar || not a marker.| |What is this? A Bar || not a marker.| ** ''Section'' Level 2 ** Not a Section *** Section Level 3 again (its a %trip%) ** Section Level 2 again (its an HTML %test%) **** Section Level 4 with a trailing space **** Another Section Level 4 ** Section Level 2 with several trailing spaces Very =[^cool]=. * Testing PASS #---PASS-TROFF // Troff silliness not supported yet! #---PASS-HTML This should be red. (#---PASS test) #---PASS-HTML * Testing TABSTOP #---TABSTOP=8 =[^TABSTOP]= is 8 * A bullet (preceded by 8 spaces) * Another bullet at same level (preceded by hard tab) * A sub-bullet (2 hard tabs) * Another sub-bullet (16 spaces) TABSTOP is 4 #---TABSTOP=4 * A bullet preceded by 4 spaces (Level 1) * A bullet preceded by 8 spaces (Level 2) * Testing LINKS }-Link Tests-{}-Another Target-{ ** Test Plain Old Links A mere footnote in this convoluted file [Note: Yes, convoluted it is.\ But pretty damn proud.] [Testing Links] [Test Plain Old Links] [Another (Testing Links)] [And another (Test Plain Old Links)] Double bracket test: [[Testing Links]] Did it work? How about Double bracket test with escape: \[[Testing Links]] [Test Plain Old Links] Did it work? [Note: Better damn work!] This is my homepage http://www.pobox.com/~tcoram . Try this at home: http://www.foo.bar.fubar.what.is.going.on.com But here is the URL as a local link (brackets!): [http://www.foo.bar.fubar.what.is.going.on.com] [Now external (http://www.foo.bar.fubar.what.is.going.on.com)] ftp://www.foo.bar.fubar.what-is-going-on.com/file.dat is long. (http://www.foo.bar.fubar.what.is.going.on.com/topdir/lowdir#subpage) okay? This is my alternate homepage: (http://patriot.net/~maroc). A period on the end: http://www.google.com. should work But, what is =[^TABSTOP]= set to? http://slashdot.org should work. Alternate URL forms: * Home {+http://www.pobox.com/~tcoram+} Sweet Home. * Send me mail at {+mailto:tcoram@pobox.com+}. * Send me mail [here (mailto:tcoram@pobox.com)]. * Download relative [file (:aft.tar.gz)]. * Or, just click {-here@mailto:tcoram@pobox.com-}. * Go to [Level One (Level 1)]. * Again! Go to [Level One(Level 1)]. * Go to [Level 1]. Or click on [this to go to Level 1(Level 1)]. * These are regular brackets \[not a link]! * These are regular brackets \[not a link(Level 1)]! * Again, these are regular brackets [not a link ]! * Local file reference: {-Reference Manual@:aft-refman.html-} [ [Level 1] Named List] a Named list element. * Another Local file reference: {-Target stuff@:aft-refman.html#HTML Targets-} * Yet Another Local file reference: [Target stuff (:aft-refman.html#HTML Targets)] {+Link Tests+}=[Another Target]= ------ #---SET aftimage=aft.gif #---SET-HTML aftimage=aft.gif #---SET-LaTeX aftimage=aft.jpg * Testing IMAGE Plain image command right after text--> *Image: %aftimage% Plain Image command (*Image) three times. *Image: %aftimage% *Image: %aftimage% *Image: %aftimage% Okay, now a left image *Image-left: %aftimage% Now a right flushed image *Image-right: %aftimage% Now a centered image *Image-center: %aftimage% * Testing INCLUDES Again, but, what is =[^TABSTOP]= set to? *Include: trip-1 *Include: trip-1 *Insert: trip-1.aft *Insert: trip-1.aft * Testing LISTS 1 This is not a list, but should be _verbatim_! [Something] Named List item. [Else] Another named list item. [Nest] Can these nest? 1. Level 1 numbered (Item 1). #) Level 1 with continuation (# numbered) onto next line (Item 2) 1. Level 2 numbered. * Level 2 bulleted. #. Level 3 numbered... and with a continuation. 3. Back to Level 1 numbered (Item 3). * Switching to bullets (Level 2). #) Back to Level 1 numbered (Item 1). (# numbered) * Testing Centered This is centered. This is not. * Testing Quoted An eloquent reflection: # You're damned if you do, You're damned if you don't - Bart Simpson Or, so they say... #---SET ex=! #---SET-CONTROL tableparser=new * Testing Table #---SET ex=! #---SET bday=It's my birthday. This cell will wrap but must be typed on one line. ! _Very_ Important Dates%ex% ! !-------------------------------! ! Year ! Month ! Day ! Notes ! !-------------------------------! ! 1966 ! Oct ! 9 ! %bday% ! !-------------------------------! ! 1999 ! Dec ! 25 ! xmas ! !-------------------------------! ! 2000 ! Jan ! 1 ! New Years! !-------------------------------! test again. ! _Very_ Important Dates\! ! !-------------------------------! ! Year ! Month ! Day ! Notes ! !-------------------------------! ! 1966 ! Oct ! 9 ! Hello\! ! ! ! ! ! Multiline! ! ! ! ! text here! !-------------------------------! ! 1999 ! Dec- ! 25 ! xmas is ! ! !ember ! ! Christmas! !-------------------------------! ! 2000 ! Jan ! 1 ! Hi\! New Years! !-------------------------------! * Test Verbatim ** Straight Verbatim This is just some random tuff: <>&^%$##@#*$sjdfhkjfs*(_+_))**(^&^%^%%^$# * This isn't a bullet. 1. This isn't a list. ** Blocked Verbatim ^<< This is just some random tuff: test|<>&^%$##@#*$sjdfhkjfs*(_+_))**(^&^%^%%^$# !"#$%&'()*+,-./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_` abcdefghijklmnopqrstuvwxyz{|}~ |What is this? A Bar || not a marker.| * This isn't a section. * This isn't a bullet. 1. This isn't a list. ^>> ** Filtered Verbatim ^<&^%$##@#*$sjdfhkjfs*(+))**(^&^%^%%^$# * This isn't a bullet. 1. This isn't a list. ^>> ** Verbatim and Line Continuations ^<< This list of words \ is very long \ and should not \ get wrapped as a \ single line. ^>> aft-5.098/Makefile.in0000744000175000017500000004410511442551073011306 00000000000000# Makefile.in generated by automake 1.8.5 from Makefile.am. # @configure_input@ # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # 2003, 2004 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ # # Makefile.am for AFT # 2002/03/16 alane@geeksrus.net # srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ top_builddir = . am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : subdir = . DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(srcdir)/aft.cgi.in $(srcdir)/aft.in \ $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \ install-sh missing mkinstalldirs ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.in am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno configure.status.lineno mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs CONFIG_CLEAN_FILES = aft aft.cgi am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(backendsdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(pkgdatadir)" binSCRIPT_INSTALL = $(INSTALL_SCRIPT) pkgdataSCRIPT_INSTALL = $(INSTALL_SCRIPT) SCRIPTS = $(bin_SCRIPTS) $(pkgdata_SCRIPTS) SOURCES = DIST_SOURCES = backendsDATA_INSTALL = $(INSTALL_DATA) docDATA_INSTALL = $(INSTALL_DATA) examplesDATA_INSTALL = $(INSTALL_DATA) pkgdataDATA_INSTALL = $(INSTALL_DATA) DATA = $(backends_DATA) $(doc_DATA) $(examples_DATA) $(pkgdata_DATA) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ { test ! -d $(distdir) \ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -fr $(distdir); }; } DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best distuninstallcheck_listfiles = find . -type f -print distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ PERL = @PERL@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ ac_ct_STRIP = @ac_ct_STRIP@ am__leading_dot = @am__leading_dot@ bindir = @bindir@ build_alias = @build_alias@ datadir = @datadir@ exec_prefix = @exec_prefix@ host_alias = @host_alias@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ prefix = @prefix@ program_transform_name = @program_transform_name@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ SUFFIXES = .dat .pm bin_SCRIPTS = aft BUILT_SOURCES = \ aft.pl \ aft-dbarticle.pm \ aft-bn-html.pm \ aft-html.pm \ aft-lout.pm \ aft-loutbook.pm \ aft-loutreport.pm \ aft-rtf.pm \ aft-tex.pm \ aft-xhtml.pm pkgdata_DATA = $(BUILT_SOURCES) AFT.pm pkgdata_SCRIPTS = compile.pl postrtf.pl launch_ie.pl DOCS = aft2rtf-doc.rtf aft-refman.html TOCS = aft2rtf-doc.aft-TOC aft-refman.aft-TOC MISCDOCS = aft.gif aft.jpg aft.eps ChangeLog.aft docdir = $(datadir)/doc/@PACKAGE@ examplesdir = $(docdir)/examples backendsdir = $(docdir)/backends doc_DATA = $(DOCS) $(MISCDOCS) examples_DATA = \ aft.aft \ aft-refman.aft \ aft2rtf-doc.aft backends_DATA = \ aft-dbarticle.dat \ aft-bn-html.dat \ aft-html.dat \ aft-lout.dat \ aft-loutbook.dat \ aft-loutreport.dat \ aft-rtf.dat \ aft-tex.dat \ aft-xhtml.dat MOSTLYCLEANFILES = $(DOCS) $(TOCS) $(BUILT_SOURCES) EXTRA_DIST = \ $(pkgdata_SCRIPTS) \ $(MISCDOCS) \ $(examples_DATA) \ $(backends_DATA) \ AFT.pm \ LICENSE.txt \ Makefile.cvs \ install.pl \ trip-1.aft \ trip.aft all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-am .SUFFIXES: .SUFFIXES: .dat .pm am--refresh: @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \ cd $(srcdir) && $(AUTOMAKE) --gnu \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ cd $(top_srcdir) && \ $(AUTOMAKE) --gnu Makefile .PRECIOUS: Makefile $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) cd $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) aft: $(top_builddir)/config.status $(srcdir)/aft.in cd $(top_builddir) && $(SHELL) ./config.status $@ aft.cgi: $(top_builddir)/config.status $(srcdir)/aft.cgi.in cd $(top_builddir) && $(SHELL) ./config.status $@ install-binSCRIPTS: $(bin_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)" @list='$(bin_SCRIPTS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f $$d$$p; then \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \ $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \ else :; fi; \ done uninstall-binSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(bin_SCRIPTS)'; for p in $$list; do \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \ rm -f "$(DESTDIR)$(bindir)/$$f"; \ done install-pkgdataSCRIPTS: $(pkgdata_SCRIPTS) @$(NORMAL_INSTALL) test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" @list='$(pkgdata_SCRIPTS)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f $$d$$p; then \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " $(pkgdataSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ $(pkgdataSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ else :; fi; \ done uninstall-pkgdataSCRIPTS: @$(NORMAL_UNINSTALL) @list='$(pkgdata_SCRIPTS)'; for p in $$list; do \ f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ done uninstall-info-am: install-backendsDATA: $(backends_DATA) @$(NORMAL_INSTALL) test -z "$(backendsdir)" || $(mkdir_p) "$(DESTDIR)$(backendsdir)" @list='$(backends_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(backendsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(backendsdir)/$$f'"; \ $(backendsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(backendsdir)/$$f"; \ done uninstall-backendsDATA: @$(NORMAL_UNINSTALL) @list='$(backends_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f '$(DESTDIR)$(backendsdir)/$$f'"; \ rm -f "$(DESTDIR)$(backendsdir)/$$f"; \ done install-docDATA: $(doc_DATA) @$(NORMAL_INSTALL) test -z "$(docdir)" || $(mkdir_p) "$(DESTDIR)$(docdir)" @list='$(doc_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(docDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(docdir)/$$f'"; \ $(docDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(docdir)/$$f"; \ done uninstall-docDATA: @$(NORMAL_UNINSTALL) @list='$(doc_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f '$(DESTDIR)$(docdir)/$$f'"; \ rm -f "$(DESTDIR)$(docdir)/$$f"; \ done install-examplesDATA: $(examples_DATA) @$(NORMAL_INSTALL) test -z "$(examplesdir)" || $(mkdir_p) "$(DESTDIR)$(examplesdir)" @list='$(examples_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(examplesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(examplesdir)/$$f'"; \ $(examplesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(examplesdir)/$$f"; \ done uninstall-examplesDATA: @$(NORMAL_UNINSTALL) @list='$(examples_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f '$(DESTDIR)$(examplesdir)/$$f'"; \ rm -f "$(DESTDIR)$(examplesdir)/$$f"; \ done install-pkgdataDATA: $(pkgdata_DATA) @$(NORMAL_INSTALL) test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)" @list='$(pkgdata_DATA)'; for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " $(pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \ $(pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \ done uninstall-pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(pkgdata_DATA)'; for p in $$list; do \ f="`echo $$p | sed -e 's|^.*/||'`"; \ echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \ rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \ done tags: TAGS TAGS: ctags: CTAGS CTAGS: distdir: $(DISTFILES) $(am__remove_distdir) mkdir $(distdir) $(mkdir_p) $(distdir)/. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ list='$(DISTFILES)'; for file in $$list; do \ case $$file in \ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ esac; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ dir="/$$dir"; \ $(mkdir_p) "$(distdir)$$dir"; \ else \ dir=''; \ fi; \ if test -d $$d/$$file; then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ fi; \ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ || exit 1; \ fi; \ done -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r $(distdir) dist-gzip: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) dist-bzip2: distdir $(AMTAR) chof - $(distdir) | bzip2 -9 -c >$(distdir).tar.bz2 $(am__remove_distdir) dist-tarZ: distdir $(AMTAR) chof - $(distdir) | compress -c >$(distdir).tar.Z $(am__remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__remove_distdir) dist dist-all: distdir $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - ;;\ *.tar.bz2*) \ bunzip2 -c $(distdir).tar.bz2 | $(AMTAR) xf - ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(AMTAR) xf - ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && cd $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck $(am__remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}' distuninstallcheck: @cd $(distuninstallcheck_dir) \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-am all-am: Makefile $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)" "$(DESTDIR)$(backendsdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(examplesdir)" "$(DESTDIR)$(pkgdatadir)"; do \ test -z "$$dir" || $(mkdir_p) "$$dir"; \ done install: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES) clean-generic: distclean-generic: -rm -f $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) clean: clean-am clean-am: clean-generic mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f Makefile distclean-am: clean-am distclean-generic dvi: dvi-am dvi-am: html: html-am info: info-am info-am: install-data-am: install-backendsDATA install-docDATA \ install-examplesDATA install-pkgdataDATA \ install-pkgdataSCRIPTS install-exec-am: install-binSCRIPTS install-info: install-info-am install-man: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-backendsDATA uninstall-binSCRIPTS \ uninstall-docDATA uninstall-examplesDATA uninstall-info-am \ uninstall-pkgdataDATA uninstall-pkgdataSCRIPTS .PHONY: all all-am am--refresh check check-am clean clean-generic dist \ dist-all dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip \ distcheck distclean distclean-generic distcleancheck distdir \ distuninstallcheck dvi dvi-am html html-am info info-am \ install install-am install-backendsDATA install-binSCRIPTS \ install-data install-data-am install-docDATA \ install-examplesDATA install-exec install-exec-am install-info \ install-info-am install-man install-pkgdataDATA \ install-pkgdataSCRIPTS install-strip installcheck \ installcheck-am installdirs maintainer-clean \ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ pdf-am ps ps-am uninstall uninstall-am uninstall-backendsDATA \ uninstall-binSCRIPTS uninstall-docDATA uninstall-examplesDATA \ uninstall-info-am uninstall-pkgdataDATA \ uninstall-pkgdataSCRIPTS .dat.pm: @PERL@ compile.pl $< aft2rtf-doc.rtf: aft2rtf-doc.aft @PERL@ aft.pl --type=rtf aft2rtf-doc.aft aft-refman.html: aft-refman.aft @PERL@ aft.pl --type=bn-html aft-refman.aft @PERL@ aft.pl --type=bn-html aft-refman.aft aft.pl: aft.in @PERL@ -p -e 's|use lib.*|use lib ".";|' aft.in >aft.pl chmod a+x aft.pl Makefile: $(BUILT_SOURCES) #EOF # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: aft-5.098/aft-rtf.dat0000744000175000017500000000622210035035115011263 00000000000000# RTF AFT 5.0 rules # ID RTF ###################################################################### # COPYRIGHT # # Almost Free Text (AFT) # Todd A. Coram (todd@digicool.com) # http://www.maplefish.com/todd/ # # DISCLAIMER # # This file is in a very alpha-status. Nevertheless it should work fairly good. # Use it at your own risk and let me know bugs or ideas of improvement. # # ATTENTION # In addition of aft-ing your source-file you have to execute the perl-script # "postrtf.pl" afterwards included in this package (see documentation). # # Eva Maria Krause (Eva.Maria.Krause@muenster.de) # # December, 2001 # ###################################################################### interpolate no PostProcessor exec "$^X @INC[0]/postrtf.pl $outputfile" # Preamble and postamble Preamble{ {\rtf1\ansi\ansicpg1252\deff0\deftab720 {\fonttbl{\f0\froman Times New Roman;}{\f1\fmodern Courier;}{\f2\fswiss Arial;}} {\info{\title %title%}{\author %author%}} {\colortbl ;\red0\green0\blue255;} \deflang1031 }Preamble Postamble{ } }Postamble # no hyperlinks # URL {\cf1\ul %text%\cf0} InternalReference {\cf1\ul %text%\cf0} Target {\cf1\ul %text%\cf0} # protect the AFT hypertext braces # preFilter \{\+(.*?)\+\} %LeFtB%PlUs$1%PlUs%RiGhTB preFilter \}\+(.*?)\+\{ %RiGhTB%PlUs$1%PlUs%LeFtB preFilter \{\-(.*?)\-\} %LeFtB%NeG$1%NeG%RiGhTB preFilter \}\-(.*?)\-\{ %RiGhTB%NeG$1%NeG%LeFtB # backslash preFilter \\ \\\\ # curly braces preFilter \{ \\\{ preFilter \} \\\} preFilter %LeFtB { preFilter %RiGhTB } preFilter %PlUs + preFilter %NeG - Title \par\pard \qc {\fs48\b %title%} \par\pard Author \par\pard \qc {\fs36\b %author%} \par\pard \par\pard TOC Image Image-center Image-left Image-right * {\f0\fs36 {\par\pard\b %section%\par}} ** {\f0\fs28 {\par\pard\b %section%\par}} *** {\f0\fs24 {\par\pard\b %section%\par}} **** {\f0\fs20 {\par\pard\b %section%\par}} ^* ^** ^*** ^**** EndSect1 EndSect2 EndSect3 EndSect4 StartParagraph \par\pard EndParagraph \par Center \pard\qc {%center%} \par\pard HorizontalLine {\emdash\emdash\emdash\emdash\emdash\emdash\emdash\emdash\emdash\emdash} StartTable \tabcols%columns%\endtabcols TableCaption \par\pard%caption%\par\par\pard\trowd\cellxx TableHeader {\b %stuff%}\cell TableElement %stuff%\cell TableRowStart \intbl TableRowEnd \row EndTable \pard\par StartBulletList \bullist BulletListElement \bulitem EndBulletListElement EndBulletList \endbullist StartNamedList { NamedListElement \par\pard{\b %name%} \par\tx500\li500\fi-500 \tab EndNamedListElement EndNamedList \par} StartNumberedList \numlist NumberedListElement \numitem EndNumberedListElement EndNumberedList \endnumlist StartQuote \par\pard\li500\ri500 { EndQuote } \par\pard PreFilterVerbatim? Yes FullFilterFilteredVerbatim? Yes StartVerbatim {\f1\fs20\verbatim EndVerbatim \endverbatim} StartBlockedVerbatim {\f1\fs20\verbatim EndBlockedVerbatim \endverbatim} StartFilteredVerbatim {\f1\fs20\verbatim EndFilteredVerbatim \endverbatim} StartTeletype {\f1\fs20 EndTeletype } StartSmall {\fs16 EndSmall } StartEmphasis {\i EndEmphasis } StartStrong {\b EndStrong } CommentLine StrikeLine %%--- %line% NBSPACE \~ aft-5.098/aft.in0000744000175000017500000000031007654734543010350 00000000000000: # use perl -*- mode: Perl; -*- eval 'exec perl -S $0 "$@"' if $running_under_some_shell; use strict; use lib "@prefix@/share/@PACKAGE@"; use AFT; &AFT::main(); aft-5.098/aft.eps0000744000175000017500000002701110007430411010505 00000000000000%!PS-Adobe-3.0 EPSF-3.0 %%Creator: (ImageMagick) %%Title: (aft.gif.eps) %%CreationDate: (Tue Mar 7 22:22:18 2000) %%BoundingBox: 0 0 190 122 %%DocumentData: Clean7Bit %%LanguageLevel: 1 %%Pages: 0 %%EndComments %%BeginDefaults %%PageOrientation: Portrait %%EndDefaults %%BeginProlog % % Display a color image. The image is displayed in color on % Postscript viewers or printers that support color, otherwise % it is displayed as grayscale. % /buffer 512 string def /byte 1 string def /color_packet 3 string def /pixels 768 string def /DirectClassPacket { % % Get a DirectClass packet. % % Parameters: % red. % green. % blue. % length: number of pixels minus one of this color (optional). % currentfile color_packet readhexstring pop pop compression 0 gt { /number_pixels 3 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add 3 mul def } ifelse 0 3 number_pixels 1 sub { pixels exch color_packet putinterval } for pixels 0 number_pixels getinterval } bind def /DirectClassImage { % % Display a DirectClass image. % systemdict /colorimage known { columns rows 8 [ columns 0 0 rows neg 0 rows ] { DirectClassPacket } false 3 colorimage } { % % No colorimage operator; convert to grayscale. % columns rows 8 [ columns 0 0 rows neg 0 rows ] { GrayDirectClassPacket } image } ifelse } bind def /GrayDirectClassPacket { % % Get a DirectClass packet; convert to grayscale. % % Parameters: % red % green % blue % length: number of pixels minus one of this color (optional). % currentfile color_packet readhexstring pop pop color_packet 0 get 0.299 mul color_packet 1 get 0.587 mul add color_packet 2 get 0.114 mul add cvi /gray_packet exch def compression 0 gt { /number_pixels 1 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add def } ifelse 0 1 number_pixels 1 sub { pixels exch gray_packet put } for pixels 0 number_pixels getinterval } bind def /GrayPseudoClassPacket { % % Get a PseudoClass packet; convert to grayscale. % % Parameters: % index: index into the colormap. % length: number of pixels minus one of this color (optional). % currentfile byte readhexstring pop 0 get /offset exch 3 mul def /color_packet colormap offset 3 getinterval def color_packet 0 get 0.299 mul color_packet 1 get 0.587 mul add color_packet 2 get 0.114 mul add cvi /gray_packet exch def compression 0 gt { /number_pixels 1 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add def } ifelse 0 1 number_pixels 1 sub { pixels exch gray_packet put } for pixels 0 number_pixels getinterval } bind def /PseudoClassPacket { % % Get a PseudoClass packet. % % Parameters: % index: index into the colormap. % length: number of pixels minus one of this color (optional). % currentfile byte readhexstring pop 0 get /offset exch 3 mul def /color_packet colormap offset 3 getinterval def compression 0 gt { /number_pixels 3 def } { currentfile byte readhexstring pop 0 get /number_pixels exch 1 add 3 mul def } ifelse 0 3 number_pixels 1 sub { pixels exch color_packet putinterval } for pixels 0 number_pixels getinterval } bind def /PseudoClassImage { % % Display a PseudoClass image. % % Parameters: % class: 0-PseudoClass or 1-Grayscale. % currentfile buffer readline pop token pop /class exch def pop class 0 gt { currentfile buffer readline pop token pop /depth exch def pop /grays columns 8 add depth sub depth mul 8 idiv string def columns rows depth [ columns 0 0 rows neg 0 rows ] { currentfile grays readhexstring pop } image } { % % Parameters: % colors: number of colors in the colormap. % colormap: red, green, blue color packets. % currentfile buffer readline pop token pop /colors exch def pop /colors colors 3 mul def /colormap colors string def currentfile colormap readhexstring pop pop systemdict /colorimage known { columns rows 8 [ columns 0 0 rows neg 0 rows ] { PseudoClassPacket } false 3 colorimage } { % % No colorimage operator; convert to grayscale. % columns rows 8 [ columns 0 0 rows neg 0 rows ] { GrayPseudoClassPacket } image } ifelse } ifelse } bind def /DisplayImage { % % Display a DirectClass or PseudoClass image. % % Parameters: % x & y translation. % x & y scale. % label pointsize. % image label. % image columns & rows. % class: 0-DirectClass or 1-PseudoClass. % compression: 0-RunlengthEncodedCompression or 1-NoCompression. % hex color packets. % gsave currentfile buffer readline pop token pop /x exch def token pop /y exch def pop x y translate currentfile buffer readline pop token pop /x exch def token pop /y exch def pop currentfile buffer readline pop token pop /pointsize exch def pop /Helvetica findfont pointsize scalefont setfont x y scale currentfile buffer readline pop token pop /columns exch def token pop /rows exch def pop currentfile buffer readline pop token pop /class exch def pop currentfile buffer readline pop token pop /compression exch def pop class 0 gt { PseudoClassImage } { DirectClassImage } ifelse grestore } bind def %%EndProlog %%Page: 1 1 %%PageBoundingBox: 0 0 191 123 userdict begin %%BeginData: DisplayImage 0 0 191 123 12 191 123 1 1 1 1 fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffe fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffeffffffff83fffffffffffffffffffffffffffffffffffffe fffffffe00fffffffffffffffffff9fffffffffffffffffefffffffc007fffffffffffff fffff03ffffffffffffffffefffffff0003ffffffffffffffffff01ffffffffffffffffe fffffff0381ffffffc1ffffffffff00ffffffffffffffffefffffff07c07fffffc07ffff ffcffc03fffffffffffffffefffffff0ff03fffff800ffffff8fff803ffffffffffffffe fffffff0ff81fffff8003ffff807ffc00ffffffffffffffeffffffe0ffc0fffff0401fff e007ffe007fffffffffffffeffffffe1ffe07ffff87007ff000ffff800fffffffffffffe ffffffe1fff07ffff87e01fc003fffff801ffffffffffffeffffffe1fff83ffff87f0000 03ffffffc0007fffff80fffeffffffe1fffc1ffff87fc0000ffffffff00000000000fffe ffffffc1fffc1ffff83ff0007ffffffffe0000000000fffeffffffc3fffe0ffffc1ff801 ffffffffffc000000000fffeffffffc3ffff07fffe0fffffffffffffffff0000003ffffe ffffffc3ffff83ffff0ffffffffffffffffffffffffffffeffffffc3ffffc1ffff07ffff fffffffffffc7ffffffffffeffffffc3ffffe1ffff87fffffffffffffff87ffffffffffe ffffffc3ffffe0ffff87fffffffffffffff83ffffffffffeffffffc3fffff0ffff83ffff fffffffffffc3ffffffffffeffffffc3fffff07fffc1fffffffffffffffc3ffffffffffe ffffffc3fffff87fffe0fffffffffffffffc1ffffffffffeffffffc3fffff83ffff0ffff fffffffffffe1ffffffffffeffffffc3fffffc3ffff07ffffffffffffffe0ffffffffffe ffffffc3fffffc1ffff83fffffffffffffff0ffffffffffeffffffc3fffffe1ffffc1fff ffffffffffff07fffffffffeffffffc3fffffe0ffffe1fffffffffffffff87fffffffffe ffffffc3ffffff0ffffe0fffffffffffffff87fffffffffeffffffc3ffffff07ffff07ff ffffffffffff87fffffffffeffffffc3ffffff87ffff07ffffffffffffff83fffffffffe ffffffc3ffffff87ffff83ffffffffffffffc3fffffffffeffffffc3ffffff87ffffc1ff ffffffffffffc3fffffffffeffffffc3ffffff83ffffe1ffffffffffffffc1fffffffffe ffffffc3ffffffc3ffffe0ffffffffffffffe1fffffffffeffffffc3ffffffc1fffff07f ffffffffffffe1fffffffffeffffff83ffffffe0fffff01fffffffffffffe1fffffffffe ffffff87fffffff0fffff803ffffffffffffe1fffffffffeffffff847ffffff0fffff800 ffffcfffffffe1fffffffffeffffff800ffffff0fffff8003fff8fffffffe1fffffffffe ffffff8000fffff07ffffc0001fe07ffffffe1fffffffffeffffff00000000187ffffc38 000007ffffffe1fffffffffeffffff0f000000187ffffc3e00000fffffffe1fffffffffe ffffff0fe00000187ffffc1f80003fffffffe1fffffffffefffffe0ffe0000187ffffe1f fc00ffffffffe1fffffffffefffffc1ffffffff87ffffe1fffffffffffffe1fffffffffe fffffc1ffffffff87ffffe1fffffffffffffe1fffffffffefffff83ffffffff87ffffe1f ffffffffffffc1fffffffffefffff07ffffffff87ffffe1fffffffffffffc1fffffffffe ffffe0fffffffff87ffffe1fffffffffffff83fffffffffeffffc0fffffffff87ffffe1f ffffffffffff87fffffffffeffff81fffffffff87ffffe1fffffffffffff87fffffffffe fffe03fffffffff87ffffe1fffffffffffff87fffffffffefffc07fffffffff07ffffe1f ffffffffffff07fffffffffefff80ffffffffff0fffffc1fffffffffffff0ffffffffffe fff03ffffffffff0fffffc3ffffffffffffe0ffffffffffeffe07fffffffffe0fffff83f fffffffffffc1ffffffffffeffc1ffffffffffc1fffff07ffffffffffff83ffffffffffe ff83ffffffffffc1ffffe0fffffffffffff87ffffffffffeff07ffffffffff83ffffc1ff fffffffffff07ffffffffffefe0fffffffffff07ffffc1ffffffffffffe0fffffffffffe fc1fffffffffff07ffff83ffffffffffffc1fffffffffffefe3ffffffffffe0fffff07ff ffffffffffc3fffffffffffeff7ffffffffffc1ffffe0fffffffffffff83fffffffffffe fffffffffffffc1ffffc1fffffffffffff07fffffffffffefffffffffffff83ffff03fff ffffffffff07fffffffffffefffffffffffff07fffe07ffffffffffffe0ffffffffffffe ffffffffffffe0ffffc0fffffffffffffc1ffffffffffffeffffffffffffe1ffffc1ffff fffffffff83ffffffffffffefffffffffffff1ffffc3fffffffffffff07ffffffffffffe ffffffffffffffffffefffffffffffffe0fffffffffffffeffffffffffffffffffffffff ffffffffc1fffffffffffffeffffffffffffffffffffffffffffffff83fffffffffffffe ffffffffffffffffffffffffffffffff83fffffffffffffeffffffffffffffffffffffff ffffffff07fffffffffffffefffffffffffffffffffffffffffffffe0ffffffffffffffe fffffffffffffffffffffffffffffffc1ffffffffffffffeffffffffffffffffffffffff fffffffe3ffffffffffffffeffffffffffffffffffffffffffffffff7ffffffffffffffe fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff ffffe000fffffffffffffffeffffffffffffffffffffffffffff9bf8fffffffffffffffe fffffffffffffffffffffffffffe7dfdfffffffffffffffeffffffffffffffffffffffff fffdf8fdfffffffffffffffefffffffffffffffffffffffffff3e77bfffffffffffffffe ffffffffffffffffffffffffffef9f7bfffffffffffffffeffffffffffffffffffffffff ff9f3fb7fffffffffffffffefffffffffffffffffffffffffe7cff2ffffffffffffffffe fffffffffffffffffffffffffdfbfeaffffffffffffffffeffffffffffffffffffffffff f3e7f99ffffffffffffffffeffffffffffffffffffffffffe01fe79ffffffffffffffffe ffffffffffffffffffffffffefbfdf3ffffffffffffffffeffffffffffffffffffffffff efbf3efffffffffffffffffeffffffffffffffffffffffffdddcf9fffffffffffffffffe ffffffffffffffffffffffffd8dbe7fffffffffffffffffeffffffffffffffffffffffff d8e7dffffffffffffffffffeffffffffffffffffffffffffec6f3ffffffffffffffffffe ffffffffffffffffffffffffeeecfffffffffffffffffffeffffffffffffffffffffffff f7dbfffffffffffffffffffefffffffffffffffffffffffff9c7fffffffffffffffffffe fffffffffffffffffffffffffe1ffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffe fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffe fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffe fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffe fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffe fffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffff fffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffe %%EndData end %%PageTrailer %%Trailer %%BoundingBox: 0 0 190 122 %%EOF aft-5.098/aclocal.m40000744000175000017500000005127011442311074011075 00000000000000# generated automatically by aclocal 1.8.5 -*- Autoconf -*- # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 # Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. # -*- Autoconf -*- # Copyright (C) 2002, 2003 Free Software Foundation, Inc. # Generated from amversion.in; do not edit by hand. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.8"]) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION so it can be traced. # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.8.5])]) # AM_AUX_DIR_EXPAND # Copyright (C) 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to # `$srcdir', `$srcdir/..', or `$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is `.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # Do all the work for Automake. -*- Autoconf -*- # This macro actually does too much some checks are only needed if # your package does certain things. But this isn't really a big deal. # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 11 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.58])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) AM_MISSING_PROG(AUTOCONF, autoconf) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) AM_MISSING_PROG(AUTOHEADER, autoheader) AM_MISSING_PROG(MAKEINFO, makeinfo) AM_MISSING_PROG(AMTAR, tar) AM_PROG_INSTALL_SH AM_PROG_INSTALL_STRIP AC_REQUIRE([AM_PROG_MKDIR_P])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES(CC)], [define([AC_PROG_CC], defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES(CXX)], [define([AC_PROG_CXX], defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ]) ]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $1 | $1:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. # Copyright (C) 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl install_sh=${install_sh-"$am_aux_dir/install-sh"} AC_SUBST(install_sh)]) # -*- Autoconf -*- # Copyright (C) 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 1 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # -*- Autoconf -*- # Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN([`missing' script is too old or missing]) fi ]) # AM_PROG_MKDIR_P # --------------- # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. # Copyright (C) 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories # created by `make install' are always world readable, even if the # installer happens to have an overly restrictive umask (e.g. 077). # This was a mistake. There are at least two reasons why we must not # use `-m 0755': # - it causes special bits like SGID to be ignored, # - it may be too restrictive (some setups expect 775 directories). # # Do not use -m 0755 and let people choose whatever they expect by # setting umask. # # We cannot accept any implementation of `mkdir' that recognizes `-p'. # Some implementations (such as Solaris 8's) are not thread-safe: if a # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' # concurrently, both version can detect that a/ is missing, but only # one can create it and the other will error out. Consequently we # restrict ourselves to GNU make (using the --version option ensures # this.) AC_DEFUN([AM_PROG_MKDIR_P], [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # Keeping the `.' argument allows $(mkdir_p) to be used without # argument. Indeed, we sometimes output rules like # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more # expensive solution, as it forces Make to start a sub-shell.) mkdir_p='mkdir -p -- .' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi AC_SUBST([mkdir_p])]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 2 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # ------------------------------ # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)]) # _AM_SET_OPTIONS(OPTIONS) # ---------------------------------- # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # # Check to make sure that the build environment is sane. # # Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # serial 3 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT(yes)]) # AM_PROG_INSTALL_STRIP # Copyright (C) 2001, 2003 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # One issue with vendor `install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in `make install-strip', and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be `maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) aft-5.098/configure.in0000744000175000017500000000035611442304064011546 00000000000000# # configure.in for AFT # 2002/03/16 alane@geeksrus.net # AC_INIT(aft.in) AM_INIT_AUTOMAKE(aft, 5.098) dnl Checks for programs. AC_PROG_INSTALL AC_PATH_PROG(PERL, perl) AC_SUBST(PERL) dnl Write 'em out. AC_OUTPUT(Makefile aft aft.cgi) aft-5.098/ChangeLog.aft0000744000175000017500000004715211442551673011577 00000000000000#---TABSTOP=4 ** Version 5.098 (10sep2010) *** AFT.pm Added experimental support for Index generation. See aft-refman.aft for more info. Also, I've started some much needed code cleanup. ** Version 5.097 (05sep2009) *** AFT.pm Section levels 5 thru 7 are now supported in HTML and LaTeX. ** Version 5.096 (27sep2005) *** aft-html.dat and aft-tex.dat Removed the ''historical'' hack: using \\ to produce a line break. This was never documented, so it shouldn't cause too much pain to have it removed. If it does cause pain, let me know. You could always use a pragma to (re)implement this feature/hack. In the meantime... A new rule element: |LineBreak| has been introduced so that internal reliance on \\ goes away. |LineBreak| has not been exposed to the end user (yet). *** AFT.pm Fixed a small bug concerning line continuations in verbatim mode: Line continuations are no longer parsed when in verbatim mode. What you type is what you should get. ** Version 5.095 (29jul2004) *** aft-refman.aft Used a double backslash \\ to represent a backslash when a single backslash would do. (Double backslash is a very old (archaic?) way of forcing line breaks in AFT). A single backslash _not_ followed by a new line, |\[,\_, or \~| will be left alone. Does this make sense? This will be re-investigated and a better solution offered. Soon.. *** install.pl Now correctly quotes window file paths. This should fix an issue with launch_ie. *** aft-tex.dat Added \usepackage{ae} to utilize outline fonts instead of bitmap fonts. (suggestion by Flynn Marguardt). *** AFT.pm Some internal renaming of variables, etc to make the programming style more consistent. So far, tests indicate that nothing is broken. Please, please let me know if something breaks because of this. Nicer looking code make future changes easier :-) ** Version 5.094 (6apr2004) *** bn-html now default Ben Lilburne's HTML (aft-bn-html.dat) is now the default HTML style. *** Footnotes! AFT now has support for footnotes and endnotes. Footnotes (notes in page footers) are used where supported (e.g. LaTeX), otherwise notes are collected at the end of the document and linked back to the referent text in systems withouth page footers (e.g. HTML). *** New aft-refman.aft Added a syntax section, documented line continuations and footnotes. *** Code cleanup of AFT.pm Getting slowly better. Better regexes. Better perl. ** Version 5.0931 (2feb2004) *** New .dat file element |EXT| has been added to specify the default output file extension. If |EXT| isn't present, then |ID| is used. *** aft-tex.dat In the previously release, I accidently distributed this as DOS file (^M terminated lines) which caused much havoc. ** Version 5.093 (30jan2004) *** aft-tex.dat Guido Gonzato has cleaned up aft-tex.dat to produce even more beautiful LaTeX output. *** aft-html.dat Slightly tweaked to support aft-bn-html.dat (first foray into stylesheets). *** aft-bn-html.dat Contributed HTML extension to include stylesheets. ** Version 5.092 (19oct2003) *** aft-tex.dat Better LaTeX support _(including tables!)_. Better, but not perfect. It still fails trip.aft, although aft-refman.aft looks nice. ** install.pl It was pointed out that if you supply a destination directory that ends with ''aft'' then the script will incorrectly try and install the |aft| program (same exact name as directory fragment) there. This will have unexpected results. Since only non-Unix users should be using |install.pl|, the fix was to name the resulting program |aft.pl| (to reduce chances of conflicts). This is essentially a Windows fix. *** Table Parser A new table parser (controlled by pragma |#---SET-CONTROL tableparser=new|) has been included. The new parser requires you terminate a row with a line of dashes (|-|). With the new parser you can do multi-line rows like this: ^<< #---SET-CONTROL tableparser=new ! _Very_ Important Dates ! !-------------------------------! ! Year ! Month ! Day ! Notes ! !-------------------------------! ! 1966 ! Oct ! 9 ! Hello ! ! ! ! ! Multiline! ! ! ! ! text here! !-------------------------------! ! 1999 ! Dec ! 25 ! xmas is ! ! ! ! ! Christmas! !-------------------------------! ! 2000 ! Jan ! 1 ! New Years! !-------------------------------! ^>> produces: #---SET-CONTROL tableparser=new ! _Very_ Important Dates ! !-------------------------------! ! Year ! Month ! Day ! Notes ! !-------------------------------! ! 1966 ! Oct ! 9 ! Hello ! ! ! ! ! Multiline! ! ! ! ! text here! !-------------------------------! ! 1999 ! Dec ! 25 ! xmas is ! ! ! ! ! Christmas! !-------------------------------! ! 2000 ! Jan ! 1 ! New Years! !-------------------------------! ** Version 5.091 (14aug2003) *** compile.pl preFilter/postFilter Irwin Oppenheim suggested a neat way to extend AFT's capabilities: allow perl expressions in preFilter and postFilter regexes. So, now we have |preFilter/e| and |postFilter/e| and the capability of specifying 1 line perl "subs" inside of the .dat files (see aft-tex.dat). *** New URL variable symbol A new URL symbol: %_text% has been introduced to help the LaTeX url package produce meaningful url links. %_text% is set to %text% if %text% != %target% otherwise %_text% is blank. Since TeX displays the actual URL, we won't get ''double-up'' values when %text% is the same as %target%. Confused? ** Version 5.09 (29jul2003) *** aft-html.dat international characters This was somehow missing in the last release! *** New and Improved Lout support Courtesy of Abel Morabito! *** New escape sequences (for literals) You can now escape |\_|,|\||, and |\~| with a backslash.... (if you don't want to double them up). *** Verbatim Square Brackets Don't like the new \[] hyperlink interface? Turn it off with: #---SET-CONTROL verbatimsquarebrackets=yes *** File URL syntax Fixed the problem where \[text (file://something)] wasn't allowed. *** Relative URL syntax Added support for \[local ref (:aft-refman.html)] ([local ref (:aft-refman.html)]) to support relative URLs. ** Version 5.08 (31may2003) *** New ''Clarified'' Artistic License A more GNU friendly license has been adopted: A clarified Artistic License. *** install.pl now more Windoze Friendly ''Experimental'': You can now install AFT onto windows with .aft filenames associated with the AFT executable. *** SET Pragma Before all variables had to be words (\w), now they can be anything not containing a space or "=" character. (Be sure to escape special characters...) *** Target and References You can now escape \[not a link] by preceding it with a backslash (|\|) to prevent bracketed text from becoming links. Other target/reference errors were fixed too. *** AFT.pm Refactoring Cleaned up the code to make the Perl a bit more consistent. No impact on execution. *** New aft-tex.dat and aft-html.dat Guido Gonzato (ggonza -at- tin.it) cleaned up aft-tex.dat to produce more readable and modern (and hence more beautiful) LaTeX. He also added some internationalization to aft-html.dat. ** Version 5.08b (1apr2003) *** Targets and References The old style: {+Tac-2002+} {-click here@some target-} }+some target+{ }+Tac-2002+{ has been deprecated (gently!) in favor of: [Tac-2002] [click here (some target)] =[some target]= =[Tac-2002]= Deprecated is a _strong_ word. I won't be dropping the old style anytime soon (and if you _want_ parens in your target/reference text you will need to use the old way), but I encourage general adoption (and feedback!) on the new way. *** aft-refman.aft Updated! *** aft-tex.dat Minor improvements and fixes on target/references. *** SET bug - expands in verbatim Fixed a bug where pragmas are expanded in verbatim mode. Now, if you are in verbatim (but not ''filtered verbatim''), the pragmas are not expanded. ** Version 5.0793 (3sep2002) *** PDFLaTeX vs LaTeX I'm using PDFLaTeX (pdflatex) these days. This probably means nothing. However I noticed that pdflatex has support for jpeg images (as opposed to eps). So, I changed aft-refman.aft to use |aft.jpg| for the AFT image. This will not work under the original latex. But, is it worth a special pdflatex mode? *** Documentation updated Updated aft-refman.aft to document |#---SET| pragma and |#)| enumerated lists. *** Easier enumerated lists You can now use |#)| or |#.| to denote items in an enumerated list, since AFT will choose the numbers for you anyway. This means you should never expect to start ''quotes'' with |#)| or |#.| -- which would be weird anyway. *** Section headers Section headers are now processed with filters. In a nutshell, you can now do emphasis/italic/etc in section headers. Let the havoc begin. ** Version 5.0792 (27mar2002) *** New build distribution AlanE saved me from myself (see previous version). This should be good to go. ** Version 5.0791 (27mar2002) ''Never happened. It was just a dream. Go back to sleep.'' ** Version 5.079 (21mar2002) *** New build distribution Converted build to GNU automake/autoconf. - alane at geeksrus.net *** aft-rtf.dat Exec'ing postrtf.pl fails because it isn't in perl's search path, so we fake it out for now by prepending the contents of |@INC[0]| to the file name. |@INC[0]| should be the aft library directory. *** Trailing Spaces in section headers Trailing spaces in section header text are now trimmed. *** Verbatim Spaces to Tab Fixed bug in block verbatim mode (|^<<|), where spaces were being turned into tabs. ** Version 5.078 (22feb2002) *** TOC fixed Table of Contents (TOC) was generating references to the numbers in autonumbered sections, instead of the actual sections themselves. This has been fixed. How long was this broken? I need better regression testing! *** Output filename mangling bug fixed Output filenames created from input filenames with more than one |.| in it caused problems. I wasn't handling filename suffix replacement correctly. This has been fixed (e.g. processing |aft --type=html foo.bar.aft| will now correctly produce an output file named |foo.bar.html|. Thanks to willg at bluesock dot org for pointing that out. *** PASS-xxx Broken Yikes! Somewhere between releases the PASS pragma broke (it was being ignored). It has since been repaired. *** Block/Filtered Verbatim bug fixed A subtle processing ordering problem. If you were in Block Verbatim mode and the beginning of your line looked like an AFT command, that command was interpreted! We need to check for Block Verbatim mode before we check for other commands. This is fixed. Thanks to Greg Hurell at mac dot com for noticing this problem. ** Version 5.078b (12jan2002) *** SET pragma You can now set symbolic substitutions in *.dat files _and_ AFT documents. You get two flavors: [#---SET symbol=some text until newline] - Sets up a substitution to happen before preFiltering. [#---SET-{ID} symbol=some text until newline] - Sets up ID specific substitution to happen after filtering. The first flavor is useful for doing simple substitution of arbitrary text: (e.g. #--SET NAME=_Bob Baskin_ Hello, %NAME%. You may have just won... ) The second can be used to do more complex ''output type'' dependent substitutions: (e.g. #--SET-HTML NAME= Sincerely yours, %NAME%. ) You can also use "SET" (without the preceding #--) in *.dat files to provide default values. *** aft-html.dat/AFT.pm Anchor (target) name for sections was the section number. This isn't intuitive (at least not for me), so it has been changed back to the section text. This way, references to sections are once again just the section name (sans number). ** Version 5.077 (29dec2001) *** RTF Eva Maria Krause (Eva.Maria.Krause at muenster.de) added RTF support. I modified aft to allow it to invoke post processing scripts to make Eva's changes easier to use... There are still some rough areas, but it is a good start! *** Installer Improvements A little easier... no? *** Minor bug? I am not sure if this got released, but the "interpolate" keyword in *.dat files was being misinterpreted. It works now :-) *** Tables under Windoze A end-of-line pattern match '$' fails under cygwin/perl5.6/win2k. This is troublesome for the superfluous !---------! seperator. We now match on '$' or '\r'... *** aft-html.dat change Dummy links were provided for sections. This got annoying (at least for me), so the sections are back to the way they were. ** Version 5.076a (21jun2001) *** Compile.pl prefilters preFilter can now be used to ''remove'' patterns as well as replace them. For example: preFilter XXXXX will remove every occurrence of |XXXXX|. *** Improved URL handling Once again, Chris Bidmead caught a little niggling bug. The URL parser didn't handle dashes ('-') in hostnames. This has been fixed. *** --autonumber Richard Tietjen (rdtiejen at pobox.com) contributed the new --autonumber feature. With this switch AFT will automatically provide numbering for sections. This is mostly for HTML output. *** Fixed doublequote handling in aft-tex.dat. ** Version 5.072b (23apr2001) *** Lout Support Added support for the typesetting language ''lout''. Thanks Abel! *** Improved Regular Expressions Slight improvements to make some expressions less greedy. Improvements by Abel Morabito. ** Version 5.072a (14mar2001) Added more explicit support for ''sectioning''. This gives much finer control over how sections entry/exit are noted. See aft-lout.dat for examples. *** Compile.pl * Allow passing comments inside of preamble and postamble. Since the preamble and postamble is copied *verbatim*, inner comments shouldn't be stripped. * Use qq' ' for quoting commands. This lets the crafter of the aft-*.dat do things like add |\n| and other control sequences to their output. i.e. * StartParagraph \n

\n ** Version 5.07a (17feb2001) *** Cleanup Continued refactoring and clean up of code. One day, I will be pretty! *** CGI Preliminary support for doing AFT through the web. *** Sections Fixed the nesting/un-nesting of sections. This was done so I could begin to add support for lout. Lout expects subsections to be sandwiched between 'BeginSubSection' and 'EndSubSection'. Also added new keywords of the same name. ** Version 5.06 (19dec2000) *** General Note I need to make comprehensive test suite... Hopefully, soon. For the time being, aft-refman.aft and trip.aft will do. *** XHTML Added a new XHTML element file (aft-xhtml.dat). It should produce well formed XHTML. Consider it beta for now (I need to get a validating parser installed). *** AFT.pm **** A Very Bad List Bug! If you do ''very'' nested and convoluted things with lists, it will not work properly. Here is a failure case: * Bullet 1. Number 1 2. Number 2 This will produce two numbered lists... don't ask why... the problem turned out to be rather stupid on my part. I forgot that |push| adds values to the ''end'' of an array. I looked at |listStack[0]| as the top of the array (stack), but I really wanted |$listStack[$#listStack]|. This bug has been around for quite some time now. But, it only rears it's ugly head when you nest lists of differing types. **** Comment Bug || isn't valid XHTML? I started with: || and aft kind of munged it. Anyway, it has now been fixed to produce: ||. **** Subtle end list element bug If a list is the very last thing in your document, the last list element isn't terminated properly (the nesting unrolls without terminating the list). Adding a &endListElement() just before unrolling fixes the problem. *** Element File Compiler **** Reuse In Version 5.05b changelog, did I say ''inherit''? I meant ''use''... # A new keyword has been introduced: ''use''. This allows a sort of compile time inheritance. If you want to utilize some of the features from an element file, just 'use' it (''use aft-xzy.dat''). This way you don't have to copy end edit to introduce your own modifications. Also, it was broken... Rather than override preambles and postambles, compile.pl appended to them :( Now, it's okay :) ** Version 5.05b (21jul2000) *** New Installation Stuff Rewrote installer. Everything now expects to install under a single 'aft' directory rather than all over the place. *** AFT.pm AFT turned into a Module.... the first step to CPAN? It's cleaner too (better modularity and finer grain control). With this change, aft.pl now justs invokes the module. *** Element File Overhaul **** Spaces Allowed! You don't have to litter the file with tabs, fields can now be delimited by spaces... will this hold up? **** Reuse A new keyword has been introduced: ''inherit''. This allows a sort of compile time inheritance. If you want to utilize some of the features from an element file, just 'inherit' it (''inherit aft-xzy.dat''). This way you don't have to copy end edit to introduce your own modifications. **** Name Change aft-xyz.dat turns into aft-xyz.pm (dropping the 'dac' extension). They are proper modules, so why not recognize that? **** New compile.pl Rewrote it. Much cleaner now. Oooh. ** Version 5.05a (3apr2000) *** Plain Old URL Targets ... just got plainer. A simpler regex is now being used. If you need to get real funky with your URLs, don't use this feature! I simplified the regex. The older (fuller) one was full of bugs. *** Ftp is now supported in Plain Old URL Targets Very simple change. Why didn't I do it before? ** Version 5.04 (9mar2000) *** Installation bug corrected Fixed a bug in compile.pl that causes filenames like /tmp/bin/../lib/foo.dat to be parsed incorrectly (resulting in a bad output file name). *** Added LaTeX output support Very, very preliminary and incomplete. Just for experimenting (right now). ** Version 5.03 (5jan2000) *** Improved (hopefully?) the installer The prompts pick better default directory paths... but will this work under Windows? *** Minor aft-html.dat improvement Centered lines are delimited by
. This causes double spacing between centered lines. This can be annoyong, so the
has been removed. ** Version 5.02b (8oct99) *** Multiline face changes Chris Bidmead (bidmead at cbidmead.demon.co.uk) identified a bug with multi-line face changes (bold, italics, etc) where you can't do single line face changes. This has been fixed. You should be able to do stuff like: ''This is an italic paragraph with _bold_ face changes.'' ''This is an italic paragraph with _bold_ face changes.'' *** Plain Old Hyperlinks Chris Bidmead (bidmead at cbidmead.demon.co.uk) identified a bug with Plain Old Hyperlinks: They don't work if they occur at the beginning of the line. Here is the offending code: $line =~ s/([\s\(])((http|https|file|ftp|mailto)\:[^\s\)]+)/ I have intended to rewrite the http[s]|file parsing to be more rigorous, so this prompted me to do so. Now all Plain Old Hyperlinks must be delimited by spaces. See the code for the changes. ** 5.01b 3aug99 Plain Old Hyperlinks were broken and have now been fixed? ** 5.0b 2aug99 The beta release has a couple of fixes: * aft-html.dat : Table is no longer centered by default. * install.pl : Fixed the Window install. And a new feature: * $HOME is searched first for the rule file; then the installation directory. ** 5.0a 22jun99 This is the alpha release of the ''next generation AFT''. A lot has happened since 4.6. The world has changed. Here is what has happened: * This implementation is ''not'' written in Aftweb. It is a cleaned up version of the same Perl 5 sources that made 4.6. * LaTeX support has been dropped. XML and HTML4 support has become the main focus (you can generate LaTeX from XML/HTML anyway). * Reliance on C++ has been dropped. aft-toc has been rewritten in perl and folded into aft.pl. * Some rarely used commands have been improved (changed) to make them more usable. Details will follow. aft-5.098/install.pl0000744000175000017500000001237710102107225011236 00000000000000: # use perl -*- mode: Perl; -*- eval 'exec perl -S $0 "$@"' if $running_under_some_shell; # Simple AFT Installer for DOS/Unix (version 3.1) # print <$aftexe"); while () { s/use lib \"\@prefix\@\/share\/\@PACKAGE\@\"/use lib qw \($aftdatadest\)/; print AFT_OUT; } close(AFT_IN); close(AFT_OUT); if ($os ne "msdos") { chmod 0755,"$aftexedest/aft"; } else { open (AFT_IE, ">$aftdatadest/aft-htm.dat"); print AFT_IE "use $aftdatadest/aft-bn-html.dat\n"; print AFT_IE "PostProcessor\t".'exec "$^X @INC[0]/launch_ie.pl \"$outputfile\""'."\n"; close (AFT_IE); $yn = prompt("Preview resulting .htm in IE after AFT runs?", "yes"); open (AFT_BATOUT, ">$aftexedest/aft.bat"); if ($yn =~ /y/) { $run_ie = 1; print AFT_BATOUT "$perl5exe $aftexe --type=htm --verbose \%1 \%2 \%3 \%4"; } else { $run_ie = 0; print AFT_BATOUT "$perl5exe $aftexe --verbose \%1 \%2 \%3 \%4"; } close(AFT_BATOUT); $yn = prompt("Try and associate all files ending with .aft with AFT?", "yes"); if ($yn =~ /y/) { use Win32; use Win32::TieRegistry; $Registry->Delimiter("/"); $Registry->{"HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/.aft/"} = { "/Application" => "aft.bat", "OpenWithList/" => { "/a" => "aft.bat", "/MRUList" => "a" } }; print "\nNow you can double click on .aft files to run AFT."; } } print "\nInstalling support files into $aftdatadest..."; copyfile("AFT.pm", $aftdatadest); copyfile("postrtf.pl", $aftdatadest); copyfile("launch_ie.pl", $aftdatadest); copyfile("compile.pl", $aftdatadest); copyfile("aft-html.dat", $aftdatadest); copyfile("aft-bn-html.dat", $aftdatadest); copyfile("aft-lout.dat", $aftdatadest); copyfile("aft-xhtml.dat", $aftdatadest); copyfile("aft-rtf.dat", $aftdatadest); copyfile("aft-tex.dat", $aftdatadest); print "\nInstalling documentation files into $aftdatadest..."; copyfile("aft-refman.aft", $aftdocdest); copyfile("aft2rtf-doc.aft", $aftdocdest); copyfile("aft.gif", $aftdocdest); print "\nCompiling rules...\n\t"; system "$perl5exe $aftdatadest/compile.pl $aftdatadest/aft-html.dat"; system "$perl5exe $aftdatadest/compile.pl $aftdatadest/aft-htm.dat"; system "$perl5exe $aftdatadest/compile.pl $aftdatadest/aft-lout.dat"; system "$perl5exe $aftdatadest/compile.pl $aftdatadest/aft-xhtml.dat"; system "$perl5exe $aftdatadest/compile.pl $aftdatadest/aft-tex.dat"; system "$perl5exe $aftdatadest/compile.pl $aftdatadest/aft-rtf.dat"; print "\nCreating documentation..."; print "\natf2rtf-doc.rtf.."; system "$perl5exe $aftexe --type=rtf $aftdocdest/aft2rtf-doc.aft"; print "\natf-refman.html.."; system "$perl5exe $aftexe --type=html $aftdocdest/aft-refman.aft"; if ($os eq "msdos" && $run_ie) { system "$perl5exe $aftexe --type=htm $aftdocdest/aft-refman.aft"; } else { system "$perl5exe $aftexe --type=html $aftdocdest/aft-refman.aft"; } print "\nInstallation is complete!"; print " Press Return to exit:"; $ans = ; sub prompt { local($text, $default) = @_; local($ans); printf ("%s [%s]: ", $text, $default); $ans = ; if ($ans eq "\n") { $ans = $default; } else { chop $ans; } die "Aborting installation" if ($ans =~ /quit/); return $ans; } sub copyfile { local($fname,$dest) = @_; if ($os eq "msdos") { $dest =~ s/\//\\/g; # fix slashes $copy="copy"; } else { $copy="cp"; } `$copy $fname $dest`; } aft-5.098/missing0000744000175000017500000002403607654735632010655 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. # Copyright (C) 1996, 1997, 1999, 2000, 2002 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA # 02111-1307, USA. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try \`$0 --help' for more information" exit 1 fi run=: # In the cases where this matters, `missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi case "$1" in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case "$1" in -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file \`aclocal.m4' autoconf touch file \`configure' autoheader touch file \`config.h.in' automake touch all \`Makefile.in' files bison create \`y.tab.[ch]', if possible, from existing .[ch] flex create \`lex.yy.c', if possible, from existing .c help2man touch the output file lex create \`lex.yy.c', if possible, from existing .c makeinfo touch the output file tar try tar, gnutar, gtar, then tar without non-portable flags yacc create \`y.tab.[ch]', if possible, from existing .[ch]" ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing 0.4 - GNU automake" ;; -*) echo 1>&2 "$0: Unknown \`$1' option" echo 1>&2 "Try \`$0 --help' for more information" exit 1 ;; aclocal*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." touch configure ;; autoheader) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`acconfig.h' or \`${configure_ac}'. You might want to install the \`Autoconf' and \`GNU m4' packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case "$f" in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. You might want to install the \`Automake' and \`Perl' packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. You can get \`$1Help2man' as part of \`Autoconf' from any GNU archive site." file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison|yacc) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.y' file. You may need the \`Bison' package in order for those modifications to take effect. You can get \`Bison' from any GNU archive site." rm -f y.tab.c y.tab.h if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" y.tab.h fi ;; esac fi if [ ! -f y.tab.h ]; then echo >y.tab.h fi if [ ! -f y.tab.c ]; then echo 'main() { return 0; }' >y.tab.c fi ;; lex|flex) echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.l' file. You may need the \`Flex' package in order for those modifications to take effect. You can get \`Flex' from any GNU archive site." rm -f lex.yy.c if [ $# -ne 1 ]; then eval LASTARG="\${$#}" case "$LASTARG" in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if [ -f "$SRCFILE" ]; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if [ ! -f lex.yy.c ]; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a dependency of a manual page. You may need the \`Help2man' package in order for those modifications to take effect. You can get \`Help2man' from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` fi if [ -f "$file" ]; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit 1 fi ;; makeinfo) if test -z "$run" && (makeinfo --version) > /dev/null 2>&1; then # We have makeinfo, but it failed. exit 1 fi echo 1>&2 "\ WARNING: \`$1' is missing on your system. You should only need it if you modified a \`.texi' or \`.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy \`make' (AIX, DU, IRIX). You might want to install the \`Texinfo' package or the \`GNU make' package. Grab either from any GNU archive site." file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` if test -z "$file"; then file=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $file` fi touch $file ;; tar) shift if test -n "$run"; then echo 1>&2 "ERROR: \`tar' requires --run" exit 1 fi # We have already tried tar in the generic part. # Look for gnutar/gtar before invocation to avoid ugly error # messages. if (gnutar --version > /dev/null 2>&1); then gnutar "$@" && exit 0 fi if (gtar --version > /dev/null 2>&1); then gtar "$@" && exit 0 fi firstarg="$1" if shift; then case "$firstarg" in *o*) firstarg=`echo "$firstarg" | sed s/o//` tar "$firstarg" "$@" && exit 0 ;; esac case "$firstarg" in *h*) firstarg=`echo "$firstarg" | sed s/h//` tar "$firstarg" "$@" && exit 0 ;; esac fi echo 1>&2 "\ WARNING: I can't seem to be able to run \`tar' with the given arguments. You may want to install GNU tar or Free paxutils, or check the command line arguments." exit 1 ;; *) echo 1>&2 "\ WARNING: \`$1' is needed, and you do not seem to have it handy on your system. You might have modified some files without having the proper tools for further handling them. Check the \`README' file, it often tells you about the needed prerequirements for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing \`$1' program." exit 1 ;; esac exit 0 aft-5.098/AUTHORS0000744000175000017500000000001307744634502010310 00000000000000Todd Coram aft-5.098/aft-loutbook.dat0000744000175000017500000001322510035035115012327 00000000000000# AFT rules for Lout books # COPYRIGHTS # Almost Free Text (AFT) # Todd A. Coram (todd@maplefish.com) # http://www.maplefish.com/todd/ # # Basser Lout # Jeffrey H. Kingston (jeff@cs.usyd.edu.au) # http://snark.ptc.spbu.ru/~uwe/lout/ # # THANKS # Todd Coram for modifying AFT to support Lout structure and for his # help and kindness! # # DISCLAIMER # This file's a user contribution. Neither copyrights nor # warranties. Use at your own risk --it doesn't look dangerous # though--. If you like the ease of AFT and the power of Lout feel # free to hack it and please send me your work or ideas. Enjoy! # # Abel Morabito (amorabito@funescoop.com.ar) # April, 2001 ID LOUTBOOK # Preamble and postamble ###################################################################### Preamble{ # Basser Lout Version 3.25 - Book - Output generated by AFT 5.08 @SysInclude { book } @Book @Title {%title%} @Author {%author%} @Edition {} @Publisher {} @BeforeTitlePage {} @OnTitlePage {} @AfterTitlePage {} @AtEnd {} @InitialFont { Times Base 12p } @InitialBreak { adjust 1.2fx hyphen } @InitialSpace { tex } @InitialLanguage { Spanish } @PageOrientation { Portrait } @PageHeaders { Titles } @ColumnNumber { 1 } @FirstPageNumber { 1 } @IntroFirstPageNumber { 1 } @OptimizePages { Yes } // }Preamble Postamble{ }Postamble # Pre and postfilters ###################################################################### # MANUAL FORM FEED prefilter \014 @NP # SPECIAL CHARACTERS # # Plain Literal Plain Literal # # " "\"" @ "@" # | "|" # "#" # \ "\\" } "}" # & "&" ^ "^" # ~ "~" / "/" # { "{" " " (blank space) # ## Protect backslashes, then escape quotation marks and backslashes. ## They mess each other if you don't do it this way. preFilter \\ -BSlAsH- preFilter \" \"\\\"\" preFilter -BSlAsH- \"\\\\" ## Protect targets, references and links. Escape braces and 'at'. preFilter \{\-([^\}]+)\@([^\}]+)\-\} %LeFtB%NeG$1-AtChAr-$2%NeG%RiGhTB preFilter \{\+([^\}]+)\+\} %LeFtB%PlUs$1%PlUs%RiGhTB preFilter \}\+([^\}]+)\+\{ %RiGhTB%PlUs$1%PlUs%LeFtB preFilter \{\-([^\}]+)\-\} %LeFtB%NeG$1%NeG%RiGhTB preFilter \}\-([^\}]+)\-\{ %RiGhTB%NeG$1%NeG%LeFtB preFilter [\{\}\@] \"$&\" preFilter %LeFtB { preFilter %RiGhTB } preFilter %PlUs + preFilter %NeG - preFilter -AtChAr- @ ### This is to type loutish typographic quotes directly ``like this'' ### instead of ``like this'''' --both work anyway. preFilter \`\`([^\']+)\'\'\'\' ``$1-4QuOtEs- preFilter \`\`([^\']+)\'\' ``$1-2QuOtEs- preFilter -4QuOtEs- '''' preFilter -2QuOtEs- '''' ## Escape some other special characters. preFilter [\#\&\^\/] \"$&\" ## Escape tildes not used to make small caps. Double tildes are replaced ## by single ones to get protected spaces. preFilter \~\~ -DTiLdE- postFilter \~ \"~\" postFilter -DTiLdE- ~ ### Escape vertical bars not used to make teletype. postFilter \| \"|\" # Elements ###################################################################### #REFERENCES TARGETS and URLs --no hyperlinks in lout files. URL @F {<%target%>} InternalReference %text% (p. @PageOf {%target%}) Target %text% @PageMark {%target%} # TITLE and AUTHOR: see 'Preamble' #OutputTitle #Title #Author # TABLE OF CONTENTS TOC # TOC should be made from your lout file. ## IMAGES Image \n@IncludeGraphic %image% Image-center \n@CD @IncludeGraphic %image% Image-left \n@LD @IncludeGraphic %image% Image-right \n@RightDisplay @IncludeGraphic %image% ## NUMBERED STRUCTURES * \n@Chapter @Title {%section%} @Tag {%section%} @Begin ** \n@Section @Title {%section%} @Tag {%section%} @Begin *** \n@SubSection @Title {%section%} @Tag {%section%} @Begin **** \n@SubSubSection @Title {%section%} @Tag {%section%} @Begin EndSect1 \n@End @Chapter EndSect2 \n@End @Section EndSect3 \n@End @SubSection EndSect4 \n@End @SubSubSection BeginSectLevel1 EndSectLevel1 BeginSectLevel2 \n@BeginSections EndSectLevel2 \n@EndSections BeginSectLevel3 \n@BeginSubSections EndSectLevel3 \n@EndSubSections BeginSectLevel4 \n@BeginSubSubSections EndSectLevel4 \n@EndSubSubSections # SECTIONS REFERENCING TOC are not needed in Lout # #^* #^** #^*** #^**** # MISC LineBreak \n@LLP StartParagraph \n@PP\n EndParagraph ParagraphBreak NoteRef @Sup {%ref%} Superscript @Sup {%stuff%} Subscript @Sub {%stuff%} Center \n@CD {%center%} HorizontalLine \n@D @FullWidthRule ## TABLES are not supported. Just make them in your Lout file. StartTable ######## WARNING: AFT doesn't support Lout tables yet! ######## #TableCaption #TableHeader #TableElement #TableRowStart #TableRowEnd #EndTable ## LISTS StartBulletList \n@BL BulletListElement \n@LI {\n EndBulletListElement \n} EndBulletList \n@EndList StartNamedList \n@TL NamedListElement \n@DTI {%name%} {\n EndNamedListElement \n} EndNamedList \n@EndList StartNumberedList \n@PNL NumberedListElement \n@LI {\n EndNumberedListElement \n} EndNumberedList \n@EndList ## QUOTED TEXT StartQuote \n@QD { EndQuote } ## FONT FACES ### Lout's verbatim mode doesn't process lout markup so PreFilterVerbatim? No ### Full filtering is needed mainly by AFTWEB --not by Lout, so FullFilterFilteredVerbatim? No ### Verbatim modes now StartVerbatim \n@ID @F @Verbatim { EndVerbatim } StartBlockedVerbatim \n@ID @F @Verbatim @Begin EndBlockedVerbatim \n@End @Verbatim ### Filtered verbatim is messy in Lout so StartFilteredVerbatim \n@ID @F @Verbatim @Begin EndFilteredVerbatim \n@End @Verbatim ### Remaining font faces StartTeletype @F { EndTeletype } StartSmall @S { EndSmall } StartEmphasis @I { EndEmphasis } StartStrong @B { EndStrong } ## OTHER CommentLine # %line% StrikeLine # %line% NBSPACE \" \" aft-5.098/configure0000755000175000017500000027506211442311074011152 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.65. # # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, # Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, $0: including any error possibly output before this $0: message. Then install a modern shell, or manually run $0: the script under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= ac_unique_file="aft.in" ac_subst_vars='LTLIBOBJS LIBOBJS PERL am__leading_dot SET_MAKE AWK mkdir_p INSTALL_STRIP_PROGRAM STRIP install_sh AMTAR MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking ' ac_precious_vars='build_alias host_alias target_alias' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error "unrecognized option: \`$ac_option' Try \`$0 --help' for more information." ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Report bugs to the package provider. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.65 Copyright (C) 2009 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu am__api_version="1.8" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_t in install-sh install.sh shtool; do if test -f "$ac_dir/$ac_t"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/$ac_t -c" break 2 fi done done if test -z "$ac_aux_dir"; then as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Just in case sleep 1 echo timestamp > conftest.file # Do `set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t $srcdir/configure conftest.file` fi rm -f conftest.file if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi test "$2" = conftest.file ) then # Ok. : else as_fn_error "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} fi if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then # Keeping the `.' argument allows $(mkdir_p) to be used without # argument. Indeed, we sometimes output rules like # $(mkdir_p) $(somedir) # where $(somedir) is conditionally defined. # (`test -n '$(somedir)' && $(mkdir_p) $(somedir)' is a more # expensive solution, as it forces Make to start a sub-shell.) mkdir_p='mkdir -p -- .' else # On NextStep and OpenStep, the `mkdir' command does not # recognize any option. It will interpret all options as # directories to create, and then abort because `.' already # exists. for d in ./-p ./--version; do test -d $d && rmdir $d done # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. if test -f "$ac_aux_dir/mkinstalldirs"; then mkdir_p='$(mkinstalldirs)' else mkdir_p='$(install_sh) -d' fi fi for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_AWK+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null # test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE=aft VERSION=5.098 cat >>confdefs.h <<_ACEOF #define PACKAGE "$PACKAGE" _ACEOF cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} AMTAR=${AMTAR-"${am_missing_run}tar"} install_sh=${install_sh-"$am_aux_dir/install-sh"} # Installed binaries are usually stripped using `strip' when the user # run `make install-strip'. However `strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the `STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_path_PERL+set}" = set; then : $as_echo_n "(cached) " >&6 else case $PERL in [\\/]* | ?:[\\/]*) ac_cv_path_PERL="$PERL" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS ;; esac fi PERL=$ac_cv_path_PERL if test -n "$PERL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PERL" >&5 $as_echo "$PERL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ac_config_files="$ac_config_files Makefile aft aft.cgi" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error ERROR [LINENO LOG_FD] # --------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with status $?, using 1 if that was 0. as_fn_error () { as_status=$?; test $as_status -eq 0 && as_status=1 if test "$3"; then as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3 fi $as_echo "$as_me: error: $1" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in #( -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.65. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to the package provider." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.65, with options \\"\$ac_cs_config\\" Copyright (C) 2009 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "aft") CONFIG_FILES="$CONFIG_FILES aft" ;; "aft.cgi") CONFIG_FILES="$CONFIG_FILES aft.cgi" ;; *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5 # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || as_fn_error "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || as_fn_error "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || as_fn_error "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit $? fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi aft-5.098/Makefile.am0000744000175000017500000000262707767402412011307 00000000000000# # Makefile.am for AFT # 2002/03/16 alane@geeksrus.net # SUFFIXES=.dat .pm .dat.pm: @PERL@ compile.pl $< aft2rtf-doc.rtf: aft2rtf-doc.aft @PERL@ aft.pl --type=rtf aft2rtf-doc.aft aft-refman.html: aft-refman.aft @PERL@ aft.pl --type=bn-html aft-refman.aft @PERL@ aft.pl --type=bn-html aft-refman.aft aft.pl: aft.in @PERL@ -p -e 's|use lib.*|use lib ".";|' aft.in >aft.pl chmod a+x aft.pl Makefile: $(BUILT_SOURCES) bin_SCRIPTS=aft BUILT_SOURCES=\ aft.pl \ aft-dbarticle.pm \ aft-bn-html.pm \ aft-html.pm \ aft-lout.pm \ aft-loutbook.pm \ aft-loutreport.pm \ aft-rtf.pm \ aft-tex.pm \ aft-xhtml.pm pkgdata_DATA=$(BUILT_SOURCES) AFT.pm pkgdata_SCRIPTS=compile.pl postrtf.pl launch_ie.pl DOCS=aft2rtf-doc.rtf aft-refman.html TOCS=aft2rtf-doc.aft-TOC aft-refman.aft-TOC MISCDOCS=aft.gif aft.jpg aft.eps ChangeLog.aft docdir=$(datadir)/doc/@PACKAGE@ examplesdir=$(docdir)/examples backendsdir=$(docdir)/backends doc_DATA=$(DOCS) $(MISCDOCS) examples_DATA=\ aft.aft \ aft-refman.aft \ aft2rtf-doc.aft backends_DATA=\ aft-dbarticle.dat \ aft-bn-html.dat \ aft-html.dat \ aft-lout.dat \ aft-loutbook.dat \ aft-loutreport.dat \ aft-rtf.dat \ aft-tex.dat \ aft-xhtml.dat MOSTLYCLEANFILES=$(DOCS) $(TOCS) $(BUILT_SOURCES) EXTRA_DIST=\ $(pkgdata_SCRIPTS) \ $(MISCDOCS) \ $(examples_DATA) \ $(backends_DATA) \ AFT.pm \ LICENSE.txt \ Makefile.cvs \ install.pl \ trip-1.aft \ trip.aft #EOF aft-5.098/aft.aft0000744000175000017500000000405011442552522010502 00000000000000*Title: Almost Free Text *Image-center: aft.gif ~''A documentation preparation system.''~ ~''by Todd Coram''~ ------ _Sep 10, 2010: [Version 5.098 is now available. (Downloads)] ~(Experimental Indexing support.)~_ _Sep 05, 2009: [Version 5.097 is now available. (Downloads)] ~(Section levels via indentation.)~_ ~Semi/Psuedo Literate Programming can be accomplished via {-Knit@:knit.html-}~ ~VimOutliner fans should check out {-this@:otl2aft.html-}~ ----- * What is AFT? AFT is a document preparation system. It is mostly ''free form'' meaning that there is little intrusive markup. AFT source documents look a lot like plain old ASCII text. AFT has a few rules for structuring your document and these rules have more to do with formatting your text rather than embedding commands. Right now, AFT produces pretty good HTML, LaTeX, {-lout@http://snark.ptc.spbu.ru/~~uwe/lout/lout.html-} and RTF. It can, in fact, be coerced into producing all types of output (e.g. roll-your-own XML). All that needs to be done is to edit a rule file. You can even customize your own HTML rule files for specialized output. ---- The latest documentation in HTML (for 5.09x) can be found {-here@:aft-refman.html-}. The latest documentation in PDF (for 5.09x) can be found in {-here@:aft-refman.pdf-}. The documentation, of course, is written using AFT. The source document can be found {-here@:aft-refman.aft-}. * Downloads ~_AFT needs Perl 5.6 or greater to run._~ * _LATEST_: Version 5.098 ~(indexing support -- see [Changes])~ * {+:aft-5.098.tar.gz+} * _STABLE_: Version 5.097 ~(minor fixes -- see [Changes])~ * {+:aft-5.097.tar.gz+} * {+:aft-5.097.zip+} * Quick Installation Untar the distribution and ... [Linux/FreeBSD/Cygwin/Unix] Run |./configure| and then |make install|. [Windows 98/ME/2000/XP] (Assuming ActiveState Perl is installed...) Double click on |install.pl| and answer a few questions. ---- * Changes *File: ChangeLog.aft ---- Let me know what you think! -- {-todd@mailto:todd /_insert_at_here/ maplefish.com-} ~Last update Sep 10, 2010~ aft-5.098/aft.jpg0000744000175000017500000000727607654734543010544 00000000000000JFIFHHC    $.' ",#(7),01444'9=82<.342 {C!1"AQ#2V$7BRa3HTu8br?Ju[K;ӜI'$٪ȗT6u(`l D ᰬ_|dhA<7V\[J6 dGDkҔ)JV^Z?Z_/OSײŒ[ =N; .d HA#VE)JR)\յ2IvE%U\ꈠ3 axce]mx41lZBrr@aqVY{ Xi5t$e'u=Xx=t][_ZDBHS#޲*6ƄiM=i C'_ C q#ppHqnO.& M\/mMtxFY$|Arj7H=+Vw*,%!9#`|Ѩ#. #_j\h2B TƬTIg S^@ f b9Ėx%(r*[Nx=A6/5vġG`X2l&7S϶Rqam?#_[4##8b ^6%zum7Yk/P\Ik2ʡ RFpḀ)JR|mOBkpT v { :i]u? vE9VqTjԼqOweܡgNR(_'aqb܇mGm*;Qsl2EVPxdv:=ym f/GRѢ h;BW\`4gr:bs7vt z :'ܒdAҔPyҩ?l[^=g++7InO͜)'v@U2xw~zlk-JV}kޱd-| XT¨&S? 6aq#C`P ln}/whpD2Otqa`A)JRNm߰-*kkNHy9d`9dTvnS]n$21lrj)JR@UJn巸9 I]H#W>x3͸v<6z[<<r b26zS5co6Q<3'"9#dv2 xw|c\MGG*ȫn)pC~8qX*JRxҥ}鿢RȢi`a\"c>JR+4ì-6w[oFyVw*ʸlz!TOOusedl|Nj(3 ]>|yC?UGomz-#|9p{;FxEG܂Áu(uTY x#Y 0&*B l8X}*X3HB2[= i'Ҵ,#PKςNr V8?UQҾѻf-S5+~2 4QX! g~ m5'tBvsrHOdĊ[].K}>K9BB6peP=96e)T ?)Jv֗6@8 $G˝Lj<6SC:r*<X>FHf6u}FzW%$`Ey=m)%n?P5mhCKY5y2 9rOcbWkk)jAQ ώw"Or.+`c,`?B?޲ʊ 4{,Vn\}{>r^<68,㳰<h$(d}dRΛmҡ$4Kx$\,3s q Qy]JRoɞLTc .uˇ0\\[?TC d7]F-ͺ>?[ӬĒ]I߰lapR|66Mwµ%UU(C;eI 6FF;xB E 8ʬѾlvμXյ[v+|r#`# Bc#»^kx8u(DІ  2*ĥ)JcvԚrLKmNҐH\(’I' ښ{]%Ƭ™G$`q`+_i{aiϦ\Dw'3Tgc4c֮ :ӏ=dRF{^[&/meb=W}AaUv-~yZ ̏[zy8¡ó?7I< suM>wYR5Bzr#PG)^s  !y$($w 4O,ݮӐw+>\yr=`>!($ qUE:^)JRCGv:nÈ9_I-팆 &Rּ6{o~>t^nˀv^E3G5Y woKx4{v5މ夷3z r] !.PIcagYgaiy rI8Q$ȥ)JR)JR)Xzc۬ΈHt8F2GЊv^O{eg:㩯'q2Y:)JR)JR)JR)JR)JR)JR)JR+aft-5.098/aft-loutreport.dat0000744000175000017500000001450210035035115012707 00000000000000# AFT rules for Lout reports ID LOUTREPORT ###################################################################### # COPYRIGHTS # # Almost Free Text (AFT) # Todd A. Coram (todd@maplefish.com) # http://www.maplefish.com/todd/ # # Basser Lout # Jeffrey H. Kingston (jeff@cs.usyd.edu.au) # http://snark.ptc.spbu.ru/~uwe/lout/ # # THANKS # # Todd Coram for modifying AFT to support Lout structure and for his # help and kindness! # # DISCLAIMER # # This file's a user contribution. Neither copyrights nor # warranties. Use at your own risk --it doesn't look dangerous # though--. If you like the ease of AFT and the power of Lout feel # free to hack it and please send me your work or ideas. # # Enjoy! # Abel Morabito (amorabito@funescoop.com.ar) # # April, 2001 # Preamble and postamble ###################################################################### Preamble{ # Basser Lout Version 3.24 output generated by AFT #@SysInclude {tbl} # Table formatting #@SysInclude {eq} # Equations #@SysInclude {graph} # Graphs #@SysInclude {diag} # Diagrams @SysInclude {report} # @SysInclude @Include @Report @Title {%title%} @Author {%author%} #@Institution { } #@DateLine {No} # Date, Yes (present), No #@AtEnd { } # To include a back cover #@CoverSheet {No} # Make a cover sheet #@ContentsSeparate {No} # Make a TOC on a separate page #@InitialFont {Times Base 12p} # Courier Helvetica Palatino Times ... #@InitialBreak {hyphen adjust 1.2fx} # hyphen nohyphen; adjust ragged ... @InitialSpace {tex} # lout tex troff #@InitialLanguage {English} # English French German Spanish ... #@PageOrientation {Portrait} # Portrait Landscape #@PageHeaders {Simple} # None Simple Titles NoTitles #@ColumnNumber {1} #@FirstPageNumber {1} @OptimizePages {Yes} # Use TeX optimal paragraph breaking #@AbstractDisplay {No} # Show the abstract #@AbstractTitle {Abstract} # Type whatever abstract title you want #@Abstract { } # Type your abstract between braces // }Preamble Postamble{ }Postamble # Pre and postfilters ###################################################################### # MANUAL FORM FEED prefilter \014 @NP # SPECIAL CHARACTERS # # Plain Literal Plain Literal # # " "\"" @ "@" # | "|" # "#" # \ "\\" } "}" # & "&" ^ "^" # ~ "~" / "/" # { "{" " " (blank space) # ## Protect backslashes, then escape quotation marks and backslashes. ## They mess each other if you don't do it this way. preFilter \\ -BSlAsH- preFilter \" \"\\\"\" preFilter -BSlAsH- \"\\\\" ## Protect targets, references and links. Escape braces and 'at'. preFilter \{\-([^\}]+)\@([^\}]+)\-\} %LeFtB%NeG$1-AtChAr-$2%NeG%RiGhTB preFilter \{\+([^\}]+)\+\} %LeFtB%PlUs$1%PlUs%RiGhTB preFilter \}\+([^\}]+)\+\{ %RiGhTB%PlUs$1%PlUs%LeFtB preFilter \{\-([^\}]+)\-\} %LeFtB%NeG$1%NeG%RiGhTB preFilter \}\-([^\}]+)\-\{ %RiGhTB%NeG$1%NeG%LeFtB preFilter [\{\}\@] \"$&\" preFilter %LeFtB { preFilter %RiGhTB } preFilter %PlUs + preFilter %NeG - preFilter -AtChAr- @ ### This is to type loutish typographic quotes directly ``like this'' ### instead of ``like this'''' --both work anyway. preFilter \`\`([^\']+)\'\'\'\' ``$1-4QuOtEs- preFilter \`\`([^\']+)\'\' ``$1-2QuOtEs- preFilter -4QuOtEs- '''' preFilter -2QuOtEs- '''' ## Escape some other special characters. preFilter [\#\&\^\/] \"$&\" ## Escape tildes not used to make small caps. Double tildes are replaced ## by single ones to get protected spaces. preFilter \~\~ -DTiLdE- postFilter \~ \"~\" postFilter -DTiLdE- ~ ### Escape vertical bars not used to make teletype. postFilter \| \"|\" # Elements ###################################################################### # There are lots of newlines '\n' you could delete if you dislike so # many blank spaces in your code. #REFERENCES TARGETS and URLs --no hyperlinks in lout files. URL @F {<%target%>} InternalReference %text% (p. @PageOf {%target%}) Target %text% @PageMark {%target%} # TITLE and AUTHOR: see 'Preamble' #OutputTitle #Title #Author # TABLE OF CONTENTS TOC # TOC must be made from your lout file. ## IMAGES Image \n@IncludeGraphic %image% Image-center \n@CD @IncludeGraphic %image% Image-left \n@LD @IncludeGraphic %image% Image-right \n@RightDisplay @IncludeGraphic %image% ## NUMBERED STRUCTURES * \n@Section @Title {%section%} @Tag {%section%} @Begin ** \n@SubSection @Title {%section%} @Tag {%section%} @Begin *** \n@SubSubSection @Title {%section%} @Tag {%section%} @Begin **** EndSect1 \n@End @Section EndSect2 \n@End @SubSection EndSect3 \n@End @SubSubSection EndSect4 #BeginSectLevel1 \n@BeginSections #EndSectLevel1 \n@EndSections BeginSectLevel2 \n@BeginSubSections EndSectLevel2 \n@EndSubSections BeginSectLevel3 \n@BeginSubSubSections EndSectLevel3 \n@EndSubSubSections # SECTIONS REFERENCING TOC are not needed. # #^* #^** #^*** #^**** # MISC LineBreak \n@LLP StartParagraph \n@PP\n EndParagraph ParagraphBreak NoteRef @Sup {%ref%} Superscript @Sup {%stuff%} Subscript @Sub {%stuff%} Center \n@CD {%center%} HorizontalLine \n@D @FullWidthRule ## TABLES are not supported. Just make them in your Lout file. StartTable ### WARNING: AFT doesn't support Lout tables yet! ### #TableCaption #TableHeader #TableElement #TableRowStart #TableRowEnd #EndTable ## LISTS StartBulletList \n@BL BulletListElement \n@LI {\n EndBulletListElement \n} EndBulletList \n@EndList StartNamedList \n@TL NamedListElement \n@DTI {%name%} {\n EndNamedListElement \n} EndNamedList \n@EndList StartNumberedList \n@PNL NumberedListElement \n@LI {\n EndNumberedListElement \n} EndNumberedList \n@EndList ## QUOTED TEXT StartQuote \n@QD { EndQuote } ## FONT FACES ### Lout's verbatim mode doesn't process lout markup so PreFilterVerbatim? No ### Full filtering is needed mainly by AFTWEB --not by Lout, so FullFilterFilteredVerbatim? No ### Verbatim modes now StartVerbatim \n@ID @F @Verbatim { EndVerbatim } StartBlockedVerbatim \n@ID @F @Verbatim @Begin EndBlockedVerbatim \n@End @Verbatim ### Filtered verbatim is messy in Lout so StartFilteredVerbatim \n@ID @F @Verbatim @Begin EndFilteredVerbatim \n@End @Verbatim ### Remaining font faces StartTeletype @F { EndTeletype } StartSmall @S { EndSmall } StartEmphasis @I { EndEmphasis } StartStrong @B { EndStrong } ## OTHER CommentLine # %line% StrikeLine # %line% NBSPACE \" \" aft-5.098/INSTALL0000544000175000017500000001722707610766735010314 00000000000000Basic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. aft-5.098/aft-refman.aft0000744000175000017500000010622011442550510011745 00000000000000#--- Below are some pragmas that affect how this document is processed. #--- #--- Aft's graphic logo: #---SET aftimage=aft.jpg #--- SET-HTML aftimage=aft.gif #--- SET-LaTeX aftimage=aft.jpg #--- #--- Something to distinguish tabs from the regular text (in examples): #---SET-HTML tab={tab} #---SET-LaTeX tab=[tab] #--- #--- Specifically, for the tab symbol above, we want to interpolate variables #--- in verbatim mode: #---SET-CONTROL expandinverbatim=yes #--- #--- End of Pragmas. Start of Document! *Title: Almost Free Text (AFT) Reference Manual *Author: Todd A. Coram Version 5.98 ~revised 09/09/2010~ *Image-center: %aftimage% --------------- *TOC ----------------- * Introduction This document exists as a simple reference manual for the AFT. It is not meant to be used as a tutorial. [Note: That's not quite true. \ If you read this in a linear fashion, it's a bit like a tutorial!] AFT is a ''nearly'' free format documentation system which can be typed in using any editor or wordprocessor that supports tabs or ''hard spaces'' (column-based spaces whose number doesn't shrink or grow based on formatting). By using AFT, you are no longer constrained to one wordprocessing file standard (such as Microsoft Word), nor do you have to enter a plethora of weird syntactical incantations of an ''embedded'' mark up language (such as LaTeX or HTML). =[^LaTeX]= =[^HTML]= [Note: LaTeX and HTML are the major mark up languages \ supported; there is lesser support for other formats -- mileage may vary.] Unlike other mark up languages, AFT is designed to parse and recognize ''patterns'' rather than formal commands. That is why there is no single ''escape'' or command sequence that tells AFT what to do. In this regard, AFT will process almost anything you throw at it. An AFT document is easily converted into such popular formats as HTML, RTF and LaTeX. Because there are few commands, learning to write a document in AFT requires little effort. This doesn't mean that AFT is not powerful. In fact, this very document was conceived and written using AFT. ** How to Read this Document In this document, ''user entered text'' is set in |teletype|. Everywhere you see the sequence |%tab%|, this is just a way of showing that the user is expected to press a ''tab'' key (or enter 8 consecutive spaces). See [Tab Modes] for instructions on how you can set ''tabs'' to ''any'' number of consecutive spaces. Each command introduced will begin with a description and then will be followed by one or more examples of the command as it would be entered. In most cases, the actually result of the command is shown. * Running AFT =[^aft usage]= Running AFT is as simple as typing: aft NAME_OF_YOUR_FILE.aft Replace |NAME__OF__YOUR__FILE| with the full path of your file. It should end with |.aft| although that is not a rule. You can also give multiple file names too. AFT will, by default, use the first supplied file name as a basis for the name of the output file. The name of the output file will have an extension that reflects the default designated output type. This default was chosen when you first installed AFT. There are a few more parameters that can be supplied to AFT. Here is what AFT prints out if you don't give it any arguments: aft [--verbose] [--autonumber] [--output=file | --output=-] [--type=output_type] infile .. Everything enclosed in |[]| is optional. Where you see a bar '|' indicates that you can supply one of the two parameters on either side. Here is a breakdown of each parameter: [--verbose] Generate a lot of commentary. By default, AFT will just silently process files (unless errors occur). Using this option causes AFT to keep you informed about what it is doing. [--autonumber] This switch tells AFT to automatically number your sections. [--output=file | --output=-] This tells AFT where to send its processed output. You can supply a filename (file) or |-| which tells AFT to write to your standard output (your display or |stdout|). [--type=output__type] This tells AFT what type of output to do. For example HTML output is used for |html| and DocBook output is used for |docbook|. As a side effect, this will also specify the file name extension for the output file if the |--output| option isn't specified. [infile ..] One or more AFT documents to be processed. It is very unlikely that AFT will display errors. Since this is a ''mostly free'' text parser, nothing in your source document will ever be syntactically incorrect. In most cases, AFT will produce perfectly parsable output. But, remember: ''garbage in, garbage out''. * AFT Text: An Example The following text represents typical input to the AFT parser: ^<< *Title: Musical Categorization *Author: Alfred Theodore Franti %tab%# I am an optimist. From where it is, music is mostly alright, %tab% or at least in a healthy state for the future, in spite of %tab% the fact that it may sound as though it is being held %tab% hostage. --- Duke Ellington There are many ''flavors'' of music to choose from. Indeed, music is a lot like food: different tastes for different folks. But, what are the ''flavors'' that music comes in? Here is a short, not nearly comprehensive list: %tab%* Jazz %tab%* Classical %tab%* Blues %tab%* Country %tab%* Folk %tab%* Rock %tab%* Rap %tab%* R&B %tab%* Soul There are many others categories and sub-categories that I have failed to mention. ^>> After we run this text through AFT, we get: _Musical Categorization_ _Alfred Theodore Franti_ # I am an optimist. From where it is, music is mostly alright, or at least in a healthy state for the future, in spite of the fact that it may sound as though it is being held hostage. --- Duke Ellington There are many ''flavors'' of music to choose from. Indeed, music is a lot like food: different tastes for different folks. But, what are the ''flavors' that music comes in? Here is a short, not nearly comprehensive list: * Jazz * Classical * Blues * Country * Folk * Rock * Rap * R&B * Soul There are many others categories and sub-categories that I have failed to mention. ------------------------------------------ * Syntax Overview AFT processes your input file one line at a time. A line is a chunk of text terminated by a newline, carriage return or whatever combination of the two that is native to your operating system (don't worry, your text editor handles it all behind the scenes for you). ** Line Continuations If the last character on your line is a backslash |\ |, then the next line is taken as a continuation of your current line and all of the AFTish things that are done on a line-by-line basis are now applied to to all of the lines ''continued'' with backslashes. This is terribly useful when you present AFT with text that may have been ''wrapped'' by your text editor (because the line was too long): Here is a long URL typed across 2 lines: http://www.maplefish\ .com/todd/aft.html ''produces'' Here is a long URL typed across 2 lines: http://www.maplefish\ .com/todd/aft.html After a full line (continuations included) has been parsed, AFT determines whether the line is part of a special mode. The modes of AFT are: #. Paragraph - the normal mode. #. List - a tab mode. #. Verbatim - a tab mode. #. BlockVerbatim - a special mode between |^<<| and |^>>|. #. Quote - a tab mode. #. Centered - a tab mode. #. Table - a tab mode. ** Modes Sections are treated as temporary ''one shot'' modes. After a sectional change occurs, you re-enter paragraph mode. Other modes can be thought of as ''sticky'' (you can enter a mode and stick indefinitely in that mode). An empty line terminates most modes and takes you back to paragraph mode. ** Special characters Any line beginning with a |#| probably signifies that [Comments], [SET] controls or [Pragmas] follow. A line beginning with a |*| is sectional. That is, [Sections], [TOC], or [Images] follow. ** Line Filtering AFT tries to apply ''prefilters'' from the rule file (|.dat| file), then it searches and replaces [Targets and References], and performs [Font Faces] tricks. After the line has been completely brutalized by AFT, ''postfilters'' are applied. * Sections All sections start with at least 1 (but no more than 7) stars |*| in the leftmost column of a line. Each star represents a section level. With the exception of special sections ([Special Sections]), a space can follow the final star before the section name. The section name is terminated by a line break. _Warning:_ ''Trailing spaces are considered part of the section name.'' * This is a Top Level Section **This is a Second Level Section Here we can see how the various section levels nest: ** Section 2 =[^HTML]= While HTML supports 6 section levels, we can't expect this level of support from every target. *** Section 3 Here we see Section 3. **** Section 4 And now Section 4. This is pretty deep nesting. Do you want to go lower? ***** Section 5 Starting with Section 5, the text body begins to indent. This carries until the end of the section. [Note: From Section 5 down to Section 7, won't show \ up in the table of contents... thank goodness.] #. Lists are indented too! #. Everything is indented. ****** Section 6 We are starting to get really nested here. Beware! #. You really should consider restructuring your text. #. Do you really need this many nested sections? ******* Section 7 This is as deep as we go. This shouldn't show up in the table of contents. ** Special Sections AFT has a few reserved section names. These are used to provide special services that can be logically considered ''section'' based. All special sections consist of one star |*| followed immediately by the section name. *** Titles and Authors The title of the document can be signified by using the section name |*Title:| followed (optionally) by a space and the title name. *Title: Almost Free Text (AFT) Reference Manual The author of the document follows a similar format. Instead of |*Title:|, you enter |*Author| *Author: Todd A. Coram =[^HTML]= If |*Title:| and |*Author:| are the first two (non-comment) lines in the document, they will be used in the document preamble. This is useful for formats such as HTML which would like to have the title of the document in the 'header' rather than 'body'. *** TOC |*TOC:|, or Table of Contents, is used to automatically generate a table of contents section for your document. The table of contents is populated by names from [Sections]. If need to collect your own table of contents information (for output that doesn't automatically generate it -- such as HTML), then you should run the |aft| command on your source files twice. The first pass produces a special table of contents file and the second pass inserts that special file. *TOC *** Images #---SET-CONTROL expandinverbatim=no A very simple image importing facility is available in AFT. The |*Image| command is followed by the name of an image file that is to be incorporated into the document, replacing the line where the command appears. *Image: %aftimage% The above line will insert the file |%aftimage%|: *Image: %aftimage% There are a few variations on |*Image:|. You can suggest how the image should be placed in the document with the following commands: * |*Image-left:| * |*Image-center:| * |*Image-right:| The results are as follows: *Image-left: %aftimage% *Image-left: %aftimage% *Image-center: %aftimage% *Image-center: %aftimage% *Image-right: %aftimage% *Image-right: %aftimage% You can also use |*Image:| to cascade images: *Image: %aftimage% *Image: %aftimage% *Image: %aftimage% *Image: %aftimage% *Image: %aftimage% *Image: %aftimage% #---SET-CONTROL expandinverbatim=yes * Tab Modes While processing your document, AFT may enter certain ''modes''. The most common mode is ''Tab Mode''. Requesting tab mode is requested by entering a ''tab'' (%tab%) character as the first character in a line. A tab mode ends at the first line encountered that ''does not'' begin with a tab character. This includes blank (empty) lines. If you cannot type ''tabs'', you can use spaces instead. By default, AFT will interpret every 8 consecutive spaces as tabs. You can change this default by using the command: #---TABSTOP=N where |N| is the number of spaces you wish to represent tabs. Examples: #---TABSTOP=4 #---TABSTOP=8 ** Lists Lists are the most popular tab modes. A list element is identified as any line containing a initial tab and followed immediately by one of the following character sequences =[(list sequences)]=: [{+Enumerated+} Element] Any number of digits followed by a |.| or |)|. [{+Bullet+} Element] A single star |*|. [[Named] Element] A left bracket |[| followed by text and ending with a right bracket |]|. [{+Nested+}] One or more tab characters. You may mix and match list element types. However, each time you change type, you are effectively starting a new ''list group''. In addition, each list element in a list group must immediately follow the last element. There cannot be any blank lines between elements. %tab%1. This is the first element. %tab%2. This is NOT the second element. ''produces'' 1. This is the first element. 2. This is NOT the second element. *** Tab Continuations If a tab element doesn't fit physically on the same line you are entering, it may be continued by entering a new line, a tab and any character not present in the [list sequences] described above. However, it is recommended that you simple use a single space in order to keep your lists consistent. %tab%* This is the first physical line in the element. %tab% This is the second physical line in the element. %tab%* This is a new element. ''produces'' * This is the first physical line in the element. This is the second physical line in the element. * This is a new element. You can also take advantage of AFTs parsing syntax described in [Syntax Overview] and do the following: %tab%* This is the first physical line in the element.\ This is the second physical line in the element. %tab%* This is a new element. ''produces'' * This is the first physical line in the element.\ This is the second physical line in the element. * This is a new element. but looks rather awkward... *** Enumerated An enumerated list element is indicated by any number of digits followed by a |.| or |)|. The actual number is ignored. The list is always enumerated starting at |1|. If you find that choosing numbers is too much trouble (especially since AFT ignores them), you can replace the number with |#| (i.e. |#)| or |#.|). 1. First thing is first. 3. Third thing is always second. #) Oh, I give up. You chose the numbering. ''produces'' 1. First thing is first. 3. Third thing is always second. #) Oh, I give up. You chose the numbering. If you want to control the numbering, then use a [Named] list with your numbers as the names. *** Bullet A bullet list element is indicated by the presence of a single star |*|. %tab%* My gawd. It's full of stars. %tab%* Actually, sir, it is just a single star. ''produces'' * My gawd. It's full of stars. * Actually, sir, it is just a single star. *** Named A named list element is indicated by a left brack |[| followed by text (the ''name'') and ending with a right bracket |]|. The text following this indicator is supplemental. %tab%[Aardvark] A small mammal that munches ants. %tab%[Ant] A small creature munched upon by aardvarks. ''produces'' [Aardvark] A small mammal that munches ants. [Ant] A small creature munched upon by aardvarks. *** Nested Lists can nest. Nesting modes are managed automatically by AFT. You can freely enter and exit nesting levels at will. A Nested list is indicated by an additional tab followed by any of the [list sequences]. The same rule for [Tab Continuations] apply. %tab% * List, at level 1. %tab% * Another item at level 1 %tab%%tab% with a continuation. %tab%%tab% 1. a level 2 item. %tab%%tab% 2. another level 2 item. %tab%%tab%%tab% * A level 3 item. %tab%%tab% 3. the third level 2 item. %tab%%tab%%tab% * A special level 3 item. %tab%%tab%%tab% * More special level 3 items. %tab% * Back to level 1. %tab%%tab% * A new level 2 list. %tab%%tab%%tab% 1. A new level 3. %tab% 1. A new level 1. %tab% 2. Got another level 1. ''produces'' * List, at level 1. * Another item at level 1 with a continuation. 1. a level 2 item. 2. another level 2 item. * A level 3 item. 3. the third level 2 item. * A special level 3 item. * More special level 3 items. * Back to level 1. * A new level 2 list. 1. A new level 3. 1. A new level 1. 2. Got another level 1. ** Other Tab Modes Aside from [Lists], there are a couple of other tab modes. *** Quoted Text Want to enter simple verse or a quote? This is a very simple mode. It is indicated by a tab immediately followed by |#|. Any following lines (preceded by one or more tabs) are considered part of the quote. %tab%# You're _damned_ if you do; %tab%You're _damned_ if you don't. - Bart Simpson ''produces'' # You're _damned_ if you do; You're _damned_ if you don't. - Bart Simpson *** Verbatim Modes Verbatim mode is the ''catch all'' tab mode. Any entry into a tab mode that doesn't look like [Lists], [Centered Lines], [Tables] or [Quoted Text] is considered ''verbatim'' text and will appear in the output in a |teletype| font with limited processing of text. Line breaks are always honored in this mode. There are two flavors of verbatim text: [Tabbed] and [Literal]. Each of these flavors will, in general, cause text to appear as it was written. **** Tabbed A tabbed verbatim mode is entered under the rules of [Tab Modes] and are limited to any sequence that doesn't fall under [Lists]. %tab% 1. This line enters tabbed verbatim mode and not list %tab% mode because it starts with a space. %tab% %tab%Tabbed verbatim mode retains %tab%%tab%hard carriage returns, spaces, %tab%%tab%tabs and other drudge. ''produces'' 1. This line enters tabbed verbatim mode and not list mode because it starts with a space. Tabbed verbatim mode retains hard carriage returns, spaces, tabs and other drudge. **** Literal This is a very special kind of verbatim mode. It isn't legally a tab mode, but allows you to forgo all of the initial tabs that you must type in order to stay in tab mode. Literal mode begins with the character sequence |^<<| as the first characters in a line and ends with the character sequence |^>>| as the first characters in a line. ^<< while () { chop; $lcnt++; # increment the line count /^(\s*\#|\Z)/ && next; # Skip comment lines doStuff(); } ^>> ''produces'' ^<< while () { chop; $lcnt++; # increment the line count /^(\s*\#|\Z)/ && next; # Skip comment lines doStuff(); } ^>> A special modifier on the literal sequence allows us to apply ''filtering'' to the literal text. That means that the actual layout of the entered text is retained, but we can apply commands such as font changes to the text. This is indicated by typing the word |Filter| or |filter| immediately after |^<<|. ^<) { _chop_; $lcnt++; ''# increment the line count'' /^(\s*\#|\Z)/ && _next_; ''# Skip comment lines'' doStuff(); } ^>> ''produces'' ^<) { _chop_; $lcnt++; ''# increment the line count'' /^(\s*\#|\Z)/ && _next_; ''# Skip comment lines'' doStuff(); } ^>> * Presentation AFT offers the user very little control over the explicit layout of the produced document. This limitation is a trade-off for ease of use. AFT is not meant to produce ''flyers'' or ''slick sheets'' or documents with strong page layout requirements. With this in mind, there are a few niceties provided to help you with some level of control over your document layout. ** Paragraphs All paragraphs are ended by a single ''blank'' (empty) line. ** Page breaks The traditional form-feed character ^L (Control L) can be used to explicitly break pages. ** Centered Lines A line of text can be centered by modifying the [Tab Modes] rule a bit. If you are not in the middle of a [Lists], [Tables], [Verbatim(Verbatim Modes)], or [Quoted Text], then you could enter a ''centered'' line. A centered line is a line of text preceded by 2 or more tabs. %tab%%tab%%tab%Hey, I am the Center of the Universe. %tab%%tab%I am pretty self-centered too. %tab% Keep in mind. %tab%%tab%You can't center while in a tab mode. ''produces'' Hey, I am the Center of the Universe. I am pretty self-centered too. Keep in mind. You can't center while in a tab mode. ** Separator Lines A single horizontal line can be produced by typing at least 4 dashes on a line by itself. You should add a blank line before and after the dashes in order to insert line breaks. What is above. -------------------------- Must never go below. ''produces'' What is above. -------------------------- Must never go below. ** Font Faces =[^fonts]= AFT doesn't allow you to change your fonts, that is left up to configuration of your Web browser (for HTML) or TeX installation (for LaTeX). However, AFT will allow you to change your font's ''face''. AFT's typeface scanner works on a line by line basis. In order to change the face of a piece of text, you must surround it with AFT font command sequences. The beginning and ending sequences must appear on the same physical line. He was quite _bold and daring_ in his criticism. He was quite _bold and daring_ in his criticism. ''produces'' He was quite _bold and daring_ in his criticism. He was quite _bold and daring_ in his criticism. An exception to this rule is when you want to change a paragraph (or multiple lines) of text. In this case, you place the beginning font command sequence as the first characters in the first line and place the ending command sequences as the last characters in the last line. _Warning. Do not touch here. Touching here could cause severe pain and possibly death. You have been warned. So don't touch here._ ''produces'' _Warning. Do not touch here. Touching here could cause severe pain and possibly death. You have been warned. So don't touch here._ *** Bold Bolded text is surrounded by the character |_|. If you wish to include this character literally in your text, then you must break your physical line so that it only appears once, or you can double up the |_| character. _This is your brain on bold._ This__is__not__your__brain__on__bold. ''produces'' _This is your brain on bold._ This__is__not__your__brain__on__bold. *** Italics Italicized text is surrounded by the character sequence |''|. If you wish to include this sequence literally in your text, then you must break your physical line so that it only appears once, or you can double up the |''| sequence. ''It was quite droll''. ``This isn't droll at all''''. ''produces'' ''It was quite droll''. ``This isn't droll at all''''. *** Teletype and Small Text Teletyped text is surrounded by the character |\||. If you wish to include this character literally in your text, then you must break your physical line so that it only appears once, or you can double up the |\|| character or precede the pipe with a backslash |\ |. Small text works the same way, except it uses |~|. |int small__number = 1 \| 2;| ~# this holds a small number \~ (1 or 2).~ ''produces'' |int small__number = 1 \| 2;| ~# this holds a small number \~ (1 or 2).~ * Targets and References =[^LaTeX]= =[^HTML]= HyperText is supported for HTML and References are supported for printed output such as LaTeX. Both use the same command sequences. ** Targets Targets are anchor points in a document, often referenced by [References]. Targets take the form: =[text]= or =[(text)]= The difference being that the former ''inserts'' the text at the point of the target while the latter (with parenthesis), provides just a reference point without inserting the text. The |text| is used by [References]. Here are a couple of examples: =[Does your dog bite?]= No, my dog doesn't bite. =[(Ow, he bit me!)]= That... is not my dog. ''produces'' =[Does your dog bite?]= No, my dog doesn't bite. =[(Ow, he bit me!)]= That... is not my dog. ** References A reference takes one of three forms: Form #1 [text] Form #2 [text (reference_text)] Form #3 [text (url:reference_text)] or [text (:reference_text)] where |text| references [target (Targets)], unless specific |reference_text| is is supplied (and in that case, |reference_text| refers to [target (Targets)]. The first form (#1) is the simplest. It refers to a target in the same document file. The second form (#2) allows arbitrary text to be used. The third form (#3) allows arbitrary text to refer to outside URLs. |url| may be |ftp|, |http|, |https|, |mailto| just omit it (leaving the ':') for relative http references. If you want to embed URLs directly into your document, you can dispose of the brackets altogether. (See [URL Targets]). Here we refer to targets set up in [Targets]: [Ask about the dog (Does your dog bite?)]! [Ow, he bit me!] See [how to avoid dog bites (http://www.hsus.org/ace/11858)]. ''produces'' [Ask about the dog (Does your dog bite?)]! [Ow, he bit me!] See [how to avoid dog bites (http://www.hsus.org/ace/11858)]. But, what if you want to include plain old bracketed text like \[Coram97] that isn't a link? You can break the bracketed text into two lines: [Coram97 ] but that many introduce unwanted space after 97 (i.e. [Coram97 ]). So, you probably want to ''escape'' the bracket with a backslash |\ |: \[not a link nor does it have any unwanted spaces] Because, this is \[not a link nor does it have any unwanted spaces]. ** URL Targets If you want to just want to supply plain old |URL| targets, you don't need to use any special markup. You just type in the address. AFT doesn't recognize sophisticated URL naming when using this feature. You need to keep it simple (e.g. URLs containing parens or complex http parameters should be avoided). For example: * http://www.maplefish.com/todd is my home page. * (http://www.maplefish.com/todd) ''produces'' * http://www.maplefish.com/todd is my home page. * (http://www.maplefish.com/todd) ** Targets (Deprecated) A target begins with a _right_ curly brace |}| followed by a visibility indicator, the target text and ends with a _left_ curly brace |{|. There are two visibility indicators: 1. Visible target indicator |+|. 2. Invisible target indicator |-|. Visible target indicators cause the target text to appear in your text output, while invisible target indicators hide your target text. }-Important Information-{ My dog may bite. }+Very Important Information+{: My dog bites. }-Important Information-{ My dog may bite. }+Very Important Information+{: My dog bites. You should choose target text that have no AFT mark up or special characters in them. Keep them short and safe. ** References (Deprecated) A reference begins with a _left_ curly brace |{| followed by a visibility indicator, text, an optional target text and ends with a _right_ curly brace |}|. There are two visibility indicators: 1. Full Visible target indicator |+|. 2. Half visible target indicator |-|. The first is used when the reference text _is_ the target text. The second indicator is used along with a |@| character to indicate that target text will be supplied but shouldn't be visible. The form for this is |visible text@invisible target text| {+Important Information+} is worth reading. {-Information@Very Important Information-} is available. {+Important Information+} is worth reading. {-Information@Very Important Information-} is available. ** URL Targets (Deprecated) URL target references can be provided by using one of these several forms. 1. URL addresses. Use |http:|, |file:|, |ftp:| or |mailto:| in the target name. 2. Local files. Use |text@:filename| or |text@:filename#target|. Here are few examples. * {+http://www.maplefish.com/todd+} * {-AFT Home Page@http://www.maplefish.com/todd-} * {-AFT Reference Manual Source@:aft-refman.aft-} * {-AFT HyperText Info@:aft-refman.html#URL Targets-} ''produces'' * {+http://www.maplefish.com/todd+} * {-AFT Home Page@http://www.maplefish.com/todd-} * {-AFT Reference Manual Source@:aft-refman.aft-} * {-AFT HyperText Info@:aft-refman.html#URL Targets-} * Miscellaneous ** Indexing This is an experimental new feature. It has not been determined if supporting indexing for AFT-sized documents is a useful thing. However, if you are looking for the ability to provide more precise referencing than [Sections], then indexing may be it. Indexing capability is provided by simply providing target style mark up near the word you wish to index. For example: =[^contrived example]= ^<< For example: (look in the index for this...) =[^contrived example]= ^>> The above example is indexed under the term ''example''. An index is just a target with a caret (|^|) preceding the term. However, unlike true targets, the term does not appear in the text. =[^LaTeX]= =[^HTML]= If you have marked an index, then at the end of your document an Index section will be automatically generated. [Note: This is currently only \ supported for HTML and LaTeX. For LaTeX, you must run |makeindex| to \ create the index.] ** Footnotes (Endnotes) =[^HTML]= AFT has a very simple ''footnote'' facility (for systems like HTML, where true page-footer notes are not available, they are treated as ''end notes''). Footnote syntax is a variation upon [References]. You indicate a footnote by starting a reference with '|\[Note:|'. All text following |Note:| up to a terminating brace |]| is taken as the footnote. For example: Footnote syntax is a variation upon references.[Note: This \ is just a note about footnotes. You can go back \ to reading the manual now.] Okay? ''produces'' Footnote syntax is a variation upon references.[Note: This \ is just a note about footnotes. You can go back \ to reading the manual now.] Okay? In the above example we also showed how long footnotes (most will probably exceed a lines length) can be broken up using [Line Continuations]. ** Tables A very simple table facility is provided with AFT. A table mode is introduced with a tab followed by a |!|. Any line not starting with this sequence terminates the table. A table consists of the following parts, in the following order: 1. Caption. 2. Headers. 3. Data elements. Header items and Data elements are separated by a single |!|. Any table Header or Data elements entry that consists of fewer than 2 items generate a warning and are ignored. You can use !-------! to separate table rows (this improves the AFT source document readability). For example: %tab%! _Very_ Important Dates! %tab%!-----------------------! %tab%! Year ! Month ! Day ! %tab%!-----------------------! %tab%! 1966 ! Oct ! 9 ! %tab%! 1999 ! Dec ! 31 ! %tab%! 2000 ! Jan ! 1 ! produces ! _Very_ Important Dates! !-----------------------! ! Year ! Month ! Day ! !-----------------------! ! 1966 ! Oct ! 9 ! ! 1999 ! Dec ! 31 ! ! 2000 ! Jan ! 1 ! *** Row Spanning Trying to fit long text onto a single line looks pretty ugly using the default Table mode. A small improvement in layout can be had by introducing the pragma |#---SET-CONTROL tableparser=new|. When this pragma is in effect, you _must_ use line separators |-----| between rows. This is what will tell AFT that you are done with a row. So, now you can do something like: ^<< #---SET-CONTROL tableparser=new ! _Very_ Important Dates ! !----------------------------! ! Year ! Month ! Day ! !----------------------------! ! 1966 ! Oct ! 9 (Todd's ! ! ! ! Birthday. ! ! ! ! Bring gifts)! !----------------------------! ! 1999 ! Dec ! 31 ! !----------------------------! ! 2000 ! Jan ! 1 ! !----------------------------! ^>> to produce: #---SET-CONTROL tableparser=new ! _Very_ Important Dates ! !----------------------------! ! Year ! Month ! Day ! !----------------------------! ! 1966 ! Oct ! 9 (Todd's ! ! ! ! Birthday. ! ! ! ! Bring gifts)! !----------------------------! ! 1999 ! Dec ! 31 ! !----------------------------! ! 2000 ! Jan ! 1 ! !----------------------------! ** Comments If you want to type in text that will NOT be processed by AFT, then you simply preface each line, that you want to be ignored, with a |C| or |#| followed by 3 or more dashes |-|. #------ This line is an AFT comment. Maroc Ddot is C------ Todd Coram! The secret is out! unknown. ''produces'' #------ This line is an AFT comment. Maroc Ddot is C------ Todd Coram! The secret is out! unknown. ** Pragmas Ah, pragmas. For those of you unsatisfied with the text manipulation of plain old AFT, you can dive into its dark corners with the following pragma features. *** PASS If AFT doesn't support a feature of the targeted output format, you can cheat and embed markup that is passed through directly. This is done by using the |#--PASS-xxx| command, where |xxx| is the |ID| of the output format. The |ID| can be found in the AFT ''dat'' file used to describe the output format. =[^HTML]= For example, the following pass through will output raw HTML ''only'' when the targetted output format is HTML: Is this #---PASS-TROFF // Troff silliness not supported yet! #---PASS-HTML red #---PASS-HTML ? Is this #---PASS-TROFF // Troff silliness not supported yet! #---PASS-HTML red #---PASS-HTML ? *** SET #---SET-CONTROL expandinverbatim=no |#---SET| is used to assign a chunk of text (including AFT markup) to a variable that can be freely referred to and expanded throughout your document. (If you are an AFT hacker and have peered into the *.dat files, you may see |#---SET| is use there too.) The format of |SET| is: #---SET variable=text Throughout your document, |variable| can be referenced as ''%''|variable|''%'' and will be replaced by |text|. Before you get too excited, note that |SET| only works for one line of text. Here is an example: #---SET aftimage=aft.gif *Image-center: %aftimage% The advantage here is that you only have to modify |aftimage| if you wish to refer to a different image file and all expansions of ''%''|aftimage|''%'' will result int he different image file. =[^LaTeX]= =[^HTML]= If you find that you are using |#---PASS| a lot, you may want to consider a variant on |SET| that (like |PASS|) uses the module name for conditional expansion. So, extending our previous example, if the image file is different depending on what output type you choose, you can do the following: #---SET-HTML aftimage=aft.gif #---SET-LaTeX aftimage=aft.eps *Image-center: %aftimage% There is a subtle but very important difference between |SET| and |SET-xxx|: the former is done during preprocessing and the latter is done post-processing. The effect is, you can include AFT markup in |SET| and output specific markup in |SET-xxx|. #---SET-CONTROL expandinverbatim=yes * End Credits Thanks go out to Ward Cunningham, whose Wiki-Wiki Site editor inspired the initial work on AFT. Also, thanks to everyone who has used AFT over the years and have offered invaluable feedback. aft-5.098/aft2rtf-doc.aft0000744000175000017500000000531307654734543012065 00000000000000*Title: Converting aft-files to rtf-files *Author: Eva Maria Krause Version 1.0 ~revised 12/10/2001~ *TOC *Preliminaries It would be very nice to have a dat-file for direct RTF-output from aft-files. In fact, there are convertors from HTML to RTF or from LaTeX to RTF, but a direct way seems to be much more natural. When trying to write such a file there arise a lot of problems. The solutions proposed here are realized by some post-processing of the generated rtf-file, which is done by a little perl-script named "postrtf.pl". For this purpose the dat-file contains some commands, which can't be directly interpreted by an rtf-reader. They only serve as markup-commands needed in the perl-script afterwards. *Problems and their solution **Missing spaces First of all, lines in rtf-files are concatenated without intermediate spaces. Therefore the generated output must be modified by concatenating lines with additional spaces. **Numbering of ordered lists The second problem concerns ordered lists: RTF isn't a markup-language at all. Therefore no logical structure of documents exists. It must be substituted by paragraphs, indention and so on. Unlike HTML, Tex and Lout numbering of items isn't done automatically. It must be done by hand. **Indention of nested lists When nesting lists the indention of each item depends on the current indention level. Ordered and unordered lists can be mixed up arbitrarily. That's the reason, that unordered lists must also be handled by the postprocessing process. **Verbatim paragraphs Verbatim paragraphs should be displayed in the same manner as typed in. Especially line breaks should be kept. In RTF this means, that each line must be preceeded by something like |\par| or |\line\li...| But in AFT-Dat-files there is no way of specifying some output code preceeding each line of a verbatim-block. **Tables In the definition of tables the width of each column has to be specified. But the number of columns varies from case to case, so one has to insert a different number of commands like |\cellx...|. This can only be done in the postprocessing process by evaluating the number of columns. *Remarks **Images Images won't be translated due to their very complicated presentation in RTF. **Nesting of named lists Nesting of named lists is not implemented yet. **Tables The presentation of tables only works, if the calculated number of columns by aft is correct. If the number of columns in a table varies from row to row aft calculates the number of columns only considering the first row. The generated table in rtf will then have not enough columns. *Warning Due to the described problem of missing spaces postprocessing is necessary in every case. aft-5.098/README0000744000175000017500000000122707610766735010136 00000000000000* Installation To install this package, you need to have perl version 5 or greater running on your system. ** Unix Install To install under unix, type: $ ./configure $ make ** Platform Independent install Use perl to execute |install.pl| and follow instructions. ** Windows Install This distribution is known to work under Active State Perl. Just double click on "install.pl" and follow instructions. Have fun, and let me know what you think by sending me comments via e-mail. A Tutorial/Reference manual exists in aft-refman.aft. ** Customization See aft-html.dat for an example on how to write your own element file. - todd tcoram@pobox.com aft-5.098/install-sh0000744000175000017500000001273607654734543011266 00000000000000#!/bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). # # Copyright 1991 by the Massachusetts Institute of Technology # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that # copyright notice and this permission notice appear in supporting # documentation, and that the name of M.I.T. not be used in advertising or # publicity pertaining to distribution of the software without specific, # written prior permission. M.I.T. makes no representations about the # suitability of this software for any purpose. It is provided "as is" # without express or implied warranty. # # Calling this script install-sh is preferred over install.sh, to prevent # `make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. It can only install one file at a time, a restriction # shared with many OS's install programs. # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit="${DOITPROG-}" # put in absolute paths if you don't have them in your path; or use env. vars. mvprog="${MVPROG-mv}" cpprog="${CPPROG-cp}" chmodprog="${CHMODPROG-chmod}" chownprog="${CHOWNPROG-chown}" chgrpprog="${CHGRPPROG-chgrp}" stripprog="${STRIPPROG-strip}" rmprog="${RMPROG-rm}" mkdirprog="${MKDIRPROG-mkdir}" transformbasename="" transform_arg="" instcmd="$mvprog" chmodcmd="$chmodprog 0755" chowncmd="" chgrpcmd="" stripcmd="" rmcmd="$rmprog -f" mvcmd="$mvprog" src="" dst="" dir_arg="" while [ x"$1" != x ]; do case $1 in -c) instcmd="$cpprog" shift continue;; -d) dir_arg=true shift continue;; -m) chmodcmd="$chmodprog $2" shift shift continue;; -o) chowncmd="$chownprog $2" shift shift continue;; -g) chgrpcmd="$chgrpprog $2" shift shift continue;; -s) stripcmd="$stripprog" shift continue;; -t=*) transformarg=`echo $1 | sed 's/-t=//'` shift continue;; -b=*) transformbasename=`echo $1 | sed 's/-b=//'` shift continue;; *) if [ x"$src" = x ] then src=$1 else # this colon is to work around a 386BSD /bin/sh bug : dst=$1 fi shift continue;; esac done if [ x"$src" = x ] then echo "install: no input file specified" exit 1 else true fi if [ x"$dir_arg" != x ]; then dst=$src src="" if [ -d $dst ]; then instcmd=: chmodcmd="" else instcmd=mkdir fi else # Waiting for this to be detected by the "$instcmd $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if [ -f $src -o -d $src ] then true else echo "install: $src does not exist" exit 1 fi if [ x"$dst" = x ] then echo "install: no destination specified" exit 1 else true fi # If destination is a directory, append the input filename; if your system # does not like double slashes in filenames, you may need to add some logic if [ -d $dst ] then dst="$dst"/`basename $src` else true fi fi ## this sed command emulates the dirname command dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'` # Make sure that the destination directory exists. # this part is taken from Noah Friedman's mkinstalldirs script # Skip lots of stat calls in the usual case. if [ ! -d "$dstdir" ]; then defaultIFS=' ' IFS="${IFS-${defaultIFS}}" oIFS="${IFS}" # Some sh's can't handle IFS=/ for some reason. IFS='%' set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'` IFS="${oIFS}" pathcomp='' while [ $# -ne 0 ] ; do pathcomp="${pathcomp}${1}" shift if [ ! -d "${pathcomp}" ] ; then $mkdirprog "${pathcomp}" else true fi pathcomp="${pathcomp}/" done fi if [ x"$dir_arg" != x ] then $doit $instcmd $dst && if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi else # If we're going to rename the final executable, determine the name now. if [ x"$transformarg" = x ] then dstfile=`basename $dst` else dstfile=`basename $dst $transformbasename | sed $transformarg`$transformbasename fi # don't allow the sed command to completely eliminate the filename if [ x"$dstfile" = x ] then dstfile=`basename $dst` else true fi # Make a temp file name in the proper directory. dsttmp=$dstdir/#inst.$$# # Move or copy the file name to the temp name $doit $instcmd $src $dsttmp && trap "rm -f ${dsttmp}" 0 && # and set any options; do chmod last to preserve setuid bits # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $instcmd $src $dsttmp" command. if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi && if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi && if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi && if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi && # Now rename the file to the real destination. $doit $rmcmd -f $dstdir/$dstfile && $doit $mvcmd $dsttmp $dstdir/$dstfile fi && exit 0 aft-5.098/aft-html.dat0000744000175000017500000002662411442314235011452 00000000000000# HTML AFT 5.0 Elements # # An element file can use definitions from another element file. It is best # to load those elements first, so you will have a chance to override their # definitions. # use somebasefile.dat # Should perl interpolate the text in this file? The default is "yes". This # means that backslashes and other substitutions are performed. This may not # be the behavior you want if you want to write out backslashes and other # sepecial characters (for example: aft-tex.dat does not interpolate...TeX # needs to see backslashes!). # interpolate yes # Identification of element file. This is used to keep track of what produced # the output. # ID HTML # Set variables (symbols ala %name%) that will be substituted after # postFiltering. These may be overridden in the documents. # SET stylesheet=none # Everything between Preamble{ and }Preamble is printed before any other # element markup. You have, at your disposal, a few 'symbols' # (pseudo-variables) that are substituted during AFT processing. # These symbols are: # %title% - The *Title of the document (if any). # %author% - The *Author of the document (if any). # %version% - The current version (and copyright info) of AFT. # Preamble{ %title% }Preamble # Everything between Postamble{ and }Postamble is printed last after all other # element markup. If present, the following symbol is expanded: # %aft% - An 'advertisement' banner for AFT (This document was generated...). # This will include a reference to the AFT home page. # Postamble{

%aft%

}Postamble # preFilters are regular expression pairs (pattern replacement) for raw # substitutions. They are processed (in order of appearance) before any # formal AFT element processing. You can use preFilters to escape characters # you want AFT to ignore. If a preFilter has no replacement text, the pattern # is deleted from the document. # # Escape characters that HTML doesn't like to see. # preFilter \& \& preFilter \" \" preFilter \> \> preFilter \< \< # the most common European accented characters preFilter \ \Ð preFilter \ \ð preFilter \ \Ä preFilter \ \Ë preFilter \ \Ï preFilter \ \Ö preFilter \ \Ü preFilter \ \ä preFilter \ \ë preFilter \ \ï preFilter \ \ö preFilter \ \ü preFilter \ \ÿ preFilter \ \Æ preFilter \ \Â preFilter \ \Å preFilter \ \Ê preFilter \ \Î preFilter \ \Ô preFilter \ \Þ preFilter \ \â preFilter \ \Â preFilter \ \æ preFilter \ \å preFilter \ \ê preFilter \ \î preFilter \ \ô preFilter \ \ß preFilter \ \þ preFilter \ \û preFilter \ \Á preFilter \ \À preFilter \ \Ã preFilter \ \Ç preFilter \ \É preFilter \ \È preFilter \ \Í preFilter \ \Ì preFilter \ \Ñ preFilter \ \Ó preFilter \ \Ò preFilter \ \Ø preFilter \ \Õ preFilter \ \Ú preFilter \ \Ù preFilter \ \Ý preFilter \ \á preFilter \ \à preFilter \ \ã preFilter \ \ç # preFilter \$ \$ preFilter \ \é preFilter \ \è preFilter \ \í preFilter \ \ì preFilter \ \ñ preFilter \ \ó preFilter \ \ò preFilter \ \ø preFilter \ \õ preFilter \ \ú preFilter \ \ù preFilter \ \ý # A hack to force a line break (\\). This should probably be put in the core # code or just removed. # #preFilter \\\\
# Just like preFilters, we have postFilters too. PostFilters are often used # to undo temporary substitutions performed by preFilters (a trick used to # protect characters you want to hide from AFT). # #postFilter pattern subtext # Filtered Verbatim mode kicks out 8 consecutive spaces. # Block Verbatim retains tabs. # We want to truncate them down to two non breaking spaces.. # postFilter \s{8} \ \  postFilter \t \ \  # A PostProcessor is a line of perl code that is run on the file produced by # AFT. The name of that output file is stored in $outputfile. Most likely, # you will call another script on the output file. For example: # #PostProcessor exec "$^X postprocess.pl $outputfile" # AFT has its own notion about what constitutes mark up for intra-document # references and URLs. Here we just need to provide some mechanism for # rendering that notion. # # To help you out, you are given two symbols: # %target% - The name of the reference (destination). # %text% - Text representing the 'source' of the link. # # Standard Web URLs: # URL %text% # Indexing support # Index # SmartIndexing no # Custom command to generate index... nope, not under HTML. # PrintIndex ? # Intra-document references. # Target %text% InternalReference %text% # The Title element: You are supplied with one symbol for substitution: # %title% - The parsed title of the document. # Title

%title%

# The Author element: You are supplied with one symbol for substitution: # %author% - The parsed author of the document. # Author

%author%

# If you have the capability for automatically generating a table of contents, # then supply the markup command here. Otherwise, leave it blank and AFT will # generate a table of contents for you. TOC # Sections are supplied two symbols: # %number% - The level numbering of the section. # %section% - The section name (sans number) of the section. # %text% - The text title of the section (number + section) # *

%text%

**

%text%

***

%text%

****
%text%
*****
%text%
******
%text%
*******
%text%
EndSect1 EndSect2 EndSect3 EndSect4 EndSect5
EndSect6
EndSect7
# Some markup engines can't just be presented with arbitrary sections. If # you need to indicate when a section 'level' is being entered and left, # do so here. # BeginSectLevel1 EndSectLevel1 BeginSectLevel2 EndSectLevel2 BeginSectLevel3 EndSectLevel3 BeginSectLevel4 EndSectLevel4 # This is a historical hack. But, is it still useful? # If you want to create sections that automatically link to the top of the # document, define them here. # ^*
[Top]

%text%

^**
[Top]

%text%

^***
[Top]

%text%

^****
[Top]
%text%
# AFT has very simple image markup capabilities. You are given just one # symbol: # %image% - the full pathname to an image file (with extension provided). # # Place an image within the text flow. # Image # Center an image. # Image-center

# Place an image justified left. # Image-left
# Place an image justified right. # Image-right
# Center takes one symbol: # %center% - text to be centered. # Center
%center%
# Footnotes/Endnotes takes: # %note% - text of the note # %notereftxt% - reference text for endnote # %notetarget% - endnote target Note [%notereftxt%(%notetarget%)] NotesAtEnd? yes # Line Break # LineBreak
# Start a paragraph. # StartParagraph

# End a paragraph. # EndParagraph

# Draw a simple separator line. # HorizontalLine
# Bullet lists and items. # StartBulletList
    BulletListElement
  • EndBulletListElement
  • EndBulletList
# Named lists and items. A Named list is preceded by a %name% instead of a # bullet.. # StartNamedList
# The NamedListElement uses the %name% symbol. # NamedListElement
%name%
EndNamedListElement
EndNamedList
# Numbered lists. The markup engine is expected to automatically increment # the numbers (not AFT). # StartNumberedList
    NumberedListElement
  1. EndNumberedListElement
  2. EndNumberedList
# Quotes. # StartQuote
EndQuote
# Plain Verbatim. This is the 'line by line' verbatim mode that is preceded # by tabs/spaces. # StartVerbatim
EndVerbatim	
# Block Verbatim. This is the verbatim "mode" that is usually multi-lined. # Most likely this is the same as plain verbatim. # StartBlockedVerbatim
EndBlockedVerbatim	
# Do we run the preFilter patterns on verbatim (Verbatim and FilteredVerbatim) # text? # PreFilterVerbatim? Yes # Filtered Verbatim. Allows font/link-reference tricks. # StartFilteredVerbatim
EndFilteredVerbatim	
# Do we do font style (Strong, Small, Teletype, Emphasis) and link references # on FilteredVerbatim text? # FullFilterFilteredVerbatim? Yes # Font style tricks. # StartTeletype EndTeletype StartSmall EndSmall StartEmphasis EndEmphasis StartStrong EndStrong # Comments and strikes can be kept in the output (if you wish). # They are available through the %line% symbol. # CommentLine StrikeLine # A non breakable space. # NBSPACE   # Tables support is not very pretty, nor sophisticated.... # # Here is your chance to tell your markup engine that we are starting a table. # You get one symbol: # %columns% - The number of columns in the table. # StartTable
# Table captions are rendered here. You get one symbol: # %caption% - The caption text. # TableCaption # The header text for the table is supplied in the symbol %stuff%. # TableHeader # Each table element is supplied in the symbol %stuff%. # TableElement # If any special separators are needed... # TableElementSep # Start a table row. # TableRowStart # End a table row. # TableRowEnd # End the table. # EndTable
%caption%
%stuff%%stuff%
# The following markup are not implemented yet: # NoteRef %ref% Superscript %stuff% Subscript %stuff% aft-5.098/AFT.pm0000744000175000017500000011343211442551474010216 00000000000000# Almost Free Text (AFT) Parser # # Copyright (C) 1996-2010 Todd A. Coram. All rights reserved. # # This perl script parses aft documents and produces output formatted according # to an aft 'element' file. See aft-refman.aft for additional information. # use strict; no strict "refs"; package AFT; use English; use vars qw ($VERSION $version $outputfile $element_type $author $title $pre_process_line $my_print); # Initializations of globals that consumers of this package may read/modify. # $author = ''; $title = ''; $VERSION="v5.098"; $version= "Almost Free Text $VERSION; Copyright 1996-2010 Todd Coram."; $element_type="bn-html"; # Default $outputfile=''; # Output file # You can supply your own pre-processor here... For now, here is a NOOP. # This is of interest to apps that use AFT.pm as a package. # $pre_process_line = sub { local $_ = shift; my($fname,$lcnt) = @_; return $_; }; # You can supply your own print subroutine here. # $my_print = sub { print @_; }; # Package scoped variables. # my $aft_advert = "This document was generated using {-AFT $VERSION\@http://www.maplefish.com/todd/aft.html-}"; my $autonumber =0; # prefix sections with nested numbers my $verbose = 0; # Spew out lots of rambling commentary? my $tabstop=8; # Default number of spaces constituting a tab. my $holding_preamble = 1; # True if we have not outputted title/author. # Holds file handle for table of contents output # my $tocout; # # Global State (modes). This controls the AFT state machine. # my $mode = { processing_input => 1, # Are we processing input or dumping results? in_table => 0, # Are we in table mode? need_table_headers => 0, # Used to keep track of table building. eat_sep => 0, # Used to eat a table separator line. in_quote => 0, # Are we in quote mode? in_verb => 0, # Are we in verbatim mode? in_blocked_verb => 0, # Are we in blocked verbatim mode? in_filtered_verb => 0, # Are we in filtered verbatim mode? in_para => 0, # Paragraph mode indicator in_list_el => 0, # Are we inside of a list element? cur_sect_level => 0, # Current section we are in. in_sect => 0, # True if we ever go into sections... }; # Cache (memo) variables. Not state, but artifact used by states. # my $table_caption = ''; # Holds current table's caption. my @list_stack; # A stack of lists as we nest. my @section_stack; # Keeps track of nesting sections. my $section_number = Autonum->new(); my %index; # Hash of arrays (name -> [ ref, ... ]) my @note; # Holds collected 'endnotes'. # # Submodes for paragraph mode. # my $paragraph = { small => 0, strong => 0, emphasize => 0, teletype => 0, }; my $face = { "|" => "Teletype", "''" => "Emphasis", "_" => "Strong", "~" => "Small", }; # Pragma variables (set from inside documents) # my %pragma_prevar = (); # variables expanded before filtering. my %pragma_ctl = (); # variables used for internal control # Set up some convenient symbols %% # sub setup_symbols { $pragma_prevar{'lb'} = $AFT_OUTPUT::elem{'LineBreak'}; $pragma_prevar{'sp'} = $AFT_OUTPUT::elem{'NBSPACE'}; $pragma_prevar{'bang'} = '!'; } # Don't expand pragmas in verbatim mode. # $AFT_OUTPUT::pragma_ctl{expandinverbatim} = 'no'; # Ignore square brackets as hyperlink indicators # $AFT_OUTPUT::pragma_ctl{verbatimsquarebrackets} = 'no'; # Turn on/off pre and post filtering # $AFT_OUTPUT::pragma_ctl{prefilter} = 'yes'; $AFT_OUTPUT::pragma_ctl{postfilter} = 'yes'; # AFT functions # my @Functions = ( \&handle_blocked_verbatim, # Must be before first... \&handle_comments, # Must be first \&handle_title_preamble, # Must be second \&handle_includes, \&handle_image, \&handle_ruler, \&handle_sections, \&handle_lists, \&handle_centered_text, \&handle_quoted_text, \&handle_table, \&handle_verbatim, ); # Run AFT from the command line. (The normal way to invoke AFT) # sub main { parse_command_line(); load_element_file(element_file()); setup_symbols(); if ($outputfile eq '') { # Use first input filename to construct output filename. # $outputfile = $ARGV[0]; $outputfile =~ s/\.\w+$//; # remove last '.' and anything following. $outputfile .= ".".lc($AFT_OUTPUT::elem{ defined $AFT_OUTPUT::elem{'EXT'} ? 'EXT' : 'ID'}); } # Try and open output file and set it as the default output. # open(OUT, ">$outputfile") or die "Can't open $outputfile for output!\n"; select(OUT); # Announce # print(STDERR "$version\n Writing $element_type output into $outputfile using". " $INC{element_file()}.\n") if $verbose; begin(); # Process each file supplied on the command line. # foreach my $filename (@ARGV) { process_file($filename); } end(); close(OUT); close($tocout) if $tocout; # If we wrote a table of contents, close it. if (my $post_processor = $AFT_OUTPUT::elem{'PostProcessor'}) { print(STDERR "\nPost Processing with '$post_processor'\n") and eval $post_processor or die "Can't post process $outputfile $!\n"; } exit 0; } sub begin { # Initialize our state. # reset_states(); # Hold onto the preamble 'til we see if *Title and *Author info is present. # $holding_preamble = 1; $mode->{processing_input} = 1; } # Run AFT on a file given its filename. # sub do_file { my($filename) = @_; load_element_file(element_file()); begin(); process_file($filename); end(); } # Run AFT on a single line supplied as a string (with a reference filename # and line number-- both can be fake.) # sub do_string { local $_ = shift; my ($fname, $lcnt) = @_; $_ = $pre_process_line->($_, $fname, $lcnt); # Convert every $tabstop spaces into a tab... e.g. /\ {4}/ s/\ {$tabstop}/\t/g if (!$mode->{in_blocked_verb}); # Iterate through all functions until one satisfies the input. # foreach my $function (@Functions) { return if ($function->($fname, $lcnt, $_)); } # All non-tabbed, non-sectional, non-special lines end up here. # # Always reset states # (take us out of whatever mode we may have been in). # reset_states(); # Now handle a special case... We need to detect blank lines to # determine whether we should end paragraph mode. # reset_paragraph(), return if $_ eq ''; # Otherwise, if not in paragraph mode, enter paragraph mode now. # enter_paragraph() if !$mode->{in_para}; # and kick out the filtered line. # output(filter($_)."\n"); } # Run AFT on a file given its file handle. # sub do_FH_file { my($fh, $filename) = @_; load_element_file(element_file()); begin(); process_FH_file($fh, $filename); end(); } sub output_preamble { output($AFT_OUTPUT::file_preamble."\n", title => $title, author => $author, version => $version); } sub output_postamble { output($AFT_OUTPUT::file_postamble."\n", aft => filter($aft_advert)); } sub output_indices { return if (%index == 0); # no indexed words if (defined($AFT_OUTPUT::elem{'PrintIndex'})) { output($AFT_OUTPUT::elem{'PrintIndex'}."\n"); return; } output($AFT_OUTPUT::elem{'HorizontalLine'}."\n"); do_string("* Index"); do_string("\n"); foreach my $key (sort(keys %index)) { next if ($key =~ /iNtErNaLNOTE/); output($AFT_OUTPUT::elem{'LineBreak'}); output("${key} : "); foreach my $target (@{$index{$key}}) { do_string("[*($target)], "); } } } sub output_notes { output($AFT_OUTPUT::elem{'HorizontalLine'}."\n"); my $count = 1; foreach my $note (@note) { do_string("=[(iNtErNaLNOTE$count)]=\n\\[[$count(REFiNtErNaLNOTE$count)]] - $note\n"); output($AFT_OUTPUT::elem{'LineBreak'}); $count++; } } sub end { # End all modes. # reset_states(); $mode->{processing_input} = 0; # If we ever entered sections... enter_section(0), output($AFT_OUTPUT::elem{'EndSectLevel1'}."\n") if ($mode->{in_sect}); output_notes() if ($AFT_OUTPUT::elem{'NotesAtEnd?'} eq 'yes'); output_indices(); # End output file with Postamble.. # output_postamble(); } sub parse_command_line { ## Process the command line options. # my $usage= "Usage:\n aft [--autonumber] [--verbose] [--output=file | --output=-]". " [--type=output_type] infile .."; use Getopt::Long; GetOptions ("output=s" => \$outputfile, # output file name "verbose!" => \$verbose, # output type (html, etc) "type=s" => \$element_type, # output type (html, etc) "autonumber!" => \$autonumber, # section numbers "tabstop=i" => \$tabstop); # number of spaces = tab print (STDERR "$version\n$usage\n"), exit 2 if (@ARGV == 0); } sub element_file { return "aft-".$element_type.".pm"; } # loadElementFile(file) - load the supplied element file name. # sub load_element_file { my $elementfile = shift; # This is more of an '#include' than a package import. eval {require $elementfile}; # Sets 3 variables in a subroutine # called initElements() and adds 2 additional # subroutines: prefilter() and postfilter(). die "Can't locate $elementfile. \n\t(I looked in: @INC)\n" if $@; # Initialize elements; # AFT_OUTPUT::init_elements(); } # processFile(fname) - Locate, open and process the supplied file. # sub process_file { my($fname) = @_; local *IN; if (!open(*IN, $fname)) { $fname .= ".aft"; # maybe we just got a a base name? open(*IN, $fname) or ((warn "Can't open $fname: $!\n"), return -1); } # Do that voodoo that you do so well. # print (STDERR "\nProcessing $fname.\n[") if $verbose; process_FH_file(*IN, $fname); # Done with it, so close it. # close (*IN); print (STDERR "]\nFinished processing $fname.\n") if $verbose; return 0; } # processFH_File (fh,fname) - Process the supplied file by the handle. # sub process_FH_file { my($fh, $fname) = @_; my $lcnt = 0; # line count my $continued_line = ""; LINE: while (<$fh>) { $lcnt++; chomp; chop if /.*\r$/; # In case we are unix perl processing a MSDOS .aft file $continued_line .= $1, next LINE if (/(.*)\\$/ and !$mode->{in_verb}); # collect continuations do_string($continued_line.$_, $fname, $lcnt); # process complete line $continued_line = ""; } do_string($continued_line, $fname, $lcnt) if $continued_line; } ##### Functions # # Handle comments and comment commands # sub handle_comments { my $fname = shift; my $lcnt = shift; local($_) = @_; # Handle Strike lines (X---) # /^X-{3,}([^\-]?.*)/ and do { output($AFT_OUTPUT::elem{'StrikeLine'}."\n",line => $1); return 1; }; # Handle comments and comment commands (pragmas). # /^[C\#]-{3,}([^\-]?.*)/ and do { # See if there is stuff we need to pass directly through the filters. # #---PASS-'ID' text # $1 =~ /PASS-(\w+)\s+(.*)/ and do { output($2) if ($AFT_OUTPUT::elem{'ID'} eq $1); return 1; }; # Set a pragma variable.. # #---SET[-ID] var=value # $1 =~ /SET(\s?|-\w+)\s*([^\=\ ]+)\s*=\s*(.*)/ and do { # Special control variable $AFT_OUTPUT::pragma_ctl{$2} = $3 if ($1 eq "-CONTROL"); if ("-$AFT_OUTPUT::elem{'ID'}" eq $1) { $AFT_OUTPUT::pragma_postvar{$2} = $3; } else { set_prevar($2,$3) if ($1 !~ /^-/); } return 1; }; # See if we need to adjust tabstop. # #---TABSTOP=N # $1 =~ /TABSTOP=(\d+)/ and do { $tabstop = $1; print (STDERR "\n[$fname($lcnt):". " TABSTOP set to $tabstop spaces.]\n"); return 1; }; output($AFT_OUTPUT::elem{'CommentLine'}."\n",line => $1); return 1; # regular comment }; return 0; # no comments encountered } # Handle *Title, *Author and preamble output. # sub handle_title_preamble { my $fname = shift; my $lcnt = shift; local($_) = @_; # *Title: # /^\*Title:\s*(.*)$/ and do { $title = filter($1); return 1; }; # *Author: # /^\*Author:\s*(.*)$/ and do { $author = filter($1); return 1; }; # Output the preamble if we have been holding on to it. # if ($holding_preamble) { return 1 if /^\s*$/; # empty line $holding_preamble = 0; output_preamble(); # Now print out title and author if they were collected. # If *Title and *Author were the first two lines in the document, # then we held the preamble until they were collected. # Else we assume that they are not available, so we just print # the preamble. output($AFT_OUTPUT::elem{"Title"}."\n", title => $title) if $title; output($AFT_OUTPUT::elem{"Author"}."\n", author => $author) if $author; } return 0; } # Handle *Insert:, *Include:, *File:,*See File and table of contents. # sub handle_includes { my $fname = shift; my $lcnt = shift; local($_) = @_; /^\*(Insert|See File|Include|File):\s*(\S+)/ and do { process_file($2); return 1; }; # *TOC: (table of contents) # /^\*(TOC)/ and do { # If there is no automatic table of contents markup, then generate # an AFT style markup. if ($AFT_OUTPUT::elem{$1} eq '') { generate_t_oC($fname); } else { output($AFT_OUTPUT::elem{$1}."\n"); } return 1; }; return 0; } # Handle *Image: and it's variations. # sub handle_image { my $fname = shift; my $lcnt = shift; local($_) = @_; /^\*(Image|Image-left|Image-center|Image-right):\s*(\S+)/ and do { output($AFT_OUTPUT::elem{$1}."\n", image =>$2); return 1; }; return 0; } # Handle ------ # sub handle_ruler { my $fname = shift; my $lcnt = shift; local($_) = @_; /^\-{4,}/ and do { output($AFT_OUTPUT::elem{'HorizontalLine'}."\n"); return 1; }; return 0; } # Handle *, **, ***, ****, **** etc (sections) and # ^*, ^**, ^***, ^**** (sections referencing TOC) # sub handle_sections { my $fname = shift; my $lcnt = shift; local($_) = @_; /^(\^*\*{1,7})\s*(.+?)\s*$/ and do { my($sname) = $2; if ($mode->{in_sect} eq 0) { output($AFT_OUTPUT::elem{'BeginSectLevel1'}."\n"); $mode->{in_sect} = 1; } enter_section(length $1); $section_number->incr(length $1); my $number = $section_number->dotted(); my $full_sname = $sname; $full_sname = "$number. $sname" if $autonumber; print (STDERR "]\n[$full_sname ") if $verbose; # print section name # output($AFT_OUTPUT::elem{$1}."\n", section => $sname, text => filter($full_sname), number => $number); # Save the section for the TOC file. # if (length($1) < 5) { my($level) = $1; $level =~ tr/*^/\t/d; print ($tocout "$level"."* {-$full_sname\@$sname-}\n") if $tocout; } return 1; }; return 0; } # List Mode # sub handle_lists { my $fname = shift; my $lcnt = shift; local($_) = @_; # Only do this if not in verbatim/quote mode and we parse one of the # following: # * # [text] # number. # number) # #) # #. # (!$mode->{in_verb} and !$mode->{in_quote} and (/^(\t{1,})(\*|\[.+\]|\#[.\)]|\d+[.\)])(.*)$/)) and do { my $rest_of_line = $3; my $list = ''; my ($le, $name); my $new_level = length($1); my $cur_list_level = scalar @list_stack; my $current_list = ''; if ($cur_list_level gt 0) { $current_list = $list_stack[$#list_stack]; } if ($2 =~ /^\*/) { $list = 'Bullet'; $le = prepare_output($AFT_OUTPUT::elem{'BulletListElement'}); } elsif ($2 =~ /^\[(.+)\]/) { $name = $1, $list = 'Named', $le = prepare_output($AFT_OUTPUT::elem{'NamedListElement'}, name => filter($name)); } else { $list = 'Numbered'; $le = prepare_output($AFT_OUTPUT::elem{'NumberedListElement'}); } # Are we nesting yet? # while ($cur_list_level < $new_level) { # Increase nest level # push(@list_stack,$list); end_list_element(); output($AFT_OUTPUT::elem{'Start'.$list.'List'}."\n"); $cur_list_level++; $current_list = $list; } while ($cur_list_level > $new_level) { # Retreat to a previous level # end_list_element(); $current_list = pop(@list_stack); output($AFT_OUTPUT::elem{'End'.$current_list.'List'}."\n"); $cur_list_level--; $current_list = pop(@list_stack); push(@list_stack, $current_list); } if ($list ne $current_list) { # Changing horses... A new list type. # end_list_element(); $current_list = pop(@list_stack); output($AFT_OUTPUT::elem{'End'.$current_list.'List'}."\n"); push(@list_stack,$list); $current_list = $list; output($AFT_OUTPUT::elem{'Start'.$list.'List'}."\n"); } end_list_element(); $mode->{in_list_el} = 1; output($le); # output element line output(filter($rest_of_line)); return 1; }; # Print a continuation of list element if in list mode and tabbed... # if (scalar(@list_stack) and /^\t\s*(.*)$/) { output(' '.filter($1)); return 1; } end_list_element(); return 0; } # Terminate list element. # sub end_list_element { if ($mode->{in_list_el}) { output($AFT_OUTPUT::elem{'End'.$list_stack[$#list_stack]. 'ListElement'}."\n"); $mode->{in_list_el} = 0; } } # Handle centered text. # sub handle_centered_text { my $fname = shift; my $lcnt = shift; local($_) = @_; (!scalar(@list_stack) and !$mode->{in_verb} and !$mode->{in_quote} and /^\t{2,}(.*)$/) and do { reset_states(); output($AFT_OUTPUT::elem{'Center'}."\n", center => filter($1)); return 1; }; return 0; } # Handle quoted text. # sub handle_quoted_text { my $fname = shift; my $lcnt = shift; local($_) = @_; (!$mode->{in_verb} and /^\t\#\s*(.*)$/) and do { if (!$mode->{in_quote}) { # if we aren't in quote mode yet... reset_states(); output($AFT_OUTPUT::elem{'StartQuote'}."\n"); $mode->{in_quote} = 1; } output(filter($1)."\n"); return 1; }; return 0; } # Handle tables # sub handle_table { my $fname = shift; my $lcnt = shift; local($_) = @_; if ($AFT_OUTPUT::pragma_ctl{tableparser} eq 'new') { return handle_new_table_parser($fname, $lcnt, $_); } # If not in verbatim or quote mode, try table... # (!$mode->{in_verb} and !$mode->{in_quote} and /^\t\!(.*)$/) and do { my $ecnt; # Number of elements. my @elements; my $ftype; # First thing is first... Are we in the table yet? # !$mode->{in_table} and do { reset_states(); # start clean $mode->{in_table} = 1; # Don't really start the table yet. We need to know how many # columns we will be dealing with. Expect table headers next # time through. # $mode->{need_table_headers} = 1; $1 =~ /([^\!]*)/; # The first thing we got was a caption. Save it for later. # $table_caption = filter($1); return 1; }; # Separator line !--------! # if ($1 =~ /[\-]+!$/) { return 1; } # We should be in Table mode now. The first thing we should do # is split up columns into individual elements. Ignore bogus # trailing column. If we got less than 2 elements, this ain't no # table! # if (($ecnt = (@elements = split ("!", $1, 100)) - 1) < 2) { print(STDERR "\n$fname($lcnt): Weirdness in a table... not enough columns.\n"); return 1; } # Okay, if this is the 2nd time through then we are looking for # table headers... # if ($mode->{need_table_headers}) { # We got the column count ($ecnt) above, so we assume that # it will stay consistent. If not, that's someone else's # problem. # output($AFT_OUTPUT::elem{'StartTable'}."\n", columns =>$ecnt, caption => $table_caption); output($AFT_OUTPUT::elem{'TableCaption'}."\n", caption => $table_caption); $mode->{need_table_headers} = 0; # don't need them anymore $ftype = $AFT_OUTPUT::elem{'TableHeader'}; # short hand } else { $ftype = $AFT_OUTPUT::elem{'TableElement'}; # short hand } output($AFT_OUTPUT::elem{'TableRowStart'}); # Now loop through each column element and spit it out. # foreach my $item (@elements) { output($ftype, stuff => filter($item)) if $item; } # End of Table Row # output($AFT_OUTPUT::elem{'TableRowEnd'}."\n"); return 1; }; return 0; } # Handle ''New Style'' tables # my @row_acc; sub handle_new_table_parser { my $fname = shift; my $lcnt = shift; local($_) = @_; # If not in verbatim or quote mode, try table... # (!$mode->{in_verb} and !$mode->{in_quote} and /^\t\!(.*)$/) and do { my $ecnt = 0; # Number of elements. my @elements; my $etype; my $tline = $1; # Protect \! $tline =~ s/\\!/%bang%/g; # First thing is first... Are we in the table yet? # !$mode->{in_table} and do { reset_states(); # start clean $mode->{in_table} = 1; # Don't really start the table yet. We need to know how many # columns we will be dealing with. Expect table headers next # time through. # $mode->{need_table_headers} = 1; if ($tline =~ /([^\!]*)/) { $tline = $1; } # if ($1 =~ /([^\!]*)/) { $tline = $1; } # The first thing we got was a caption. Save it for later. # $table_caption = filter($tline); $mode->{eatOne} = 1; return 1; }; if ($tline =~ /[\-]+!$/ and $mode->{eatOne}) { $mode->{eatOne} = 0; return 1; } # Separator line !--------! means kick out previously accumulated row. # if ($tline =~ /[\-]+!$/) { output($AFT_OUTPUT::elem{'TableRowStart'}); if ($mode->{need_table_headers}) { $etype = $AFT_OUTPUT::elem{'TableHeader'}; # short hand } else { $etype = $AFT_OUTPUT::elem{'TableElement'}; # short hand } if (@row_acc) { $mode->{need_table_headers} = 0 if $mode->{need_table_headers}; while (my $item = pop(@row_acc)) { output($etype, stuff => filter($item)) if $item; if (scalar(@row_acc) > 2) { output($AFT_OUTPUT::elem{'TableElementSep'}); } } output($AFT_OUTPUT::elem{'TableRowEnd'}."\n"); } return 1; } # otherwise... # We should be in Table mode now. The first thing we should do # is split up columns into individual elements. Ignore bogus # trailing column. If we got less than 2 elements, this ain't no # table! # if (($ecnt = (@elements = split ("!", $tline, 100)) - 1) < 2) { print(STDERR "\n$fname($lcnt): Weirdness in a table... not enough columns.\n"); return 1; } # Okay, if this is the 2nd time through then we are looking for # table headers... # if ($mode->{need_table_headers}) { # We got the column count ($ecnt) above, so we assume that # it will stay consistent. If not, that's someone else's # problem. # output($AFT_OUTPUT::elem{'StartTable'}."\n", columns =>$ecnt, caption => $table_caption); output($AFT_OUTPUT::elem{'TableCaption'}."\n", caption => $table_caption); } # If just accumulating... # Now loop through each column element and save it. # my $col = @elements; foreach my $item (@elements) { $row_acc[$col] .= $item if $item; $col--; } return 1; }; return 0; } # Handle verbatim issues. # sub handle_blocked_verbatim { my $fname = shift; my $lcnt = shift; local($_) = @_; if ($mode->{in_blocked_verb} or $mode->{in_filtered_verb}) { handle_verbatim($fname,$lcnt,$_); return 1; } return 0; # drop thru } sub handle_verbatim { my $fname = shift; my $lcnt = shift; local($_) = @_; # Check to see if we should get out of blocked/filtered verbatim mode. # /^\^>>/ and do { # Get out of blocked and filtered verbatim mode reset_states(); return 1; }; # Verbatim Text (and yes, even Quoted Text continuations) # (/(^\t|^\^\<\<\w*)/ or $mode->{in_blocked_verb} or $mode->{in_filtered_verb}) and do { # First, are we starting fresh? # (!$mode->{in_verb} and !$mode->{in_quote}) and do { reset_states(); # start clean $mode->{in_verb} = 1; # We are just entering the blocked verbatim mode, # so just remember this and don't print this line. # if ($1 =~ /\^\<\{in_filtered_verb} = 1; output($AFT_OUTPUT::elem{'StartFilteredVerbatim'}."\n"); } else { $mode->{in_blocked_verb} = 1; output($AFT_OUTPUT::elem{'StartBlockedVerbatim'}."\n"); } return 1; } # else output($AFT_OUTPUT::elem{'StartVerbatim'}."\n"); }; # In quote mode? Just kick out filtered text. # output(filter($POSTMATCH)."\n"), return 1 if $mode->{in_quote}; # We must be in a verbatim mode... # # Kill the first tab # s/^\t//g if (!($mode->{in_blocked_verb} or $mode->{in_filtered_verb})); # Now change all tabs to 8 spaces. # s/\t/ /g if (!$mode->{in_blocked_verb}); # Can we really filter FilterVerbatim? # if ($mode->{in_filtered_verb} and ($AFT_OUTPUT::elem{'FullFilterFilteredVerbatim?'} =~ /[Yy]/)) { output(filter($_)."\n"); } else { if ($AFT_OUTPUT::elem{'PreFilterVerbatim?'} =~ /[Yy]/) { output(AFT_OUTPUT::prefilter($_)."\n"); } else { output($_."\n"); # output 'as is' } } return 1; }; return 0; } # Generate and possibly include a table of contents file. # sub generate_t_oC { # Try and open a table of contents file # my ($fname) = @_; my $tocfile = $fname."-TOC"; print (STDERR "\t Looking for a table of contents file...\n") if $verbose; open(TOCIN, $tocfile) and do { # Read it in. # print (STDERR "\t Reading table of contents from $tocfile...")if $verbose; process_FH_file(*TOCIN, $tocfile); close(TOCIN); output("\n\n"); print (STDERR "Done.\n") if $verbose; }; if ($verbose) { print (STDERR "\t Generating a new $tocfile.\n"); print (STDERR "\t You may want to re-run aft again to include it if\n"); print (STDERR "\t any sections were added or removed in your document.\n"); } open(TOCOUT,">$tocfile"); $tocout = *TOCOUT; print (TOCOUT "C--- AFT Table of Contents (auto generated)\n"); } # filter(line) - processes line against macros and filters, returns filtered # line. # sub filter { my($line) = @_; # Expand any prefilter pragma symbols. # # foreach my $key (keys(%pragma_prevar)) { my $val = $pragma_prevar{$key}; $line =~ s/\%$key\%/$val/g; } # Now do the prefilters substitutions. # if ($AFT_OUTPUT::pragma_ctl{prefilter} eq 'yes') { $line = AFT_OUTPUT::prefilter($line); # First, protect ||, \|, __, \_, \\, ~~ and \~ # $line =~ s/__|\\_/%UnDeRLiNE%/g; $line =~ s/\|\||\\\|/%PiPe%/g; $line =~ s/\~\~|\\\~/%TiLdE%/g; $line =~ s/''''/%QuOtE%/g; # Now, do the line-oriented face changes. # while ($line =~ s/(~|_|\||'')(.+?)(\1)/$AFT_OUTPUT::elem{"Start$face->{$1}"}$2$AFT_OUTPUT::elem{"End$face->{$1}"}/g) { } # Next, see if there any ''paragraph'' oriented face changes. # # Start of line markup # $line =~ /^(~|_|\||'').+$/ and do { my $fc = $1; my $fcn = $face->{$fc}; $paragraph->{lc($fcn)} = 1; $line =~ s/^$fc/$AFT_OUTPUT::elem{"Start$fcn"}/; }; # End of line markup # ($line =~ /(~|_|\||'')$/ and $paragraph->{lc($face->{$1})}) and do { my $fc = $1; my $fcn = $face->{$fc}; $paragraph->{lc($fcn)} = 0; $line =~ s/$fc$/$AFT_OUTPUT::elem{"End$fcn"}/; }; # Now fix _ ~, \ and | # $line =~ s/%UnDeRLiNE%/_/g; $line =~ s/%PiPe%/\|/g; $line =~ s/%TiLdE%/\~/g; $line =~ s/%QuOtE%/''/g; } # Handle footnote references # $line = handle_notes($line); # Handle index references # $line = handle_indexing($line); # Handle hyper links # $line = handle_links($line); # Post-filter now. Pass its return up to the caller of filter(). # AFT_OUTPUT::postfilter($line) if ($AFT_OUTPUT::pragma_ctl{postfilter} eq 'yes'); } sub handle_indexing { my($line) = @_; my $_cnt; if ($mode->{processing_input} == 0) { return $line; } if ($AFT_OUTPUT::pragma_ctl{verbatimsquarebrackets} eq 'yes') { return $line; } # Look for new explicitely called out indexes: # =[^indexed]= - Generate a unique target (by appending array length). # $line =~ s/=\[\^([^\]]+?)\]=/ $_cnt=@{$index{$1}}, push(@{$index{$1}},"$1$_cnt"), prepare_output($AFT_OUTPUT::elem{'Index'}, text => "$1", target => "$1$_cnt")/eg; return $line; } sub handle_notes { my($line) = @_; my $notenum = scalar(@note)+1; # look for (and replace) [Note: .. ] # $line =~ s/\[Note:\s*(.*)\]/ handle_links("=[(REFiNtErNaLNOTE".$notenum.")]="). prepare_output($AFT_OUTPUT::elem{'Note'}, note => "$1", notereftxt => $notenum, notetarget => "iNtErNaLNOTE$notenum")/eg and push(@note, $1); # save note return $line; } # Handle the various types of links we can regex. # sub handle_links { my($line) = @_; if ($AFT_OUTPUT::pragma_ctl{verbatimsquarebrackets} eq 'no') { # =[(target)]= # $line =~ s/=\[\(([^\[]+?)\)\]=/ prepare_output($AFT_OUTPUT::elem{'Target'}, target => "$1", text => $AFT_OUTPUT::elem{'NBSPACE'})/eg; # =[target]= # $line =~ s/=\[([^\]]+?)\]=/ prepare_output($AFT_OUTPUT::elem{'Target'}, target => "$1", text => "$1")/eg; # new [name (url:reference)] style # $line =~ s/([^\\]|^)\[([^\[]+?)\s*\(((http?|file|ftp|mailto):.+?)\)\]/ $1.prepare_output($AFT_OUTPUT::elem{'URL'}, target => "$3", text => "$2", _text=>"$2")/eg; # new [name (:reference)] style (don't capture the : ) # $line =~ s/([^\\]|^)\[([^\[]+?)\s*\(:(.+?)\)\]/ $1.prepare_output($AFT_OUTPUT::elem{'URL'}, target => "$3", text => "$2", _text=>"$2")/eg; # new [name (reference)] style # $line =~ s/([^\\]|^)\[([^\[]+?)\s*\((.+?)\)\]/ $1.prepare_output($AFT_OUTPUT::elem{'InternalReference'}, target => "$3", text => "$2")/eg; # new [reference] style # $line =~ s/([^\\]|^)\[([^\[]+?)\]/ $1.prepare_output($AFT_OUTPUT::elem{'InternalReference'}, target => "$2", text => "$2")/eg; $line =~ s/\\\[/"\["/eg; } BEGIN { # Construct the rather complex regex for simple http addresses. # We use a BEGIN block because we only want to do it once. my $_safe = q/$\-_@.&+~/; my $_extra = q/#!*,/; my $_alpha = q/A-Za-z/; my $_digit = q/0-9/; my $_esc = q/%/; my $_seg = "[$_alpha$_digit$_safe$_extra$_esc]+"; my $_path = "(?:/$_seg)+"; my $_params = "$_seg"; my $_name = "[$_alpha$_digit][$_alpha$_digit\-]+"; my $_hostname = "$_name(?:\\.$_name)+"; my $_port = ":[0-9]+"; $AFT::httpaddr = "(?:ftp|file|https?)://$_hostname(?:$_port)?(?:$_path)?"; } # Handle plain old URLs terminated by brackets, spaces, periods and # generally any character not listed in $_seg # $line =~ s/(^|[\s\(])($AFT::httpaddr)/ "$1".(prepare_output($AFT_OUTPUT::elem{'URL'}, target => "$2", text => "$2", _text=>"")."$3")/eg; # Handle old AFT style Links $line =~ s/{\+((http|https|file|ftp|mailto)\:[^{}]+)\+}/ prepare_output($AFT_OUTPUT::elem{'URL'},target => "$1", text => "$1", _text=>"")/eg; $line =~ s/{\-([^\@{}]+)[\@]((http|https|file|ftp|mailto)\:[^{}]+)\-}/ prepare_output($AFT_OUTPUT::elem{'URL'},target => "$2", text => "$1", _text=>"$1")/eg; $line =~ s/\{\+\:([^{}]+)\+}/ prepare_output($AFT_OUTPUT::elem{'URL'},target => "$1", text => "$1", _text=>"")/eg; $line =~ s/{\-([^\@{}]+)[\@]\:([^{}]+)\-}/ prepare_output($AFT_OUTPUT::elem{'URL'},target => "$2", text => "$1", _text=>"$1")/eg; $line =~ s/\{\+([^{}]+)\+}/ prepare_output($AFT_OUTPUT::elem{'InternalReference'}, target => "$1", text => "$1")/eg; $line =~ s/{\-([^\@{}]+)\-}/ prepare_output($AFT_OUTPUT::elem{'InternalReference'}, target => "$1", text => "$1")/eg; $line =~ s/{\-([^\@{}]+)[\@]([^{}]+)\-}/ prepare_output($AFT_OUTPUT::elem{'InternalReference'}, target => "$2", text => "$1")/eg; $line =~ s/\}\+([^{}]+)\+\{/ prepare_output($AFT_OUTPUT::elem{'Target'}, target => "$1", text => "$1")/eg; $line =~ s/\}\-([^{}]+)\-\{/ prepare_output($AFT_OUTPUT::elem{'Target'}, target => "$1", text =>$AFT_OUTPUT::elem{'NBSPACE'})/eg; return $line; } # enterParagraph () - enter paragraph mode. # sub enter_paragraph { $mode->{in_para} = 1; output($AFT_OUTPUT::elem{'StartParagraph'}."\n"); } # resetParagraph () - reset paragraph mode. # sub reset_paragraph { print (STDERR ".") if $verbose; output($AFT_OUTPUT::elem{'EndSmall'}."\n") if $paragraph->{small}; output($AFT_OUTPUT::elem{'EndStrong'}."\n") if $paragraph->{strong}; output($AFT_OUTPUT::elem{'EndEmphasis'}."\n") if $paragraph->{emphasis}; output($AFT_OUTPUT::elem{'EndTeletype'}."\n") if $paragraph->{teletype}; output($AFT_OUTPUT::elem{'EndParagraph'}."\n") if $mode->{in_para}; $paragraph->{small} = 0; $paragraph->{strong} = 0; $paragraph->{emphasis} = 0; $paragraph->{teletype} = 0; $mode->{in_para} = 0; } # enterSection(level) - If we are nesting into a subsection, just keep track. # Otherwise, unwind the stack of sections (outputing EndSection for each). # Why keep a stack instead of a running level index? Unwinding can get tricky # if the user does something like: # * Section # *** Section # ** Section # **** Section # * Section # sub enter_section { BEGIN { # These keys are new. Don't choke if they don't exist. Don't # whine yet, just ignore them for now. # foreach my $name (qw(BeginSectLevel1 BeginSectLevel2 BeginSectLevel3 BeginSectLevel4 EndSectLevel1 EndSectLevel2 EndSectLevel3 EndSectLevel4)) { if (!defined($AFT_OUTPUT::elem{$name})) { $AFT_OUTPUT::elem{$name} = ""; } } } my ($newsectlevel) = @_; reset_paragraph(); # Do the section and section "level" mode popping... # if ($mode->{cur_sect_level} ge $newsectlevel) { while (@section_stack gt 0 and $section_stack[-1] ge $newsectlevel) { $mode->{cur_sect_level} = pop(@section_stack); output($AFT_OUTPUT::elem{'EndSect'.$mode->{cur_sect_level}}."\n"); if ($mode->{cur_sect_level} gt 3 and $newsectlevel le 3) { output($AFT_OUTPUT::elem{'EndSectLevel4'}."\n"); } elsif ($mode->{cur_sect_level} gt 2 and $newsectlevel le 2) { output($AFT_OUTPUT::elem{'EndSectLevel3'}."\n"); } elsif ($mode->{cur_sect_level} gt 1 and $newsectlevel le 1) { output($AFT_OUTPUT::elem{'EndSectLevel2'}."\n"); } } } # Do the section and section "level" pushing... # if (($mode->{cur_sect_level} le 3) and ($newsectlevel gt 3)) { output($AFT_OUTPUT::elem{'BeginSectLevel4'}."\n"); } elsif (($mode->{cur_sect_level} le 2) and ($newsectlevel gt 2)) { output($AFT_OUTPUT::elem{'BeginSectLevel3'}."\n"); } elsif (($mode->{cur_sect_level} le 1) and ($newsectlevel gt 1)) { output($AFT_OUTPUT::elem{'BeginSectLevel2'}."\n"); } $mode->{cur_sect_level} = $newsectlevel; push(@section_stack, $newsectlevel); } # resetStates () - reset our state to near-normal (paragraph mode is not # affected by this subroutine). # sub reset_states { # Are we in the middle of a table? # $mode->{in_table} and (!$mode->{need_table_headers} and output($AFT_OUTPUT::elem{'EndTable'}."\n")); # Since we can only be in one mode at a time, make like a big switch... # MODE: { output($AFT_OUTPUT::elem{'EndBlockedVerbatim'}."\n"), last MODE if $mode->{in_blocked_verb}; output($AFT_OUTPUT::elem{'EndFilteredVerbatim'}."\n"), last MODE if $mode->{in_filtered_verb}; output($AFT_OUTPUT::elem{'EndVerbatim'}."\n"), last MODE if $mode->{in_verb}; output($AFT_OUTPUT::elem{'EndQuote'}."\n"), last MODE if $mode->{in_quote}; end_list_element(); while (my $list = pop(@list_stack)) { output($AFT_OUTPUT::elem{'End'.$list.'List'}."\n"); } } # Now just reset all the variables. # $mode->{need_table_headers} = 0; $mode->{in_table}= 0; $mode->{in_quote} = 0; $mode->{in_verb} = 0; $mode->{in_blocked_verb} = 0; $mode->{in_filtered_verb} = 0; } sub set_prevar { my ($key,$value) = @_; $pragma_prevar{$key} = $value; } # Print out a line of text (possibly with substitutions). # # Usage: output(text [, key => value]..); # # %key% is replaced by value everywhere in text. # sub output { $my_print->(prepare_output(@_)); } # Prepare a line of text for output. # # Usage: prepareOutput(text [, key => value]..); # # %key% is replaced by value everywhere in text. # sub prepare_output { my $str = shift; my ($var, $val); while (@_) { $var = shift; $val = shift; my $fvar = "AFT_OUTPUT::$var"; if (defined(&{$fvar})){ $str =~ s/\%$var\%/$fvar->($val)/eg; } else { $str =~ s/\%$var\%/$val/g; } } return $str if ($mode->{in_verb} and !$mode->{in_filtered_verb} and $AFT_OUTPUT::pragma_ctl{expandinverbatim} eq 'no'); # Expand the document defined pragma variables. # foreach my $key (keys(%AFT_OUTPUT::pragma_postvar)) { $val = $AFT_OUTPUT::pragma_postvar{$key}; $str =~ s/\%$key\%/$val/g; } return $str; } # Numbered Heads Initializaton # BEGIN { package Autonum; # usage: # # $num = Autonum->new; # foreach (qw/ 1 2 2 3 3 1 2 3 1/ ) { # $num->incr($_, '.'); # print $num->dotted() , ':', "\n"; # } sub new { my ($class) = @_; my $self = { stack => [] }; return bless $self, $class; } # returns the counter for current $level sub incr { my ($self, $level) = @_; # truncate and reset child numbers splice @{$self->{stack}}, $level; # 0 index return ++$self->{stack}->[$level - 1]; } sub dotted { my ($self, $dot) = @_; $dot ||= '.'; # optional # v--- in case we skip levels, put a 0 in the gap. return join($dot, map {$_ || '0'} @{$self->{stack}}); # . $dot; } # just the numbers, no punc sub list { my $self = shift; # v--- in case we skip levels, put a 0 in the gap. return map {$_ || '0'} @{$self->{stack}}; } } return 1; aft-5.098/compile.pl0000744000175000017500000001066010035035105011213 00000000000000: # use perl -*- mode: Perl; -*- eval 'exec perl -S $0 "$@"' if $running_under_some_shell; # # compile.pl - AFT element file compiler. # # Copyright (C) 1996-2003 Todd Coram. All rights reserved. my $VERSION="2.07"; # Hash of elements my %element = (); # Hash of variables my %postvar = (); my $preamble; my $postamble; my $subs = ''; my $postfilter; my $prefilter; $date = scalar localtime; (@ARGV == 0) && do { print (STDERR "Usage: aft-compile element_file.dat \n"); exit 2; }; $infile = $ARGV[0]; $outfile = $ARGV[0]; $outfile =~ s/([^.])\.dat$/$1\.pm/; open(OUT, ">$outfile") || die "Can't open $outfile for output!"; select(OUT); print (STDERR "Compiling $infile into $outfile ...\n"); print "# AFT Output Elements.\n"; print "# !!DO NOT EDIT!! This file was automatically generated by aft-compile "; print "v$VERSION on $date\n"; print "# See http://www.maplefish.com/todd/aft.html for details.\n"; &processFile($infile); sub processFile { my ($fname) = @_; local *IN; open(IN, $fname) || die "Can't open data file: $fname"; my $inPreamble = 0; while () { chop; # Skip comment lines next if (/^(\s*\#|\Z)/ && !$inPreamble && !$inPostamble && !$inSubs); # Single line sub /^sub (.+)/ && do { $subs .= "sub $1\n"; }; /^use (.+)/ && do { print STDERR "Using features from $1...\n"; print "\n# Using features from $1.\n"; &processFile($1); }; # Enter and exit preambles and postambles states. # /^\s*Preamble\s*\{/ && ($inPreamble = 1, $preamble = '', next); /^\s*\}\s*Preamble/ && ($inPreamble = 0, next); /^\s*Postamble\s*\{/ && ($inPostamble = 1, $postamble = '', next); /^\s*\}\s*Postamble/ && ($inPostamble = 0, next); /^\s*Subs\s*\{/ && ($inSubs = 1, next); /^\s*\}\s*Subs/ && ($inSubs = 0, next); # Read in the preamble and postamble text. # $inPreamble && ($preamble .= $_."\n", next); $inPostamble && ($postamble .= $_."\n", next); $inSubs && ($sub .= $_."\n", next); # Parse: preFilter into pairs (stored one after other in the array). # /^\s*(preFilter)\s+([^\s]+)\s*([^\s]*)/ && do { push(@prefilter, "\$line=~s/$2/$3/g;"); next; }; /^\s*(preFilter\/e)\s+([^\s]+)\s*([^\s]*)/ && do { push(@prefilter, "\$line=~s/$2/$3/ge;"); next; }; # Parse: postFilter into pairs (stored one after other in the array). # /^\s*(postFilter)\s+([^\s]+)\s+([^\s]+)/ && do { push(@postfilter, "\$line=~s/$2/$3/g;"); next; }; /^\s*(postFilter\/e)\s+([^\s]+)\s+([^\s]+)/ && do { push(@postfilter, "\$line=~s/$2/$3/ge;"); next; }; # Post filtering variables # /^SET\s+(\w+)\s*=\s*/ && ($postvar{$1} = $', next); # Elements # /^\s*([^\s]+)\s*/ && ($element{$1} = $'); } close(IN); } print "package AFT_OUTPUT;\n\n"; print 'use vars qw ($file_preamble $file_postamble %elem %pragma_postvar);'."\n\n"; print '$file_preamble = \'\'; # Holds preamble for output file.'."\n"; print '$file_postamble = \'\'; # Holds postamble for output file.'."\n"; print '%elem = (); # Element commands for producing output file.'; print '%pragma_postvar = (); # Variables for substitution post-filtering.'."\n"; print "\n\nsub init_elements {\n"; $interpolate = ($element{"interpolate"} =~ 'no') ? 0 : 1; print "\t\%pragma_postvar = (\n"; foreach $item (keys %postvar) { print "\t\t'$item' =>\t '$postvar{$item}',\n"; } print "\t);\n"; print "\t\%elem = (\n"; foreach $item (keys %element) { if ($element{$item} =~ /^\\t qq'$element{$item}',\n"; } else { $element{$item} =~ s/([\'])/\\$1/g; print "\t\t'$item' =>\t '$element{$item}',\n"; } } print "\t);\n"; print "\n## Preamble:\n\n"; $preamble =~ s/([\'])/\\$1/g; print "\$file_preamble = '$preamble';\n"; print "\n## Postamble:\n\n"; $postamble =~ s/([\'])/\\$1/g; print "\$file_postamble = '$postamble';\n"; print "}\n\n"; print "\n## Prefilter subroutine:\n\n"; print "sub prefilter {\n"; print " my (\$line) = \@_;\n"; print " ".join("\n ", @prefilter); print "\n return \$line;\n}\n"; print "\n## Postfilter subroutine:\n\n"; print "sub postfilter {\n"; print " my (\$line) = \@_;\n"; print " ".join("\n ", @postfilter); print "\n return \$line;\n}\n"; print "\n $subs\n"; print "\n1;\n"; aft-5.098/COPYING0000744000175000017500000001530207717037223010277 00000000000000 The Clarified Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder as specified below. "Copyright Holder" is whoever is named in the copyright or copyrights for the package. "You" is you, if you're thinking about copying or distributing this Package. "Distribution fee" is a fee you charge for providing a copy of this Package to another party. "Freely Available" means that no fee is charged for the right to use the item, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain, or those made Freely Available, or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: 1. place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major network archive site allowing unrestricted access to them, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. 2. use the modified Package only within your corporation or organization. 3. rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. 4. make other distribution arrangements with the Copyright Holder. 5. permit and encourge anyone who receives a copy of the modified Package permission to make your modifications Freely Available in some specific way. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: 1. distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. 2. accompany the distribution with the machine-readable source of the Package with your modifications. 3. give non-standard executables non-standard names, and clearly document the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. 4. make other distribution arrangements with the Copyright Holder. 5. offer the machine-readable source of the Package, with your modifications, by mail order. 5. You may charge a distribution fee for any distribution of this Package. If you offer support for this Package, you may charge any fee you choose for that support. You may not charge a license fee for the right to use this Package itself. You may distribute this Package in aggregate with other (possibly commercial and possibly nonfree) programs as part of a larger (possibly commercial and possibly nonfree) software distribution, and charge license fees for other parts of that software distribution, provided that you do not advertise this Package as a product of your own. If the Package includes an interpreter, You may embed this Package's interpreter within an executable of yours (by linking); this shall be construed as a mere form of aggregation, provided that the complete Standard Version of the interpreter is so embedded. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whoever generated them, and may be sold commercially, and may be aggregated with this Package. If such scripts or library files are aggregated with this Package via the so-called "undump" or "unexec" methods of producing a binary executable image, then distribution of such an image shall neither be construed as a distribution of this Package nor shall it fall under the restrictions of Paragraphs 3 and 4, provided that you do not represent such an executable image as a Standard Version of this Package. 7. C subroutines (or comparably compiled subroutines in other languages) supplied by you and linked into this Package in order to emulate subroutines and variables of the language defined by this Package shall not be considered part of this Package, but are the equivalent of input as in Paragraph 6, provided these subroutines do not change the language in any way that would cause it to fail the regression tests for the language. 8. Aggregation of the Standard Version of the Package with a commercial distribution is always permitted provided that the use of this Package is embedded; that is, when no overt attempt is made to make this Package's interfaces visible to the end user of the commercial distribution. Such use shall not be construed as a distribution of this Package. 9. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 10. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. aft-5.098/launch_ie.pl0000744000175000017500000000041310007430451011507 00000000000000use Win32; use Win32::OLE; use strict; $Win32::OLE::Warn = 0; my $IEbrowser = Win32::OLE->GetActiveObject('InternetExplorer.Application') || Win32::OLE->new('InternetExplorer.Application'); $IEbrowser->{visible} = 1; $IEbrowser->navigate("file:///".$ARGV[0]); aft-5.098/aft-tex.dat0000744000175000017500000001302011442315720011270 00000000000000# LaTeX AFT 5.0 rules (version 2.0) # # History: # Original Version - Todd Coram # 2.0 4/03 - Substantial clean up by Guido Gonzato # 2.1 1/04 - Corrections and clean up by Guido Gonzato # 2.2 8/09 - Additional sectioning support by Todd Coram # # ID LaTeX EXT tex # Should AFT interpolate strings? (i.e. perform backslash substitutions, etc) # For TeX: No! TeX uses backslashes for commands! # interpolate yes Preamble{ % %LaTeX 2.e output generated byt AFT % \documentclass[11pt]{article} \usepackage{makeidx} \usepackage{ae} \usepackage[T1]{fontenc} \usepackage[latin1]{inputenc} % latin1 encoding \usepackage{graphicx} % graphic files \usepackage{alltt} % filtered verbatim \usepackage[margin=2.5cm]{geometry} % page layout \usepackage[colorlinks,urlcolor=blue]{hyperref} % URLs an hrefs % \setlength{\parindent}{0pt} \setlength{\parskip}{3pt} \pagestyle{headings} % \makeindex \begin{document} }Preamble Postamble{ \end{document} }Postamble # Pre-Filters.... # preFilter \$ \\\$ # Allow TeX style linebreaks # #preFilter \\\\ %LiNeBrEaK% preFilter \\([^\$\~\[\|\_]) \\(\\backslash\\)$1 # Indexing support # Index \\index{%text%} SmartIndexing yes # Command to generate index. # PrintIndex \\printindex # Yes, hyperlinks... so make references where applicable # #URL \\url{%text%} URL %_text% \\url{%target%} InternalReference %text% (\$\S%TiLdE%\$\ref{%target%}) Target %text%\\label{%target%} # Protect the AFT hypertext braces # preFilter \{\+(.*?)\+\} %LeFtB%PlUs$1%PlUs%RiGhTB preFilter \}\+(.*?)\+\{ %RiGhTB%PlUs$1%PlUs%LeFtB preFilter \{\-(.*?)\-\} %LeFtB%NeG$1%NeG%RiGhTB preFilter \}\-(.*?)\-\{ %RiGhTB%NeG$1%NeG%LeFtB # Escape TeX braces # preFilter [\{\}] \\(\\$&\\) preFilter %LeFtB { preFilter %RiGhTB } preFilter %PlUs + preFilter %NeG - postFilter LaTeX \\LaTeX{} postFilter ([^a]|^)TeX $1\\TeX{} postFilter "(.*?)" ``$1'' # Formfeeds will force a new page # postFilter \014 \\newpage # Do the complex escaping that TeX likes # # Handle tildes inside of url references. They are not to be quoted by TeX. # sub escapeTildes {local($_) = @_; s/\~/\%TiLdE\%/g; return $_} postFilter/e (\\url\{.*?\}) &escapeTildes($1) postFilter [\^\~] \\$&\{\} postFilter %TiLdE% ~ postFilter \[ \\lbrack{} postFilter \] \\rbrack{} postFilter \| \\textbar{} postFilter %lbrack% { # AFT pragmas uses % which is mangled by postFilter before AFT can expand 'em # postFilter \%(\w+)?\% AfTSeT-$1-TeSTfA # Escape characters TeX doesn't like. # postFilter [\#\%\_\&] \\$& postFilter AfTSeT-(\w+)-TeSTfA %$1% postFilter [\<\>] \$$&\$ #preFilter %LiNeBrEaK% \\\\ Title \\title{%title%} Author \\author{%author%}\n\\maketitle TOC \\tableofcontents Image \\includegraphics{%image%} Image-center \\begin{center}\n\\includegraphics{%image%}\n\\end{center} Image-left \\begin{flushleft}\n\\includegraphics{%image%}\n\\end{flushleft} Image-right \\begin{flushright}\n\\includegraphics{%image%}\n\\end{flushright} * \\section{%text%}\n\\label{%section%} ** \\subsection{%text%}\n\\label{%section%} *** \\subsubsection{%text%}\n\\label{%section%} **** \\paragraph{%text%}\n\\label{%section%} ***** \\subparagraph{%text%}\n\\label{%section%} ****** \\addtolength{\\oddsidemargin}{1in}%text%\n\\label{%section%} ******* \\addtolength{\\oddsidemargin}{1in}%text%\n\\label{%section%} ^* \\section*{%text%}\n\\addcontentsline{toc}{section}{%text%}\n\\label{%section%} ^** \\subsection*{%text%}\n\\addcontentsline{toc}{subsection}{%text%}\n\\label{%section%} ^*** \\subsubsection*{%text%}\n\\addcontentsline{toc}{subsubsection}{%text%}\n\\label{%section%} ^**** \\paragraph*{%text%}\n\\label{%section%} ^***** \\subparagraph{%text%}\n\\label{%section%} EndSect1 EndSect2 EndSect3 EndSect4 EndSect5 EndSect6 \\addtolength{\\oddsidemargin}{-1in} EndSect7 \\addtolength{\\oddsidemargin}{-1in} LineBreak \\\\ StartParagraph EndParagraph Center \\begin{center}\n%center%\n\\end{center} Note \\footnote{%note%} NotesAtEnd? no HorizontalLine \\rule{\\linewidth}{1pt} sub columns { my $ccnt = shift; return "".("l" x $ccnt)."" } # deprecated LaTeX tabular style # sub columns { my $ccnt = shift; return "||".("l|" x $ccnt)."|" } # TableRowEnd \\\\ \\hline StartTable \n\\begin{center}\n%caption%\\\\\n\\medskip\n\\begin{tabular}{%columns%}\n\\hline TableHeader %stuff% TableElement %stuff% TableElementSep \& TableRowStart TableRowEnd \\\\ EndTable \n\\hline\n\\end{tabular}\n\\end{center} #StartTable \\rule{\\linewidth}{1pt}\n\\begin{tabbing} #TableCaption {\\textbf{%caption%}} \\\\ #TableHeader %stuff%\\=\\= #TableElement %stuff%\\>\\> #TableRowStart #TableRowEnd \\\\ #EndTable \\rule{\\linewidth}{1pt}\n\\end{tabbing} StartBulletList \\begin{itemize} BulletListElement \\item[$\\bullet$] EndBulletListElement EndBulletList \\end{itemize} StartNamedList \\begin{description} NamedListElement \\item[%name%] EndNamedListElement EndNamedList \\end{description} StartNumberedList \\begin{enumerate} NumberedListElement \\item EndNumberedListElement EndNumberedList \\end{enumerate} StartQuote \\begin{quotation} EndQuote \\end{quotation} PreFilterVerbatim? No FullFilterFilteredVerbatim? Yes StartVerbatim \\begin{verbatim} EndVerbatim \\end{verbatim} StartBlockedVerbatim \\begin{verbatim} EndBlockedVerbatim \\end{verbatim} StartFilteredVerbatim \\begin{alltt} EndFilteredVerbatim \\end{alltt} StartTeletype \\texttt%lbrack% EndTeletype } StartSmall {\\small%lbrack% EndSmall }} StartEmphasis \\emph%lbrack% EndEmphasis } StartStrong \\textbf%lbrack% EndStrong } CommentLine %%--- %line% StrikeLine %%--- %line% NBSPACE aft-5.098/trip-1.aft0000744000175000017500000000002707654734543011063 00000000000000''Hi, I'm trip-1.aft''.aft-5.098/aft-lout.dat0000744000175000017500000001267010035035115011457 00000000000000# AFT rules for Lout general documents # COPYRIGHTS # Almost Free Text (AFT) # Todd A. Coram (todd@maplefish.com) # http://www.maplefish.com/todd/ # # Basser Lout # Jeffrey H. Kingston (jeff@cs.usyd.edu.au) # http://snark.ptc.spbu.ru/~uwe/lout/ # # THANKS # Todd Coram for modifying AFT to support Lout structure and for his # help and kindness! # # DISCLAIMER # This file's a user contribution. Neither copyrights nor # warranties. Use at your own risk --it doesn't look dangerous # though--. If you like the ease of AFT and the power of Lout feel # free to hack it and please send me your work or ideas. Enjoy! # # Abel Morabito (amorabito@funescoop.com.ar) # April, 2001 ID LOUT # Preamble and postamble ###################################################################### Preamble{ # Basser Lout Version 3.25 output generated by AFT @SysInclude { doc } @Document @InitialFont { Times Base 12p } @InitialBreak { adjust 1.2fx hyphen } @InitialSpace { lout } @InitialLanguage { Spanish } @PageOrientation { Portrait } @PageHeaders { Simple } @FirstPageNumber { 1 } @ColumnNumber { 1 } @OptimizePages { No } @Unpaginated { No } // @Text @Begin }Preamble Postamble{ @End @Text }Postamble # Pre and postfilters ###################################################################### # MANUAL FORM FEED prefilter \014 @NP # SPECIAL CHARACTERS # # Plain Literal Plain Literal # # " "\"" @ "@" # | "|" # "#" # \ "\\" } "}" # & "&" ^ "^" # ~ "~" / "/" # { "{" " " (blank space) # ## Protect backslashes, then escape quotation marks and backslashes. ## They mess each other if you don't do it this way. preFilter \\ -BSlAsH- preFilter \" \"\\\"\" preFilter -BSlAsH- \"\\\\" ## Protect targets, references and links. Escape braces and 'at'. preFilter \{\-([^\}]+)\@([^\}]+)\-\} %LeFtB%NeG$1-AtChAr-$2%NeG%RiGhTB preFilter \{\+([^\}]+)\+\} %LeFtB%PlUs$1%PlUs%RiGhTB preFilter \}\+([^\}]+)\+\{ %RiGhTB%PlUs$1%PlUs%LeFtB preFilter \{\-([^\}]+)\-\} %LeFtB%NeG$1%NeG%RiGhTB preFilter \}\-([^\}]+)\-\{ %RiGhTB%NeG$1%NeG%LeFtB preFilter [\{\}\@] \"$&\" preFilter %LeFtB { preFilter %RiGhTB } preFilter %PlUs + preFilter %NeG - preFilter -AtChAr- @ ### This is to type loutish typographic quotes directly ``like this'' ### instead of ``like this'''' --both work anyway. preFilter \`\`([^\']+)\'\'\'\' ``$1-4QuOtEs- preFilter \`\`([^\']+)\'\' ``$1-2QuOtEs- preFilter -4QuOtEs- '''' preFilter -2QuOtEs- '''' ## Escape some other special characters. preFilter [\#\&\^\/] \"$&\" ## Escape tildes not used to make small caps. Double tildes are replaced ## by single ones to get protected spaces. preFilter \~\~ -DTiLdE- postFilter \~ \"~\" postFilter -DTiLdE- ~ ### Escape vertical bars not used to make teletype. postFilter \| \"|\" # Elements ###################################################################### #REFERENCES TARGETS and URLs --no hyperlinks in lout files. URL @F {<%target%>} InternalReference %text% (p. @PageOf {%target%}) Target %text% @PageMark {%target%} # TITLE and AUTHOR: see 'Preamble' #OutputTitle #Title #Author # TABLE OF CONTENTS TOC # TOC must be made from your lout file. ## IMAGES Image \n@IncludeGraphic %image% Image-center \n@CD @IncludeGraphic %image% Image-left \n@LD @IncludeGraphic %image% Image-right \n@RightDisplay @IncludeGraphic %image% ## NUMBERED STRUCTURES * \n@Section @Title {%section%} @Tag {%section%} @Begin ** \n@SubSection @Title {%section%} @Tag {%section%} @Begin *** \n@SubSubSection @Title {%section%} @Tag {%section%} @Begin **** EndSect1 \n@End @Section EndSect2 \n@End @SubSection EndSect3 \n@End @SubSubSection EndSect4 BeginSectLevel1 \n@BeginSections EndSectLevel1 \n@EndSections BeginSectLevel2 \n@BeginSubSections EndSectLevel2 \n@EndSubSections BeginSectLevel3 \n@BeginSubSubSections EndSectLevel3 \n@EndSubSubSections # SECTIONS REFERENCING TOC are not needed in Lout # #^* #^** #^*** #^**** # MISC LineBreak \n@LLP StartParagraph \n@PP\n EndParagraph ParagraphBreak NoteRef @Sup {%ref%} Superscript @Sup {%stuff%} Subscript @Sub {%stuff%} Center \n@CD {%center%} HorizontalLine \n@D @FullWidthRule ## TABLES are not supported. Just make them in your Lout file. StartTable # WARNING: AFT doesn't support Lout tables yet! #\n@CD TABLE\n #TableCaption #TableHeader #TableElement #TableRowStart #TableRowEnd #EndTable ## LISTS StartBulletList \n@BL BulletListElement \n@LI {\n EndBulletListElement \n} EndBulletList \n@EndList StartNamedList \n@TL NamedListElement \n@DTI {%name%} {\n EndNamedListElement \n} EndNamedList \n@EndList StartNumberedList \n@PNL NumberedListElement \n@LI {\n EndNumberedListElement \n} EndNumberedList \n@EndList ## QUOTED TEXT StartQuote \n@QD { EndQuote } ## FONT FACES ### Lout's verbatim mode doesn't process lout markup so PreFilterVerbatim? No ### Full filtering is needed mainly by AFTWEB --not by Lout, so FullFilterFilteredVerbatim? No ### Verbatim modes now StartVerbatim \n@ID @F @Verbatim { EndVerbatim } StartBlockedVerbatim \n@ID @F @Verbatim @Begin EndBlockedVerbatim \n@End @Verbatim ### Filtered verbatim is messy in Lout so StartFilteredVerbatim \n@ID @F @Verbatim @Begin EndFilteredVerbatim \n@End @Verbatim ### Remaining font faces StartTeletype @F { EndTeletype } StartSmall @S { EndSmall } StartEmphasis @I { EndEmphasis } StartStrong @B { EndStrong } ## OTHER CommentLine # %line% StrikeLine # %line% NBSPACE \" \" aft-5.098/aft.cgi.in0000744000175000017500000000105310007430325011067 00000000000000#!@PERL@ use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); use lib @prefix@/share/@PACKAGE@; use AFT; my $cgi = new CGI; my $file = $cgi->param('file'); if (!defined($file)) { print $cgi->header(); print <<"END_OF_FORM"

Please select an AFT file to upload:

END_OF_FORM } else { print $cgi->header(); &AFT::doFH_File($file, $file); }