Sophie

Sophie

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

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>gbfhtml.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>gbfhtml.cpp</h1><div class="fragment"><pre>00001 <font class="comment">/***************************************************************************</font>
00002 <font class="comment">                          gbfhtml.cpp  -  description</font>
00003 <font class="comment">                             -------------------</font>
00004 <font class="comment">    begin                : Thu Jun 24 1999</font>
00005 <font class="comment">    copyright            : (C) 1999 by Torsten Uhlmann</font>
00006 <font class="comment">    email                : TUhlmann@gmx.de</font>
00007 <font class="comment"> ***************************************************************************/</font>
00008 
00009 <font class="comment">/***************************************************************************</font>
00010 <font class="comment"> *                                                                         *</font>
00011 <font class="comment"> *   This program is free software; you can redistribute it and/or modify  *</font>
00012 <font class="comment"> *   it under the terms of the GNU General Public License as published by  *</font>
00013 <font class="comment"> *   the Free Software Foundation; either version 2 of the License, or     *</font>
00014 <font class="comment"> *   (at your option) any later version.                                   *</font>
00015 <font class="comment"> *                                                                         *</font>
00016 <font class="comment"> ***************************************************************************/</font>
00017 
00018 <font class="preprocessor">#include &lt;stdlib.h&gt;</font>
00019 <font class="preprocessor">#include &lt;string.h&gt;</font>
00020 <font class="preprocessor">#include &lt;gbfhtml.h&gt;</font>
00021 
00022 
00023 GBFHTML::GBFHTML()
00024 {
00025 }
00026 
00027 
00028 <font class="keywordtype">char</font> GBFHTML::ProcessText(<font class="keywordtype">char</font> *text, <font class="keywordtype">int</font> maxlen, <font class="keyword">const</font> <a class="code" href="class_s_w_key.html">SWKey</a> *key, <font class="keyword">const</font> <a class="code" href="class_s_w_module.html">SWModule</a> *module)
00029 {
00030         <font class="keywordtype">char</font> *to, *from, token[2048];
00031         <font class="keywordtype">int</font> tokpos = 0;
00032         <font class="keywordtype">bool</font> intoken    = <font class="keyword">false</font>;
00033         <font class="keywordtype">bool</font> hasFootnotePreTag = <font class="keyword">false</font>;
00034         <font class="keywordtype">bool</font> isRightJustified = <font class="keyword">false</font>;
00035         <font class="keywordtype">bool</font> isCentered = <font class="keyword">false</font>;
00036         <font class="keywordtype">int</font> len;
00037         <font class="keyword">const</font> <font class="keywordtype">char</font> *tok;
00038 
00039         len = strlen(text) + 1;         <font class="comment">// shift string to right of buffer</font>
00040         <font class="keywordflow">if</font> (len &lt; maxlen) {
00041                 memmove(&amp;text[maxlen - len], text, len);
00042                 from = &amp;text[maxlen - len];
00043         }
00044         <font class="keywordflow">else</font>
00045                 from = text;                    <font class="comment">// -------------------------------</font>
00046         
00047         <font class="keywordflow">for</font> (to = text; *from; from++)
00048         {
00049                 <font class="keywordflow">if</font> (*from == <font class="charliteral">'\n'</font>) {
00050                         *from = <font class="charliteral">' '</font>;
00051                 }                       
00052                 <font class="keywordflow">if</font> (*from == <font class="charliteral">'&lt;'</font>) {
00053                         intoken = <font class="keyword">true</font>;
00054                         tokpos = 0;
00055                         token[0] = 0;
00056                         token[1] = 0;
00057                         token[2] = 0;
00058                         <font class="keywordflow">continue</font>;
00059                 }
00060                 <font class="keywordflow">if</font> (*from == <font class="charliteral">'&gt;'</font>) {
00061                         intoken = <font class="keyword">false</font>;
00062                         <font class="comment">// process desired tokens</font>
00063                         <font class="keywordflow">switch</font> (*token) {
00064                                 <font class="keywordflow">case</font> <font class="charliteral">'W'</font>:       <font class="comment">// Strongs</font>
00065                                         <font class="keywordflow">switch</font>(token[1])
00066                                         {
00067                                                 <font class="keywordflow">case</font> <font class="charliteral">'G'</font>:               <font class="comment">// Greek</font>
00068                                                 <font class="keywordflow">case</font> <font class="charliteral">'H'</font>:               <font class="comment">// Hebrew</font>
00069                                                 <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:               <font class="comment">// Tense</font>
00070                                                         *to++ = <font class="charliteral">' '</font>;
00071                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00072                                                         *to++ = <font class="charliteral">'s'</font>;
00073                                                         *to++ = <font class="charliteral">'m'</font>;
00074                                                         *to++ = <font class="charliteral">'a'</font>;
00075                                                         *to++ = <font class="charliteral">'l'</font>;
00076                                                         *to++ = <font class="charliteral">'l'</font>;
00077                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00078                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00079                                                         *to++ = <font class="charliteral">'e'</font>;
00080                                                         *to++ = <font class="charliteral">'m'</font>;
00081                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00082                                                         <font class="keywordflow">for</font> (tok = token+2; *tok; tok++)
00083                                                                 *to++ = *tok;
00084                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00085                                                         *to++ = <font class="charliteral">'/'</font>;
00086                                                         *to++ = <font class="charliteral">'e'</font>;
00087                                                         *to++ = <font class="charliteral">'m'</font>;
00088                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00089                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00090                                                         *to++ = <font class="charliteral">'/'</font>;
00091                                                         *to++ = <font class="charliteral">'s'</font>;
00092                                                         *to++ = <font class="charliteral">'m'</font>;
00093                                                         *to++ = <font class="charliteral">'a'</font>;
00094                                                         *to++ = <font class="charliteral">'l'</font>;
00095                                                         *to++ = <font class="charliteral">'l'</font>;
00096                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00097                                                         *to++ = <font class="charliteral">' '</font>;
00098                                                         <font class="keywordflow">continue</font>;
00099                                         }
00100                                         <font class="keywordflow">break</font>;
00101                                 <font class="keywordflow">case</font> <font class="charliteral">'R'</font>:
00102                                         <font class="keywordflow">switch</font>(token[1])
00103                                         {
00104                                         <font class="keywordflow">case</font> <font class="charliteral">'X'</font>:
00105                                           *to++ = <font class="charliteral">'&lt;'</font>;
00106                                           *to++ = <font class="charliteral">'a'</font>;
00107                                           *to++ = <font class="charliteral">' '</font>;
00108                                           *to++ = <font class="charliteral">'h'</font>;
00109                                           *to++ = <font class="charliteral">'r'</font>;
00110                                           *to++ = <font class="charliteral">'e'</font>;
00111                                           *to++ = <font class="charliteral">'f'</font>;
00112                                           *to++ = <font class="charliteral">'='</font>;
00113                                           *to++ = <font class="charliteral">'\"'</font>;
00114                                           <font class="keywordflow">for</font> (tok = token + 3; *tok; tok++) {
00115                                             <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>) {
00116                                               *to++ = *tok;
00117                                             }
00118                                             <font class="keywordflow">else</font> {
00119                                               <font class="keywordflow">break</font>;
00120                                             }
00121                                           }
00122                                           *to++ = <font class="charliteral">'\"'</font>;
00123                                           *to++ = <font class="charliteral">'&gt;'</font>;
00124                                           <font class="keywordflow">continue</font>;
00125                                         <font class="keywordflow">case</font> <font class="charliteral">'x'</font>:
00126                                           *to++ = <font class="charliteral">'&lt;'</font>;
00127                                           *to++ = <font class="charliteral">'/'</font>;
00128                                           *to++ = <font class="charliteral">'a'</font>;
00129                                           *to++ = <font class="charliteral">'&gt;'</font>;
00130                                           <font class="keywordflow">continue</font>;
00131                                           <font class="keywordflow">case</font> <font class="charliteral">'B'</font>:                                                             <font class="comment">//word(s) explained in footnote</font>
00132                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00133                                                         *to++ = <font class="charliteral">'i'</font>;
00134                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00135                                                         hasFootnotePreTag = <font class="keyword">true</font>; <font class="comment">//we have the RB tag</font>
00136                                                         <font class="keywordflow">continue</font>;
00137                                                 <font class="keywordflow">case</font> <font class="charliteral">'F'</font>:               <font class="comment">// footnote begin</font>
00138                                                         <font class="keywordflow">if</font> (hasFootnotePreTag) {
00139                                                                 *to++ = <font class="charliteral">'&lt;'</font>;
00140                                                                 *to++ = <font class="charliteral">'/'</font>;
00141                                                                 *to++ = <font class="charliteral">'i'</font>;
00142                                                                 *to++ = <font class="charliteral">'&gt;'</font>;
00143                                                                 *to++ = <font class="charliteral">' '</font>;
00144                                                         }
00145                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00146                                                         *to++ = <font class="charliteral">'f'</font>;
00147                                                         *to++ = <font class="charliteral">'o'</font>;
00148                                                         *to++ = <font class="charliteral">'n'</font>;
00149                                                         *to++ = <font class="charliteral">'t'</font>;
00150                                                         *to++ = <font class="charliteral">' '</font>;
00151                                                         *to++ = <font class="charliteral">'c'</font>;
00152                                                         *to++ = <font class="charliteral">'o'</font>;
00153                                                         *to++ = <font class="charliteral">'l'</font>;
00154                                                         *to++ = <font class="charliteral">'o'</font>;
00155                                                         *to++ = <font class="charliteral">'r'</font>;
00156                                                         *to++ = <font class="charliteral">'='</font>;
00157                                                         *to++ = <font class="charliteral">'\"'</font>;
00158                                                         *to++ = <font class="charliteral">'#'</font>;
00159                                                         *to++ = <font class="charliteral">'8'</font>;
00160                                                         *to++ = <font class="charliteral">'0'</font>;
00161                                                         *to++ = <font class="charliteral">'0'</font>;
00162                                                         *to++ = <font class="charliteral">'0'</font>;
00163                                                         *to++ = <font class="charliteral">'0'</font>;
00164                                                         *to++ = <font class="charliteral">'0'</font>;
00165                                                         *to++ = <font class="charliteral">'\"'</font>;
00166                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00167 
00168                                                         *to++ = <font class="charliteral">' '</font>;
00169                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00170                                                         *to++ = <font class="charliteral">'s'</font>;
00171                                                         *to++ = <font class="charliteral">'m'</font>;
00172                                                         *to++ = <font class="charliteral">'a'</font>;
00173                                                         *to++ = <font class="charliteral">'l'</font>;
00174                                                         *to++ = <font class="charliteral">'l'</font>;
00175                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00176                                                         *to++ = <font class="charliteral">'('</font>;
00177 
00178                                                         <font class="keywordflow">continue</font>;
00179                                                 <font class="keywordflow">case</font> <font class="charliteral">'f'</font>:               <font class="comment">// footnote end</font>
00180                                                         *to++ = <font class="charliteral">')'</font>;
00181                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00182                                                         *to++ = <font class="charliteral">'/'</font>;
00183                                                         *to++ = <font class="charliteral">'s'</font>;
00184                                                         *to++ = <font class="charliteral">'m'</font>;
00185                                                         *to++ = <font class="charliteral">'a'</font>;
00186                                                         *to++ = <font class="charliteral">'l'</font>;
00187                                                         *to++ = <font class="charliteral">'l'</font>;
00188                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00189                                                         *to++ = <font class="charliteral">' '</font>;
00190                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00191                                                         *to++ = <font class="charliteral">'/'</font>;
00192                                                         *to++ = <font class="charliteral">'f'</font>;
00193                                                         *to++ = <font class="charliteral">'o'</font>;
00194                                                         *to++ = <font class="charliteral">'n'</font>;
00195                                                         *to++ = <font class="charliteral">'t'</font>;
00196                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00197                                                         hasFootnotePreTag = <font class="keyword">false</font>;
00198                                                         <font class="keywordflow">continue</font>;
00199                                         }
00200                                         <font class="keywordflow">break</font>;
00201 
00202                                 <font class="keywordflow">case</font> <font class="charliteral">'F'</font>:                       <font class="comment">// font tags</font>
00203                                         <font class="keywordflow">switch</font>(token[1])
00204                                         {
00205                                                 <font class="keywordflow">case</font> <font class="charliteral">'I'</font>:               <font class="comment">// italic start</font>
00206                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00207                                                         *to++ = <font class="charliteral">'i'</font>;
00208                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00209                                                         <font class="keywordflow">continue</font>;
00210                                                 <font class="keywordflow">case</font> <font class="charliteral">'i'</font>:               <font class="comment">// italic end</font>
00211                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00212                                                         *to++ = <font class="charliteral">'/'</font>;
00213                                                         *to++ = <font class="charliteral">'i'</font>;
00214                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00215                                                         <font class="keywordflow">continue</font>;
00216                                                 <font class="keywordflow">case</font> <font class="charliteral">'B'</font>:               <font class="comment">// bold start</font>
00217                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00218                                                         *to++ = <font class="charliteral">'b'</font>;
00219                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00220                                                         <font class="keywordflow">continue</font>;
00221                                                 <font class="keywordflow">case</font> <font class="charliteral">'b'</font>:               <font class="comment">// bold end</font>
00222                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00223                                                         *to++ = <font class="charliteral">'/'</font>;
00224                                                         *to++ = <font class="charliteral">'b'</font>;
00225                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00226                                                         <font class="keywordflow">continue</font>;
00227                                                 <font class="keywordflow">case</font> <font class="charliteral">'R'</font>:               <font class="comment">// words of Jesus begin</font>
00228                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00229                                                         *to++ = <font class="charliteral">'f'</font>;
00230                                                         *to++ = <font class="charliteral">'o'</font>;
00231                                                         *to++ = <font class="charliteral">'n'</font>;
00232                                                         *to++ = <font class="charliteral">'t'</font>;
00233                                                         *to++ = <font class="charliteral">' '</font>;
00234                                                         *to++ = <font class="charliteral">'c'</font>;
00235                                                         *to++ = <font class="charliteral">'o'</font>;
00236                                                         *to++ = <font class="charliteral">'l'</font>;
00237                                                         *to++ = <font class="charliteral">'o'</font>;
00238                                                         *to++ = <font class="charliteral">'r'</font>;
00239                                                         *to++ = <font class="charliteral">'='</font>;
00240                                                         *to++ = <font class="charliteral">'#'</font>;
00241                                                         *to++ = <font class="charliteral">'F'</font>;
00242                                                         *to++ = <font class="charliteral">'F'</font>;
00243                                                         *to++ = <font class="charliteral">'0'</font>;
00244                                                         *to++ = <font class="charliteral">'0'</font>;
00245                                                         *to++ = <font class="charliteral">'0'</font>;
00246                                                         *to++ = <font class="charliteral">'0'</font>;
00247                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00248                                                         <font class="keywordflow">continue</font>;
00249                                                 <font class="keywordflow">case</font> <font class="charliteral">'r'</font>:               <font class="comment">// words of Jesus end</font>
00250                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00251                                                         *to++ = <font class="charliteral">'/'</font>;
00252                                                         *to++ = <font class="charliteral">'f'</font>;
00253                                                         *to++ = <font class="charliteral">'o'</font>;
00254                                                         *to++ = <font class="charliteral">'n'</font>;
00255                                                         *to++ = <font class="charliteral">'t'</font>;
00256                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00257                                                         <font class="keywordflow">continue</font>;
00258                                                 <font class="keywordflow">case</font> <font class="charliteral">'U'</font>:               <font class="comment">// Underline start</font>
00259                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00260                                                         *to++ = <font class="charliteral">'u'</font>;
00261                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00262                                                         <font class="keywordflow">continue</font>;
00263                                                         <font class="keywordflow">case</font> <font class="charliteral">'u'</font>:               <font class="comment">// Underline end</font>
00264                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00265                                                         *to++ = <font class="charliteral">'/'</font>;
00266                                                         *to++ = <font class="charliteral">'u'</font>;
00267                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00268                                                         <font class="keywordflow">continue</font>;
00269                                                 <font class="keywordflow">case</font> <font class="charliteral">'O'</font>:               <font class="comment">// Old Testament quote begin</font>
00270                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00271                                                         *to++ = <font class="charliteral">'c'</font>;
00272                                                         *to++ = <font class="charliteral">'i'</font>;
00273                                                         *to++ = <font class="charliteral">'t'</font>;
00274                                                         *to++ = <font class="charliteral">'e'</font>;
00275                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00276                                                         <font class="keywordflow">continue</font>;
00277                                                 <font class="keywordflow">case</font> <font class="charliteral">'o'</font>:               <font class="comment">// Old Testament quote end</font>
00278                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00279                                                         *to++ = <font class="charliteral">'/'</font>;
00280                                                         *to++ = <font class="charliteral">'c'</font>;
00281                                                         *to++ = <font class="charliteral">'i'</font>;
00282                                                         *to++ = <font class="charliteral">'t'</font>;
00283                                                         *to++ = <font class="charliteral">'e'</font>;
00284                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00285                                                         <font class="keywordflow">continue</font>;
00286                                                 <font class="keywordflow">case</font> <font class="charliteral">'S'</font>:               <font class="comment">// Superscript begin</font>
00287                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00288                                                         *to++ = <font class="charliteral">'s'</font>;
00289                                                         *to++ = <font class="charliteral">'u'</font>;
00290                                                         *to++ = <font class="charliteral">'p'</font>;
00291                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00292                                                         <font class="keywordflow">continue</font>;
00293                                                 <font class="keywordflow">case</font> <font class="charliteral">'s'</font>:               <font class="comment">// Superscript end</font>
00294                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00295                                                         *to++ = <font class="charliteral">'/'</font>;
00296                                                         *to++ = <font class="charliteral">'s'</font>;
00297                                                         *to++ = <font class="charliteral">'u'</font>;
00298                                                         *to++ = <font class="charliteral">'p'</font>;
00299                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00300                                                         <font class="keywordflow">continue</font>;
00301                                                 <font class="keywordflow">case</font> <font class="charliteral">'V'</font>:               <font class="comment">// Subscript begin</font>
00302                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00303                                                         *to++ = <font class="charliteral">'s'</font>;
00304                                                         *to++ = <font class="charliteral">'u'</font>;
00305                                                         *to++ = <font class="charliteral">'b'</font>;
00306                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00307                                                         <font class="keywordflow">continue</font>;
00308                                                 <font class="keywordflow">case</font> <font class="charliteral">'v'</font>:               <font class="comment">// Subscript end</font>
00309                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00310                                                         *to++ = <font class="charliteral">'/'</font>;
00311                                                         *to++ = <font class="charliteral">'s'</font>;
00312                                                         *to++ = <font class="charliteral">'u'</font>;
00313                                                         *to++ = <font class="charliteral">'b'</font>;
00314                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00315                                                         <font class="keywordflow">continue</font>;
00316                                                 <font class="keywordflow">case</font> <font class="charliteral">'N'</font>:
00317                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00318                                                         *to++ = <font class="charliteral">'f'</font>;
00319                                                         *to++ = <font class="charliteral">'o'</font>;
00320                                                         *to++ = <font class="charliteral">'n'</font>;
00321                                                         *to++ = <font class="charliteral">'t'</font>;
00322                                                         *to++ = <font class="charliteral">' '</font>;
00323                                                         *to++ = <font class="charliteral">'f'</font>;
00324                                                         *to++ = <font class="charliteral">'a'</font>;
00325                                                         *to++ = <font class="charliteral">'c'</font>;
00326                                                         *to++ = <font class="charliteral">'e'</font>;
00327                                                         *to++ = <font class="charliteral">'='</font>;
00328                                                         *to++ = <font class="charliteral">'"'</font>;
00329                                                         <font class="keywordflow">for</font> (tok = token + 2; *tok; tok++)
00330                                                                 *to++ = *tok;
00331                                                         *to++ = <font class="charliteral">'"'</font>;
00332                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00333                                                         <font class="keywordflow">continue</font>;
00334                                                 <font class="keywordflow">case</font> <font class="charliteral">'n'</font>:
00335                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00336                                                         *to++ = <font class="charliteral">'/'</font>;
00337                                                         *to++ = <font class="charliteral">'f'</font>;
00338                                                         *to++ = <font class="charliteral">'o'</font>;
00339                                                         *to++ = <font class="charliteral">'n'</font>;
00340                                                         *to++ = <font class="charliteral">'t'</font>;
00341                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00342                                                         <font class="keywordflow">continue</font>;
00343                                         }
00344                                         <font class="keywordflow">break</font>;
00345                                 <font class="keywordflow">case</font> <font class="charliteral">'C'</font>:                       <font class="comment">// special character tags</font>
00346                                         <font class="keywordflow">switch</font>(token[1])
00347                                         {
00348                                                 <font class="keywordflow">case</font> <font class="charliteral">'A'</font>:               <font class="comment">// ASCII value</font>
00349                                                         *to++ = (char)atoi(&amp;token[2]);
00350                                                         <font class="keywordflow">continue</font>;
00351                                                 <font class="keywordflow">case</font> <font class="charliteral">'G'</font>:
00352                                                         <font class="comment">//*to++ = ' ';</font>
00353                                                         <font class="keywordflow">continue</font>;
00354                                                 <font class="keywordflow">case</font> <font class="charliteral">'L'</font>:               <font class="comment">// line break</font>
00355                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00356                                                         *to++ = <font class="charliteral">'b'</font>;
00357                                                         *to++ = <font class="charliteral">'r'</font>;
00358                                                         *to++ = <font class="charliteral">' '</font>;
00359                                                         *to++ = <font class="charliteral">'/'</font>;
00360                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00361                                                         *to++ = <font class="charliteral">' '</font>;
00362                                                         <font class="keywordflow">continue</font>;
00363                                                 <font class="keywordflow">case</font> <font class="charliteral">'M'</font>:               <font class="comment">// new paragraph</font>
00364                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00365                                                         *to++ = <font class="charliteral">'b'</font>;
00366                                                         *to++ = <font class="charliteral">'r'</font>;
00367                                                         *to++ = <font class="charliteral">' '</font>;
00368                                                         *to++ = <font class="charliteral">'/'</font>;
00369                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00370                                                         <font class="keywordflow">continue</font>;
00371                                                 <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:
00372                                                         <font class="comment">//*to++ = ' ';</font>
00373                                                         <font class="keywordflow">continue</font>;
00374                                         }
00375                                         <font class="keywordflow">break</font>;
00376                                 <font class="keywordflow">case</font> <font class="charliteral">'J'</font>:       <font class="comment">//Justification</font>
00377                                         <font class="keywordflow">switch</font>(token[1])
00378                                         {
00379                                                 <font class="keywordflow">case</font> <font class="charliteral">'R'</font>:       <font class="comment">//right</font>
00380                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00381                                                         *to++ = <font class="charliteral">'d'</font>;
00382                                                         *to++ = <font class="charliteral">'i'</font>;
00383                                                         *to++ = <font class="charliteral">'v'</font>;
00384                                                         *to++ = <font class="charliteral">' '</font>;
00385                                                         *to++ = <font class="charliteral">'a'</font>;
00386                                                         *to++ = <font class="charliteral">'l'</font>;
00387                                                         *to++ = <font class="charliteral">'i'</font>;
00388                                                         *to++ = <font class="charliteral">'g'</font>;
00389                                                         *to++ = <font class="charliteral">'n'</font>;
00390                                                         *to++ = <font class="charliteral">'='</font>;
00391                                                         *to++ = <font class="charliteral">'\"'</font>;
00392                                                         *to++ = <font class="charliteral">'r'</font>;
00393                                                         *to++ = <font class="charliteral">'i'</font>;
00394                                                         *to++ = <font class="charliteral">'g'</font>;
00395                                                         *to++ = <font class="charliteral">'h'</font>;
00396                                                         *to++ = <font class="charliteral">'t'</font>;
00397                                                         *to++ = <font class="charliteral">'\"'</font>;
00398                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00399                                                         isRightJustified = <font class="keyword">true</font>;
00400                                                         <font class="keywordflow">continue</font>;
00401 
00402                                                 <font class="keywordflow">case</font> <font class="charliteral">'C'</font>:       <font class="comment">//center</font>
00403                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00404                                                         *to++ = <font class="charliteral">'d'</font>;
00405                                                         *to++ = <font class="charliteral">'i'</font>;
00406                                                         *to++ = <font class="charliteral">'v'</font>;
00407                                                         *to++ = <font class="charliteral">' '</font>;
00408                                                         *to++ = <font class="charliteral">'a'</font>;
00409                                                         *to++ = <font class="charliteral">'l'</font>;
00410                                                         *to++ = <font class="charliteral">'i'</font>;
00411                                                         *to++ = <font class="charliteral">'g'</font>;
00412                                                         *to++ = <font class="charliteral">'n'</font>;
00413                                                         *to++ = <font class="charliteral">'='</font>;
00414                                                         *to++ = <font class="charliteral">'\"'</font>;
00415                                                         *to++ = <font class="charliteral">'c'</font>;
00416                                                         *to++ = <font class="charliteral">'e'</font>;
00417                                                         *to++ = <font class="charliteral">'n'</font>;
00418                                                         *to++ = <font class="charliteral">'t'</font>;
00419                                                         *to++ = <font class="charliteral">'e'</font>;
00420                                                         *to++ = <font class="charliteral">'r'</font>;
00421                                                         *to++ = <font class="charliteral">'\"'</font>;
00422                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00423                                                         isCentered = <font class="keyword">true</font>;
00424                                                         <font class="keywordflow">continue</font>;
00425 
00426                                                 <font class="keywordflow">case</font> <font class="charliteral">'L'</font>: <font class="comment">//left, reset right and center</font>
00427                                                         <font class="keywordflow">if</font> (isCentered) {
00428                                                                 *to++ = <font class="charliteral">'&lt;'</font>;
00429                                                                 *to++ = <font class="charliteral">'/'</font>;
00430                                                                 *to++ = <font class="charliteral">'c'</font>;
00431                                                                 *to++ = <font class="charliteral">'e'</font>;
00432                                                                 *to++ = <font class="charliteral">'n'</font>;
00433                                                                 *to++ = <font class="charliteral">'t'</font>;
00434                                                                 *to++ = <font class="charliteral">'e'</font>;
00435                                                                 *to++ = <font class="charliteral">'r'</font>;
00436                                                                 *to++ = <font class="charliteral">'&gt;'</font>;
00437                                                                 isCentered = <font class="keyword">false</font>;
00438                                                         }
00439                                                         <font class="keywordflow">if</font> (isRightJustified) {
00440                                                                 *to++ = <font class="charliteral">'&lt;'</font>;
00441                                                                 *to++ = <font class="charliteral">'/'</font>;
00442                                                                 *to++ = <font class="charliteral">'d'</font>;
00443                                                                 *to++ = <font class="charliteral">'i'</font>;
00444                                                                 *to++ = <font class="charliteral">'v'</font>;
00445                                                                 *to++ = <font class="charliteral">'&gt;'</font>;
00446                                                                 isRightJustified = <font class="keyword">false</font>;
00447                                                         }
00448                                                         <font class="keywordflow">continue</font>;
00449                                         }
00450                                         <font class="keywordflow">break</font>;
00451                                 <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:                       <font class="comment">// title formatting</font>
00452                                         <font class="keywordflow">switch</font>(token[1])
00453                                         {
00454                                                 <font class="keywordflow">case</font> <font class="charliteral">'T'</font>:               <font class="comment">// Book title begin</font>
00455                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00456                                                         *to++ = <font class="charliteral">'b'</font>;
00457                                                         *to++ = <font class="charliteral">'i'</font>;
00458                                                         *to++ = <font class="charliteral">'g'</font>;
00459                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00460                                                         <font class="keywordflow">continue</font>;
00461                                                 <font class="keywordflow">case</font> <font class="charliteral">'t'</font>:
00462                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00463                                                         *to++ = <font class="charliteral">'/'</font>;
00464                                                         *to++ = <font class="charliteral">'b'</font>;
00465                                                         *to++ = <font class="charliteral">'i'</font>;
00466                                                         *to++ = <font class="charliteral">'g'</font>;
00467                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00468                                                         <font class="keywordflow">continue</font>;<font class="comment">/*</font>
00469 <font class="comment">                                                case 'S':</font>
00470 <font class="comment">                                                        *to++ = '&lt;';</font>
00471 <font class="comment">                                                        *to++ = 'b';</font>
00472 <font class="comment">                                                        *to++ = 'r';</font>
00473 <font class="comment">                                                        *to++ = ' ';</font>
00474 <font class="comment">                                                        *to++ = '/';</font>
00475 <font class="comment">                                                        *to++ = '&gt;';</font>
00476 <font class="comment">                                                        *to++ = '&lt;';</font>
00477 <font class="comment">                                                        *to++ = 'b';</font>
00478 <font class="comment">                                                        *to++ = 'i';</font>
00479 <font class="comment">                                                        *to++ = 'g';</font>
00480 <font class="comment">                                                        *to++ = '&gt;';</font>
00481 <font class="comment">                                                        continue;</font>
00482 <font class="comment">                                                case 's':</font>
00483 <font class="comment">                                                        *to++ = '&lt;';</font>
00484 <font class="comment">                                                        *to++ = '/';</font>
00485 <font class="comment">                                                        *to++ = 'b';</font>
00486 <font class="comment">                                                        *to++ = 'i';</font>
00487 <font class="comment">                                                        *to++ = 'g';</font>
00488 <font class="comment">                                                        *to++ = '&gt;';</font>
00489 <font class="comment">                                                        *to++ = '&lt;';</font>
00490 <font class="comment">                                                        *to++ = 'b';</font>
00491 <font class="comment">                                                        *to++ = 'r';</font>
00492 <font class="comment">                                                        *to++ = ' ';</font>
00493 <font class="comment">                                                        *to++ = '/';</font>
00494 <font class="comment">                                                        *to++ = '&gt;';</font>
00495 <font class="comment">                                                        continue;*/</font>
00496                                         }
00497                                         <font class="keywordflow">break</font>;
00498         
00499                                 <font class="keywordflow">case</font> <font class="charliteral">'P'</font>: <font class="comment">// special formatting</font>
00500                                         <font class="keywordflow">switch</font>(token[1])
00501                                         {
00502                                                 <font class="keywordflow">case</font> <font class="charliteral">'P'</font>: <font class="comment">// Poetry begin</font>
00503                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00504                                                         *to++ = <font class="charliteral">'c'</font>;
00505                                                         *to++ = <font class="charliteral">'i'</font>;
00506                                                         *to++ = <font class="charliteral">'t'</font>;
00507                                                         *to++ = <font class="charliteral">'e'</font>;
00508                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00509                                                         <font class="keywordflow">continue</font>;
00510                                                 <font class="keywordflow">case</font> <font class="charliteral">'p'</font>:
00511                                                         *to++ = <font class="charliteral">'&lt;'</font>;
00512                                                         *to++ = <font class="charliteral">'/'</font>;
00513                                                         *to++ = <font class="charliteral">'c'</font>;
00514                                                         *to++ = <font class="charliteral">'i'</font>;
00515                                                         *to++ = <font class="charliteral">'t'</font>;
00516                                                         *to++ = <font class="charliteral">'e'</font>;
00517                                                         *to++ = <font class="charliteral">'&gt;'</font>;
00518                                                         <font class="keywordflow">continue</font>;
00519                                         }
00520                                         <font class="keywordflow">break</font>;
00521                         }
00522                         <font class="keywordflow">continue</font>;
00523                 }
00524                 <font class="keywordflow">if</font> (intoken) {
00525                         <font class="keywordflow">if</font> (tokpos &lt; 2045) {
00526                                 token[tokpos++] = *from;
00527                                 token[tokpos+2] = 0;
00528                         }
00529                  }
00530                 <font class="keywordflow">else</font>
00531                         *to++ = *from;
00532         }
00533         *to++ = 0;
00534         *to = 0;
00535         <font class="keywordflow">return</font> 0;
00536 }
</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>