<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% $Id: tex4ht-xhtml-xtpipes.tex 740 2020-06-13 22:35:32Z karl $
% htlatex tex4ht-xhtml-xtpipes "xhtml,next,3" "" "-d./"
%
% Copyright 2009-2020 TeX Users Group
% Copyright 1996-2009 Eitan M. Gurari
% Released under LPPL 1.3c+.
% See tex4ht-cpright.tex for license text.

\documentclass{article}
    \Configure{ProTex}{log,&lt;&lt;&lt;&gt;&gt;&gt;,title,list,`,[[]]}
    \usepackage{url}
    \input{common.tex}
\begin{document}
\input tex4ht-cpright.tex
\input tex4ht-dir


%%%%%%%%%%%%%%%%%%
\part{Post Processing for Html Output Mode}
%%%%%%%%%%%%%%%%%%


%%%%%%%%%%%%%%%%%%
\section{Outline}
%%%%%%%%%%%%%%%%%% 

\AtEndDocument{\OutputCodE\&lt;xhtml.4xt\&gt;}

\Needs{"xmllint --valid --noout xhtml.4xt"} 

\&lt;xhtml.4xt\&gt;&lt;&lt;&lt;
&lt;?xml version="1.0" encoding="UTF-8" ?&gt;
&lt;!DOCTYPE xtpipes SYSTEM "xtpipes.dtd" &gt;
&lt;!-- xhtml.4xt (`version), generated from `jobname.tex
     Copyright (C) 2009-2010 TeX Users Group
     Copyright (C) `CopyYear.2008. Eitan M. Gurari
`&lt;TeX4ht copyright`&gt; --&gt;
&lt;xtpipes preamble="yes" signature="xhtml.4xt (`version)"&gt;
   &lt;sax content-handler="xtpipes.util.ScriptsManager" 
        lexical-handler="xtpipes.util.ScriptsManagerLH" &gt;
     `&lt;tabular script`&gt;
     `&lt;longtable script`&gt;
     `&lt;email script`&gt;
     `&lt;empty html element script`&gt;
   &lt;/sax&gt;
&lt;/xtpipes&gt;
&gt;&gt;&gt;


%%%%%%%%%%%%%%%%%%
\section{email script}
%%%%%%%%%%%%%%%%%%

\&lt;email script\&gt;&lt;&lt;&lt;
&lt;script element="span::email" &gt;
   `&lt;set htm email links`&gt;
&lt;/script&gt; 
&gt;&gt;&gt;

   &lt;set name="email" &gt;
      `&lt;open xslt script`&gt;
      `&lt;email templates`&gt;
      `&lt;close xslt script`&gt;
   &lt;/set&gt;
   &lt;xslt name="." xml="." xsl="email" /&gt;


\&lt;email templates\&gt;&lt;&lt;&lt;
&lt;xsl:template match=" text()[contains(.,'@')] " &gt;
&lt;span class="set-emails"&gt;
      &lt;xsl:copy&gt;
      &lt;/xsl:copy&gt; 
&lt;/span&gt;     
&lt;/xsl:template&gt; 
&gt;&gt;&gt;


\&lt;set htm email links\&gt;&lt;&lt;&lt;
&lt;sax name="." xml="." content-handler="tex4ht.XhtmlEmails" /&gt;
&gt;&gt;&gt;




\&lt;java licence\&gt;&lt;&lt;&lt;
(`version)
&gt;&gt;&gt;


\AtEndDocument{%
   \OutputCodE\&lt;XhtmlEmails.java\&gt; 
 }
\ifdojava
  \Needs{"
    javac -classpath \TEXMFTEXivBIN tex4ht.jar
          XhtmlEmails.java
          -d \XTPIPES
"}
\fi
 
\&lt;XhtmlEmails.java\&gt;&lt;&lt;&lt; 
package tex4ht;
/* XhtmlEmails.java (`version), generated from `jobname.tex
   Copyright (C) 2009-2010 TeX Users Group
   Copyright (C) `CopyYear.2008. Eitan M. Gurari
`&lt;TeX4ht copyright`&gt; */

import xtpipes.XtpipesUni;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import java.io.*;
import java.lang.reflect.*;
import java.util.HashMap;

public class XhtmlEmails extends DefaultHandler {
        PrintWriter out = null;
        String data = "";
  public XhtmlEmails(PrintWriter out, 
                       HashMap&lt;String,Object&gt; scripts,
                       Method method, PrintWriter log, boolean trace) {
    this.out = out;
  }
  public void characters(char[] ch, int start, int length) {
    data += new String(ch, start, length);

//XtpipesUni.toUni(ch, start, length, "&lt;&gt;&amp;");
  }

  public void startElement(String ns, String sName,
                                      String qName,
                                      Attributes atts) {
      String s = "&lt;" + qName + "\n";
      for (int i = 0; i &lt; atts.getLength(); i++) {
        String name = atts.getQName(i);
        s += (" " + name + "=\"" 
            + XtpipesUni.toUni(atts.getValue(i), "&lt;&gt;&amp;\"")
            + "\"");
      } 
      s += "&gt;";
      `&lt;process email data`&gt;
      out.print(XtpipesUni.toUni(data, "&amp;") + s);
      data = "";
  }
  public void endElement(String ns, String sName, String qName) {
      String s = "&lt;/" + qName + "&gt;";
      `&lt;process email data`&gt;
      out.print( XtpipesUni.toUni(data, "&amp;") + s);
      data = "";
  }  

}
&gt;&gt;&gt;


\&lt;process email data\&gt;&lt;&lt;&lt;
while( data.indexOf('@') &gt;0 ){
  `&lt;clean prefix`&gt;
  `&lt;clean postfix`&gt;
}
data = XtpipesUni.toUni(data, "&lt;&gt;&amp;");
&gt;&gt;&gt;




\&lt;clean prefix\&gt;&lt;&lt;&lt;
String [] pre = data.split(
                   "[`&lt;email name`&gt;]*@"
                   , 2);
if( pre[0].endsWith("}") ){
  if( pre[0].indexOf("{") != -1 ){
     pre[0] = pre[0].substring( 0, pre[0].lastIndexOf("{") );        
} }
int len = pre[0] . length();
if( len &gt; 0 ){
   out.print( XtpipesUni.toUni(pre[0], "&lt;&gt;&amp;") );
   data = data.substring(len);
}
&gt;&gt;&gt;

\&lt;clean postfix\&gt;&lt;&lt;&lt;
String [] post = data.split(
                   "@[`&lt;email name`&gt;]*"
                   , 2);
if( post[1] . length() &gt; 0 ){
  data = data.substring(0, data.length() - post[1] . length());
}
`&lt;set a link to email`&gt;
data = post[1];
&gt;&gt;&gt;


\&lt;set a link to email\&gt;&lt;&lt;&lt;
if( data.indexOf("{") == -1 ){
   out.print(
      "&lt;a href=\"mailto:" + XtpipesUni.toUni(data, "&amp;") + "\"&gt;"
      + XtpipesUni.toUni(data, "&lt;&gt;&amp;")
      + "&lt;/a&gt;"
   );
} else {
  int idx = data.indexOf('@');
  String ext = data.substring(idx);
  data = data.substring(0,idx);
  `&lt;clean group prefix`&gt;
}
&gt;&gt;&gt;



\&lt;clean group prefix\&gt;&lt;&lt;&lt;
while( true ){
   pre = data.split(
                "[`&lt;email name`&gt;]+"
                , 2);    
   if( pre.length &lt; 2 ){
      out.print( XtpipesUni.toUni(data + ext, "&lt;&gt;&amp;") );
      data = "";
      break;
   }
   len = pre[0] . length();
   if( len &gt; 0 ){
      out.print( XtpipesUni.toUni(pre[0], "&lt;&gt;&amp;") );
      data = data.substring(len);
   }
   data = data.substring(0, data.length() - pre[1].length());   
   out.print(
      "&lt;a href=\"mailto:" + XtpipesUni.toUni(data + ext, "&amp;") + "\"&gt;"
      + XtpipesUni.toUni(data, "&lt;&gt;&amp;")
      + "&lt;/a&gt;"
   );
   data = pre[1];
}
&gt;&gt;&gt;

\&lt;email name\&gt;&lt;&lt;&lt;
\\p{javaLowerCase}\\p{javaUpperCase}\\d\\-_\\./&amp;&gt;&gt;&gt;


\url{http://tools.ietf.org/html/rfc2368}

\begin{verbatim}
Alice Smith" &lt;alice@somewhere.com&gt;
{alice, bob}@somewhere.com
alice@somewhere.com, bob@somewhere.com
\end{verbatim}

%%%%%%%%%%%%%%%%%%
\section{Long Tables}
%%%%%%%%%%%%%%%%%%


 
\&lt;longtable script\&gt;&lt;&lt;&lt;
&lt;script element="table::longtable" &gt;
   &lt;set name="longtbl" &gt;
      `&lt;open xslt script`&gt;
      `&lt;longtable templates`&gt;
      `&lt;close xslt script`&gt;
   &lt;/set&gt;
   &lt;xslt name="." xml="." xsl="longtbl" /&gt;
&lt;/script&gt; 
&gt;&gt;&gt;


\&lt;longtable templates\&gt;&lt;&lt;&lt;
&lt;xsl:template match=" table[ @class='longtable' ]
                    / tr[ (normalize-space(.)='') ] " &gt;
   &lt;xsl:if test=" normalize-space(following-sibling::*) != '' "&gt;
      &lt;xsl:copy&gt;
         &lt;xsl:apply-templates select="*|@*|text()|comment()" /&gt;
      &lt;/xsl:copy&gt;      
   &lt;/xsl:if&gt;
&lt;/xsl:template&gt; 
&gt;&gt;&gt;




%%%%%%%%%%%%%%%%%%
\section{Tabular}
%%%%%%%%%%%%%%%%%%


 
\&lt;tabular script\&gt;&lt;&lt;&lt;
&lt;script element="table::tabular" &gt;
   &lt;set name="tabular" &gt;
      `&lt;open xslt script`&gt;
      `&lt;tabular templates`&gt;
      `&lt;close xslt script`&gt;
   &lt;/set&gt;
   &lt;xslt name="." xml="." xsl="tabular" /&gt;
&lt;/script&gt; 
&gt;&gt;&gt;


\&lt;tabular templates\&gt;&lt;&lt;&lt;
&lt;xsl:template match=" table[ @class='tabular' ]
                    / tr[ (normalize-space(.)='') ] " &gt;

&lt;xsl:message terminate="no"&gt;
OK 1
&lt;/xsl:message&gt;

   &lt;xsl:if test=" normalize-space(following-sibling::*) != '' "&gt;
      &lt;xsl:copy&gt;
         &lt;xsl:apply-templates select="*|@*|text()|comment()" /&gt;
&lt;xsl:message terminate="no"&gt;
OK 2
&lt;/xsl:message&gt;
      &lt;/xsl:copy&gt;      
   &lt;/xsl:if&gt;
&lt;/xsl:template&gt; 
&gt;&gt;&gt;





\&lt;tabular templates\&gt;&lt;&lt;&lt;
&lt;xsl:template match=" tr[ (normalize-space(.)='') 
                          and
                          (parent::table[ @class='tabular' ])
                        ] " &gt;

&lt;xsl:message terminate="no"&gt;
OK 1
&lt;/xsl:message&gt;

   &lt;xsl:if test=" normalize-space(following-sibling::*) != '' "&gt;
      &lt;xsl:copy&gt;
         &lt;xsl:apply-templates select="*|@*|text()|comment()" /&gt;
&lt;xsl:message terminate="no"&gt;
OK 2
&lt;/xsl:message&gt;
      &lt;/xsl:copy&gt;      
   &lt;/xsl:if&gt;
&lt;/xsl:template&gt; 
&gt;&gt;&gt;


%%%%%%%%%%%%%%%%%%
\section{Empty HTML Element Script}
%%%%%%%%%%%%%%%%%%

\&lt;empty html element script\&gt;&lt;&lt;&lt;
&lt;script element="meta" &gt;
   &lt;set name="meta" &gt;
      `&lt;open xslt script`&gt;
      &lt;xsl:template match="meta" &gt;
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;meta&lt;/xsl:text&gt;
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt;
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt;
      &lt;/xsl:template&gt; 
      `&lt;copy attributes`&gt;
      `&lt;close xslt script`&gt;
   &lt;/set&gt;
   &lt;xslt name="." xml="." xsl="meta" /&gt;
&lt;/script&gt; 
&gt;&gt;&gt;


\&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="area" &gt; 
   &lt;set name="area" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="area" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;area&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="area" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




\&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="base" &gt; 
   &lt;set name="base" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="base" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;base&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="base" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="basefont" &gt; 
   &lt;set name="basefont" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="basefont" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;basefont&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="basefont" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="br" &gt; 
   &lt;set name="br" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="br" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;br&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="br" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="col" &gt; 
   &lt;set name="col" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="col" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;col&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="col" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="frame" &gt; 
   &lt;set name="frame" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="frame" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;frame&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="frame" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="hr" &gt; 
   &lt;set name="hr" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="hr" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;hr&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="hr" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="img" &gt; 
   &lt;set name="img" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="img" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;img&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="img" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="input" &gt; 
   &lt;set name="input" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="input" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;input&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="input" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="isindex" &gt; 
   &lt;set name="isindex" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="isindex" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;isindex&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="isindex" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="link" &gt; 
   &lt;set name="link" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="link" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;link&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="link" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 




 \&lt;empty html element script\&gt;&lt;&lt;&lt; 
&lt;script element="param" &gt; 
   &lt;set name="param" &gt; 
      `&lt;open xslt script`&gt; 
      &lt;xsl:template match="param" &gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;&amp;lt;param&lt;/xsl:text&gt; 
             &lt;xsl:apply-templates select="@*" mode="attrs" /&gt; 
         &lt;xsl:text disable-output-escaping="yes"&gt;/&amp;gt;&lt;/xsl:text&gt; 
      &lt;/xsl:template&gt;  
      `&lt;copy attributes`&gt; 
      `&lt;close xslt script`&gt; 
   &lt;/set&gt; 
   &lt;xslt name="." xml="." xsl="param" /&gt; 
&lt;/script&gt;  
&gt;&gt;&gt; 










\&lt;copy attributes\&gt;&lt;&lt;&lt;
&lt;xsl:template match="@*" mode="attrs" &gt;
   &lt;xsl:text&gt; &lt;/xsl:text&gt;
   &lt;xsl:value-of select="name()" /&gt;
   &lt;xsl:text&gt;="&lt;/xsl:text&gt;
   &lt;xsl:value-of select="." /&gt;
   &lt;xsl:text&gt;"&lt;/xsl:text&gt;
&lt;/xsl:template&gt;
&gt;&gt;&gt;




%%%%%%%%%%%%%%%%%%
\section{Shared}
%%%%%%%%%%%%%%%%%%



\&lt;open xslt script\&gt;&lt;&lt;&lt;
&lt;![CDATA[ 
   &lt;xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   &gt;
      &lt;xsl:output omit-xml-declaration = "yes" method="xml" /&gt;
&gt;&gt;&gt;

\&lt;close xslt script\&gt;&lt;&lt;&lt;
      &lt;xsl:template match="*|@*|text()|comment()" &gt;
        &lt;xsl:copy&gt;
          &lt;xsl:apply-templates select="*|@*|text()|comment()" /&gt;
        &lt;/xsl:copy&gt;
      &lt;/xsl:template&gt;
   &lt;/xsl:stylesheet&gt; 
]]&gt;
&gt;&gt;&gt;




\ifdojava
\AtEndDocument{\Needs{%
    "pushd \XTPIPES || exit 1
     ;  
     jar cf tex4ht.jar *
     ;
     popd
     ;
     if [ ! -d \TEXMFTEXivBIN\space]; then exit 1; fi
     ;
     mv \XTPIPES tex4ht.jar \TEXMFTEXivBIN  
     ;
     if [ ! -d \TEXMFTEXivXTPIPES\space]; then exit 1; fi
     ;
     cp \XTPIPES xtpipes/lib/* 
        \TEXMFTEXivXTPIPES
"}}
\fi


%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</pre></body></html>