Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > a74ec78bdb789d910d054e3918f3f007 > files > 340

libsword1-devel-1.5.5-2mdk.ppc.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>gbfthml.cpp Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.15 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="namespaces.html">Namespace List</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="classes.html">Alphabetical List</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center>
<hr><h1>gbfthml.cpp</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************************************</font>
00002 <font class="comment">                     gbfthml.cpp  -  GBF to ThML filter</font>
00003 <font class="comment">                             -------------------</font>
00004 <font class="comment">    begin                : 1999-10-27</font>
00005 <font class="comment">    copyright            : 2001 by CrossWire Bible Society</font>
00006 <font class="comment"> ***************************************************************************/</font>
00007 
00008 <font class="comment">/***************************************************************************</font>
00009 <font class="comment"> *                                                                         *</font>
00010 <font class="comment"> *   This program is free software; you can redistribute it and/or modify  *</font>
00011 <font class="comment"> *   it under the terms of the GNU General Public License as published by  *</font>
00012 <font class="comment"> *   the Free Software Foundation; either version 2 of the License, or     *</font>
00013 <font class="comment"> *   (at your option) any later version.                                   *</font>
00014 <font class="comment"> *                                                                         *</font>
00015 <font class="comment"> ***************************************************************************/</font>
00016 
00017 <font class="preprocessor">#include &lt;stdlib.h&gt;</font>
00018 <font class="preprocessor">#include &lt;string.h&gt;</font>
00019 <font class="preprocessor">#include &lt;gbfthml.h&gt;</font>
00020 
00021 
00022 GBFThML::GBFThML()
00023 {
00024 }
00025 
00026 
00027 <font class="keywordtype">char</font> GBFThML::ProcessText(<font class="keywordtype">char</font> *text, <font class="keywordtype">int</font> maxlen)
00028 {
00029         <font class="keywordtype">char</font> *to, *from, token[2048];
00030         <font class="keywordtype">int</font> tokpos = 0;
00031         <font class="keywordtype">bool</font> intoken    = <font class="keyword">false</font>;
00032         <font class="keywordtype">int</font> len;
00033         <font class="keyword">const</font> <font class="keywordtype">char</font> *tok;
00034 
00035         len = strlen(text) + 1;                                         <font class="comment">// shift string to right of buffer</font>
00036         <font class="keywordflow">if</font> (len &lt; maxlen) {
00037                 memmove(&amp;text[maxlen - len], text, len);
00038                 from = &amp;text[maxlen - len];
00039         }
00040         <font class="keywordflow">else</font>    from = text;                                                    <font class="comment">// -------------------------------</font>
00041 
00042         <font class="keywordflow">for</font> (to = text; *from; from++)
00043         {
00044                 <font class="keywordflow">if</font> (*from == <font class="charliteral">'&lt;'</font>) {
00045                         intoken = <font class="keyword">true</font>;
00046                         tokpos = 0;
00047                         token[0] = 0;
00048                         token[1] = 0;
00049                         token[2] = 0;
00050                         <font class="keywordflow">continue</font>;
00051                 }
00052                 <font class="keywordflow">if</font> (*from == <font class="charliteral">'&gt;'</font>)
00053                 {
00054                         intoken = <font class="keyword">false</font>;
00055                         <font class="comment">// process desired tokens</font>
00056                         <font class="keywordflow">switch</font> (*token) {
00057                         <font class="keywordflow">case</font> <font class="charliteral">'W'</font>:       <font class="comment">// Strongs</font>
00058                           <font class="keywordflow">switch</font>(token[1]) {
00059                           <font class="keywordflow">case</font> <font class="charliteral">'G'</font>:
00060                           <font class="keywordflow">case</font> <font class="charliteral">'H'</font>:                         
00061                             *to++ = <font class="charliteral">'&lt;'</font>;
00062                             *to++ = <font class="charliteral">'s'</font>;
00063                             *to++ = <font class="charliteral">'y'</font>;
00064                             *to++ = <font class="charliteral">'n'</font>;
00065                             *to++ = <font class="charliteral">'c'</font>;
00066                             *to++ = <font class="charliteral">' '</font>;
00067                             *to++ = <font class="charliteral">'t'</font>;
00068                             *to++ = <font class="charliteral">'y'</font>;
00069                             *to++ = <font class="charliteral">'p'</font>;
00070                             *to++ = <font class="charliteral">'e'</font>;
00071                             *to++ = <font class="charliteral">'='</font>;
00072                             *to++ = <font class="charliteral">'"'</font>;
00073                             *to++ = <font class="charliteral">'S'</font>;
00074                             *to++ = <font class="charliteral">'t'</font>;
00075                             *to++ = <font class="charliteral">'r'</font>;
00076                             *to++ = <font class="charliteral">'o'</font>;
00077                             *to++ = <font class="charliteral">'n'</font>;
00078                             *to++ = <font class="charliteral">'g'</font>;
00079                             *to++ = <font class="charliteral">'s'</font>;
00080                             *to++ = <font class="charliteral">'"'</font>;
00081                             *to++ = <font class="charliteral">' '</font>;
00082                             *to++ = <font class="charliteral">'v'</font>;
00083                             *to++ = <font class="charliteral">'a'</font>;
00084                             *to++ = <font class="charliteral">'l'</font>;
00085                             *to++ = <font class="charliteral">'u'</font>;
00086                             *to++ = <font class="charliteral">'e'</font>;
00087                             *to++ = <font class="charliteral">'='</font>;
00088                             *to++ = <font class="charliteral">'"'</font>;
00089                             <font class="keywordflow">for</font> (tok = token + 1; *tok; tok++)
00090                               *to++ = *tok;
00091                             *to++ = <font class="charliteral">'"'</font>;
00092                             *to++ = <font class="charliteral">' '</font>;
00093                             *to++ = <font class="charliteral">'/'</font>;
00094                             *to++ = <font class="charliteral">'&gt;'</font>;
00095                             <font class="keywordflow">continue</font>;
00096                             
00097                           <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:               <font class="comment">// Tense</font>
00098                             *to++ = <font class="charliteral">'&lt;'</font>;
00099                             *to++ = <font class="charliteral">'s'</font>;
00100                             *to++ = <font class="charliteral">'y'</font>;
00101                             *to++ = <font class="charliteral">'n'</font>;
00102                             *to++ = <font class="charliteral">'c'</font>;
00103                             *to++ = <font class="charliteral">' '</font>;
00104                             *to++ = <font class="charliteral">'t'</font>;
00105                             *to++ = <font class="charliteral">'y'</font>;
00106                             *to++ = <font class="charliteral">'p'</font>;
00107                             *to++ = <font class="charliteral">'e'</font>;
00108                             *to++ = <font class="charliteral">'='</font>;
00109                             *to++ = <font class="charliteral">'"'</font>;
00110                             *to++ = <font class="charliteral">'M'</font>;
00111                             *to++ = <font class="charliteral">'o'</font>;
00112                             *to++ = <font class="charliteral">'r'</font>;
00113                             *to++ = <font class="charliteral">'p'</font>;
00114                             *to++ = <font class="charliteral">'h'</font>;
00115                             *to++ = <font class="charliteral">'"'</font>;
00116                             *to++ = <font class="charliteral">' '</font>;
00117                             *to++ = <font class="charliteral">'v'</font>;
00118                             *to++ = <font class="charliteral">'a'</font>;
00119                             *to++ = <font class="charliteral">'l'</font>;
00120                             *to++ = <font class="charliteral">'u'</font>;
00121                             *to++ = <font class="charliteral">'e'</font>;
00122                             *to++ = <font class="charliteral">'='</font>;
00123                             *to++ = <font class="charliteral">'"'</font>;
00124                             <font class="keywordflow">for</font> (tok = token + 2; *tok; tok++)
00125                               *to++ = *tok;
00126                             *to++ = <font class="charliteral">'"'</font>;
00127                             *to++ = <font class="charliteral">' '</font>;
00128                             *to++ = <font class="charliteral">'/'</font>;
00129                             *to++ = <font class="charliteral">'&gt;'</font>;
00130                             <font class="keywordflow">continue</font>;
00131                                 }
00132                           <font class="keywordflow">break</font>;
00133                         <font class="keywordflow">case</font> <font class="charliteral">'R'</font>:
00134                           <font class="keywordflow">switch</font>(token[1])
00135                             {
00136                             <font class="keywordflow">case</font> <font class="charliteral">'X'</font>:
00137                               *to++ = <font class="charliteral">'&lt;'</font>;
00138                               *to++ = <font class="charliteral">'a'</font>;
00139                               *to++ = <font class="charliteral">' '</font>;
00140                               *to++ = <font class="charliteral">'h'</font>;
00141                               *to++ = <font class="charliteral">'r'</font>;
00142                               *to++ = <font class="charliteral">'e'</font>;
00143                               *to++ = <font class="charliteral">'f'</font>;
00144                               *to++ = <font class="charliteral">'='</font>;
00145                               *to++ = <font class="charliteral">'\"'</font>;
00146                               <font class="keywordflow">for</font> (tok = token + 3; *tok; tok++) {
00147                                 <font class="keywordflow">if</font>(*tok != <font class="charliteral">'&lt;'</font> &amp;&amp; *tok+1 != <font class="charliteral">'R'</font> &amp;&amp; *tok+2 != <font class="charliteral">'x'</font>) {
00148                                   *to++ = *tok;
00149                                 }
00150                                 <font class="keywordflow">else</font> {
00151                                   <font class="keywordflow">break</font>;
00152                                 }
00153                               }
00154                               *to++ = <font class="charliteral">'\"'</font>;
00155                               *to++ = <font class="charliteral">'&gt;'</font>;
00156                               <font class="keywordflow">continue</font>;
00157                             <font class="keywordflow">case</font> <font class="charliteral">'x'</font>:
00158                               *to++ = <font class="charliteral">'&lt;'</font>;
00159                               *to++ = <font class="charliteral">'/'</font>;
00160                               *to++ = <font class="charliteral">'a'</font>;
00161                               *to++ = <font class="charliteral">'&gt;'</font>;
00162                               <font class="keywordflow">continue</font>;
00163                             <font class="keywordflow">case</font> <font class="charliteral">'F'</font>:               <font class="comment">// footnote begin</font>
00164                               *to++ = <font class="charliteral">'&lt;'</font>;
00165                               *to++ = <font class="charliteral">'n'</font>;
00166                               *to++ = <font class="charliteral">'o'</font>;
00167                               *to++ = <font class="charliteral">'t'</font>;
00168                               *to++ = <font class="charliteral">'e'</font>;
00169                               *to++ = <font class="charliteral">' '</font>;
00170                               *to++ = <font class="charliteral">'p'</font>;
00171                               *to++ = <font class="charliteral">'l'</font>;
00172                               *to++ = <font class="charliteral">'a'</font>;
00173                               *to++ = <font class="charliteral">'c'</font>;
00174                               *to++ = <font class="charliteral">'e'</font>;
00175                               *to++ = <font class="charliteral">'='</font>;
00176                               *to++ = <font class="charliteral">'"'</font>;
00177                               *to++ = <font class="charliteral">'f'</font>;
00178                               *to++ = <font class="charliteral">'o'</font>;
00179                               *to++ = <font class="charliteral">'o'</font>;
00180                               *to++ = <font class="charliteral">'t'</font>;
00181                               *to++ = <font class="charliteral">'"'</font>;
00182                               *to++ = <font class="charliteral">'&gt;'</font>;
00183                               <font class="keywordflow">continue</font>;
00184                             <font class="keywordflow">case</font> <font class="charliteral">'f'</font>:               <font class="comment">// footnote end</font>
00185                               *to++ = <font class="charliteral">'&lt;'</font>;
00186                               *to++ = <font class="charliteral">'/'</font>;
00187                               *to++ = <font class="charliteral">'n'</font>;
00188                               *to++ = <font class="charliteral">'o'</font>;
00189                               *to++ = <font class="charliteral">'t'</font>;
00190                               *to++ = <font class="charliteral">'e'</font>;
00191                               *to++ = <font class="charliteral">'&gt;'</font>;
00192                               <font class="keywordflow">continue</font>;
00193                             }
00194                           <font class="keywordflow">break</font>;
00195                         <font class="keywordflow">case</font> <font class="charliteral">'F'</font>:                       <font class="comment">// font tags</font>
00196                           <font class="keywordflow">switch</font>(token[1])
00197                             {
00198                             <font class="keywordflow">case</font> <font class="charliteral">'N'</font>:
00199                               *to++ = <font class="charliteral">'&lt;'</font>;
00200                               *to++ = <font class="charliteral">'f'</font>;
00201                               *to++ = <font class="charliteral">'o'</font>;
00202                               *to++ = <font class="charliteral">'n'</font>;
00203                               *to++ = <font class="charliteral">'t'</font>;
00204                               *to++ = <font class="charliteral">' '</font>;
00205                               *to++ = <font class="charliteral">'f'</font>;
00206                               *to++ = <font class="charliteral">'a'</font>;
00207                               *to++ = <font class="charliteral">'c'</font>;
00208                               *to++ = <font class="charliteral">'e'</font>;
00209                               *to++ = <font class="charliteral">'='</font>;
00210                               *to++ = <font class="charliteral">'"'</font>;              
00211                               <font class="keywordflow">for</font> (tok = token + 2; *tok; tok++)
00212                                 *to++ = *tok;
00213                               *to++ = <font class="charliteral">'"'</font>;
00214                               *to++ = <font class="charliteral">'&gt;'</font>;
00215                               <font class="keywordflow">continue</font>;
00216                             <font class="keywordflow">case</font> <font class="charliteral">'n'</font>:
00217                               *to++ = <font class="charliteral">'&lt;'</font>;
00218                               *to++ = <font class="charliteral">'/'</font>;
00219                               *to++ = <font class="charliteral">'f'</font>;
00220                               *to++ = <font class="charliteral">'o'</font>;
00221                               *to++ = <font class="charliteral">'n'</font>;
00222                               *to++ = <font class="charliteral">'t'</font>;
00223                               *to++ = <font class="charliteral">'&gt;'</font>;
00224                               <font class="keywordflow">continue</font>;
00225                             <font class="keywordflow">case</font> <font class="charliteral">'I'</font>:           <font class="comment">// italic start</font>
00226                               *to++ = <font class="charliteral">'&lt;'</font>;
00227                               *to++ = <font class="charliteral">'i'</font>;
00228                               *to++ = <font class="charliteral">'&gt;'</font>;
00229                               <font class="keywordflow">continue</font>;
00230                             <font class="keywordflow">case</font> <font class="charliteral">'i'</font>:           <font class="comment">// italic end</font>
00231                               *to++ = <font class="charliteral">'&lt;'</font>;
00232                               *to++ = <font class="charliteral">'/'</font>;
00233                               *to++ = <font class="charliteral">'i'</font>;
00234                               *to++ = <font class="charliteral">'&gt;'</font>;
00235                               <font class="keywordflow">continue</font>;
00236                             <font class="keywordflow">case</font> <font class="charliteral">'B'</font>:           <font class="comment">// bold start</font>
00237                               *to++ = <font class="charliteral">'&lt;'</font>;
00238                               *to++ = <font class="charliteral">'b'</font>;
00239                               *to++ = <font class="charliteral">'&gt;'</font>;
00240                               <font class="keywordflow">continue</font>;
00241                             <font class="keywordflow">case</font> <font class="charliteral">'b'</font>:           <font class="comment">// bold end</font>
00242                               *to++ = <font class="charliteral">'&lt;'</font>;
00243                               *to++ = <font class="charliteral">'/'</font>;
00244                               *to++ = <font class="charliteral">'b'</font>;
00245                               *to++ = <font class="charliteral">'&gt;'</font>;
00246                               <font class="keywordflow">continue</font>;
00247 
00248                             <font class="keywordflow">case</font> <font class="charliteral">'R'</font>:           <font class="comment">// words of Jesus begin</font>
00249                               *to++ = <font class="charliteral">'&lt;'</font>;
00250                               *to++ = <font class="charliteral">'f'</font>;
00251                               *to++ = <font class="charliteral">'o'</font>;
00252                               *to++ = <font class="charliteral">'n'</font>;
00253                               *to++ = <font class="charliteral">'t'</font>;
00254                               *to++ = <font class="charliteral">' '</font>;
00255                               *to++ = <font class="charliteral">'c'</font>;
00256                               *to++ = <font class="charliteral">'o'</font>;
00257                               *to++ = <font class="charliteral">'l'</font>;
00258                               *to++ = <font class="charliteral">'o'</font>;
00259                               *to++ = <font class="charliteral">'r'</font>;
00260                               *to++ = <font class="charliteral">'='</font>;
00261                               *to++ = <font class="charliteral">'\"'</font>;
00262                               *to++ = <font class="charliteral">'#'</font>;
00263                               *to++ = <font class="charliteral">'f'</font>;
00264                               *to++ = <font class="charliteral">'f'</font>;
00265                               *to++ = <font class="charliteral">'0'</font>;
00266                               *to++ = <font class="charliteral">'0'</font>;
00267                               *to++ = <font class="charliteral">'0'</font>;
00268                               *to++ = <font class="charliteral">'0'</font>;
00269                               *to++ = <font class="charliteral">'\"'</font>;
00270                               *to++ = <font class="charliteral">'&gt;'</font>;
00271                               <font class="keywordflow">continue</font>;
00272                             <font class="keywordflow">case</font> <font class="charliteral">'r'</font>:           <font class="comment">// words of Jesus end</font>
00273                               *to++ = <font class="charliteral">'&lt;'</font>;
00274                               *to++ = <font class="charliteral">'/'</font>;
00275                               *to++ = <font class="charliteral">'f'</font>;
00276                               *to++ = <font class="charliteral">'o'</font>;
00277                               *to++ = <font class="charliteral">'n'</font>;
00278                               *to++ = <font class="charliteral">'t'</font>;
00279                               *to++ = <font class="charliteral">'&gt;'</font>;
00280                               <font class="keywordflow">continue</font>;
00281                             <font class="keywordflow">case</font> <font class="charliteral">'U'</font>:           <font class="comment">// Underline start</font>
00282                               *to++ = <font class="charliteral">'&lt;'</font>;
00283                               *to++ = <font class="charliteral">'u'</font>;
00284                               *to++ = <font class="charliteral">'&gt;'</font>;
00285                               <font class="keywordflow">continue</font>;
00286                             <font class="keywordflow">case</font> <font class="charliteral">'u'</font>:           <font class="comment">// Underline end</font>
00287                               *to++ = <font class="charliteral">'&lt;'</font>;
00288                               *to++ = <font class="charliteral">'/'</font>;
00289                               *to++ = <font class="charliteral">'u'</font>;
00290                               *to++ = <font class="charliteral">'&gt;'</font>;
00291                               <font class="keywordflow">continue</font>;
00292                             <font class="keywordflow">case</font> <font class="charliteral">'O'</font>:           <font class="comment">// Old Testament quote begin</font>
00293                               *to++ = <font class="charliteral">'&lt;'</font>;
00294                               *to++ = <font class="charliteral">'c'</font>;
00295                               *to++ = <font class="charliteral">'i'</font>;
00296                               *to++ = <font class="charliteral">'t'</font>;
00297                               *to++ = <font class="charliteral">'e'</font>;
00298                               *to++ = <font class="charliteral">'&gt;'</font>;
00299                               <font class="keywordflow">continue</font>;
00300                             <font class="keywordflow">case</font> <font class="charliteral">'o'</font>:           <font class="comment">// Old Testament quote end</font>
00301                               *to++ = <font class="charliteral">'&lt;'</font>;
00302                               *to++ = <font class="charliteral">'/'</font>;
00303                               *to++ = <font class="charliteral">'c'</font>;
00304                               *to++ = <font class="charliteral">'i'</font>;
00305                               *to++ = <font class="charliteral">'t'</font>;
00306                               *to++ = <font class="charliteral">'e'</font>;
00307                               *to++ = <font class="charliteral">'&gt;'</font>;
00308                               <font class="keywordflow">continue</font>;
00309                             <font class="keywordflow">case</font> <font class="charliteral">'S'</font>:           <font class="comment">// Superscript begin</font>
00310                               *to++ = <font class="charliteral">'&lt;'</font>;
00311                               *to++ = <font class="charliteral">'s'</font>;
00312                               *to++ = <font class="charliteral">'u'</font>;
00313                               *to++ = <font class="charliteral">'p'</font>;
00314                               *to++ = <font class="charliteral">'&gt;'</font>;
00315                               <font class="keywordflow">continue</font>;
00316                             <font class="keywordflow">case</font> <font class="charliteral">'s'</font>:           <font class="comment">// Superscript end</font>
00317                               *to++ = <font class="charliteral">'&lt;'</font>;
00318                               *to++ = <font class="charliteral">'/'</font>;
00319                               *to++ = <font class="charliteral">'s'</font>;
00320                               *to++ = <font class="charliteral">'u'</font>;
00321                               *to++ = <font class="charliteral">'p'</font>;
00322                               *to++ = <font class="charliteral">'&gt;'</font>;
00323                               <font class="keywordflow">continue</font>;
00324                             <font class="keywordflow">case</font> <font class="charliteral">'V'</font>:           <font class="comment">// Subscript begin</font>
00325                               *to++ = <font class="charliteral">'&lt;'</font>;
00326                               *to++ = <font class="charliteral">'s'</font>;
00327                               *to++ = <font class="charliteral">'u'</font>;
00328                               *to++ = <font class="charliteral">'b'</font>;
00329                               *to++ = <font class="charliteral">'&gt;'</font>;
00330                               <font class="keywordflow">continue</font>;
00331                             <font class="keywordflow">case</font> <font class="charliteral">'v'</font>:           <font class="comment">// Subscript end</font>
00332                               *to++ = <font class="charliteral">'&lt;'</font>;
00333                               *to++ = <font class="charliteral">'/'</font>;
00334                               *to++ = <font class="charliteral">'s'</font>;
00335                               *to++ = <font class="charliteral">'u'</font>;
00336                               *to++ = <font class="charliteral">'b'</font>;
00337                               *to++ = <font class="charliteral">'&gt;'</font>;
00338                               <font class="keywordflow">continue</font>;
00339                             }
00340                           <font class="keywordflow">break</font>;
00341                         <font class="keywordflow">case</font> <font class="charliteral">'C'</font>:                       <font class="comment">// special character tags</font>
00342                           <font class="keywordflow">switch</font>(token[1])
00343                                 {
00344                                 <font class="keywordflow">case</font> <font class="charliteral">'A'</font>:               <font class="comment">// ASCII value</font>
00345                                   *to++ = (char)atoi(&amp;token[2]);
00346                                   <font class="keywordflow">continue</font>;
00347                                 <font class="keywordflow">case</font> <font class="charliteral">'G'</font>:
00348                                   <font class="comment">//*to++ = ' ';</font>
00349                                   <font class="keywordflow">continue</font>;
00350                                 <font class="keywordflow">case</font> <font class="charliteral">'L'</font>:               <font class="comment">// line break</font>
00351                                   *to++ = <font class="charliteral">'&lt;'</font>;
00352                                   *to++ = <font class="charliteral">'b'</font>;
00353                                   *to++ = <font class="charliteral">'r'</font>;
00354                                   *to++ = <font class="charliteral">' '</font>;
00355                                   *to++ = <font class="charliteral">'/'</font>;
00356                                   *to++ = <font class="charliteral">'&gt;'</font>;
00357                                   *to++ = <font class="charliteral">' '</font>;
00358                                   <font class="keywordflow">continue</font>;
00359                                 <font class="keywordflow">case</font> <font class="charliteral">'M'</font>:               <font class="comment">// new paragraph</font>
00360                                   *to++ = <font class="charliteral">'&lt;'</font>;
00361                                   *to++ = <font class="charliteral">'p'</font>;
00362                                   *to++ = <font class="charliteral">' '</font>;
00363                                   *to++ = <font class="charliteral">'/'</font>;
00364                                   *to++ = <font class="charliteral">'&gt;'</font>;
00365                                   <font class="keywordflow">continue</font>;
00366                                 <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:
00367                                   <font class="comment">//*to++ = ' ';</font>
00368                                   <font class="keywordflow">continue</font>;
00369                                 }
00370                           <font class="keywordflow">break</font>;
00371                         <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:                       <font class="comment">// title formatting</font>
00372                           <font class="keywordflow">switch</font>(token[1])
00373                             {
00374                             <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:               <font class="comment">// Book title begin</font>
00375                               *to++ = <font class="charliteral">'&lt;'</font>;
00376                               *to++ = <font class="charliteral">'b'</font>;
00377                               *to++ = <font class="charliteral">'i'</font>;
00378                               *to++ = <font class="charliteral">'g'</font>;
00379                               *to++ = <font class="charliteral">'&gt;'</font>;
00380                               <font class="keywordflow">continue</font>;
00381                             <font class="keywordflow">case</font> <font class="charliteral">'t'</font>:
00382                               *to++ = <font class="charliteral">'&lt;'</font>;
00383                               *to++ = <font class="charliteral">'/'</font>;
00384                               *to++ = <font class="charliteral">'b'</font>;
00385                               *to++ = <font class="charliteral">'i'</font>;
00386                               *to++ = <font class="charliteral">'g'</font>;
00387                               *to++ = <font class="charliteral">'&gt;'</font>;
00388                               <font class="keywordflow">continue</font>;
00389                             <font class="keywordflow">case</font> <font class="charliteral">'S'</font>:
00390                               *to++ = <font class="charliteral">'&lt;'</font>;
00391                               *to++ = <font class="charliteral">'d'</font>;
00392                               *to++ = <font class="charliteral">'i'</font>;
00393                               *to++ = <font class="charliteral">'v'</font>;
00394                               *to++ = <font class="charliteral">' '</font>;
00395                               *to++ = <font class="charliteral">'c'</font>;
00396                               *to++ = <font class="charliteral">'l'</font>;
00397                               *to++ = <font class="charliteral">'a'</font>;
00398                               *to++ = <font class="charliteral">'s'</font>;
00399                               *to++ = <font class="charliteral">'s'</font>;
00400                               *to++ = <font class="charliteral">'='</font>;
00401                               *to++ = <font class="charliteral">'\"'</font>;
00402                               *to++ = <font class="charliteral">'s'</font>;
00403                               *to++ = <font class="charliteral">'e'</font>;
00404                               *to++ = <font class="charliteral">'c'</font>;
00405                               *to++ = <font class="charliteral">'h'</font>;
00406                               *to++ = <font class="charliteral">'e'</font>;
00407                               *to++ = <font class="charliteral">'a'</font>;
00408                               *to++ = <font class="charliteral">'d'</font>;
00409                               *to++ = <font class="charliteral">'\"'</font>;
00410                               *to++ = <font class="charliteral">'&gt;'</font>;
00411                               <font class="keywordflow">continue</font>;
00412                             <font class="keywordflow">case</font> <font class="charliteral">'s'</font>:
00413                               *to++ = <font class="charliteral">'&lt;'</font>;
00414                               *to++ = <font class="charliteral">'/'</font>;
00415                               *to++ = <font class="charliteral">'d'</font>;
00416                               *to++ = <font class="charliteral">'i'</font>;
00417                               *to++ = <font class="charliteral">'v'</font>;
00418                               *to++ = <font class="charliteral">'&gt;'</font>;
00419                               <font class="keywordflow">continue</font>;
00420                             }
00421                           <font class="keywordflow">break</font>;
00422 
00423                         <font class="keywordflow">case</font> <font class="charliteral">'P'</font>:                       <font class="comment">// special formatting</font>
00424                           <font class="keywordflow">switch</font>(token[1])
00425                             {
00426                             <font class="keywordflow">case</font> <font class="charliteral">'P'</font>:               <font class="comment">// Poetry begin</font>
00427                               *to++ = <font class="charliteral">'&lt;'</font>;
00428                               *to++ = <font class="charliteral">'v'</font>;
00429                               *to++ = <font class="charliteral">'e'</font>;
00430                               *to++ = <font class="charliteral">'r'</font>;
00431                               *to++ = <font class="charliteral">'s'</font>;
00432                               *to++ = <font class="charliteral">'e'</font>;
00433                               *to++ = <font class="charliteral">'&gt;'</font>;
00434                               <font class="keywordflow">continue</font>;
00435                             <font class="keywordflow">case</font> <font class="charliteral">'p'</font>:
00436                               *to++ = <font class="charliteral">'&lt;'</font>;
00437                               *to++ = <font class="charliteral">'/'</font>;
00438                               *to++ = <font class="charliteral">'v'</font>;
00439                               *to++ = <font class="charliteral">'e'</font>;
00440                               *to++ = <font class="charliteral">'r'</font>;
00441                               *to++ = <font class="charliteral">'s'</font>;
00442                               *to++ = <font class="charliteral">'e'</font>;
00443                               *to++ = <font class="charliteral">'&gt;'</font>;
00444                               <font class="keywordflow">continue</font>;
00445                             }
00446                           <font class="keywordflow">break</font>;
00447                         }
00448                         <font class="keywordflow">continue</font>;
00449                 }
00450                 <font class="keywordflow">if</font> (intoken) {
00451                         <font class="keywordflow">if</font> (tokpos &lt; 2045)
00452                                 token[tokpos++] = *from;
00453                                 token[tokpos+2] = 0;
00454                 }
00455                 <font class="keywordflow">else</font>    *to++ = *from;
00456         }
00457         *to++ = 0;
00458         *to = 0;
00459         <font class="keywordflow">return</font> 0;
00460 }
00461 
00462 
00463 
</pre></div><hr><address align="right"><small>Generated on Thu Jun 20 22:12:59 2002 for The Sword Project by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.15 </small></address>
</body>
</html>