<!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> <a class="qindex" href="namespaces.html">Namespace List</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> </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 <stdlib.h></font> 00019 <font class="preprocessor">#include <string.h></font> 00020 <font class="preprocessor">#include <gbfhtml.h></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 < maxlen) { 00041 memmove(&text[maxlen - len], text, len); 00042 from = &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">'<'</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">'>'</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">'<'</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">'>'</font>; 00078 *to++ = <font class="charliteral">'<'</font>; 00079 *to++ = <font class="charliteral">'e'</font>; 00080 *to++ = <font class="charliteral">'m'</font>; 00081 *to++ = <font class="charliteral">'>'</font>; 00082 <font class="keywordflow">for</font> (tok = token+2; *tok; tok++) 00083 *to++ = *tok; 00084 *to++ = <font class="charliteral">'<'</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">'>'</font>; 00089 *to++ = <font class="charliteral">'<'</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">'>'</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">'<'</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">'<'</font> && *tok+1 != <font class="charliteral">'R'</font> && *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">'>'</font>; 00124 <font class="keywordflow">continue</font>; 00125 <font class="keywordflow">case</font> <font class="charliteral">'x'</font>: 00126 *to++ = <font class="charliteral">'<'</font>; 00127 *to++ = <font class="charliteral">'/'</font>; 00128 *to++ = <font class="charliteral">'a'</font>; 00129 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00133 *to++ = <font class="charliteral">'i'</font>; 00134 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00140 *to++ = <font class="charliteral">'/'</font>; 00141 *to++ = <font class="charliteral">'i'</font>; 00142 *to++ = <font class="charliteral">'>'</font>; 00143 *to++ = <font class="charliteral">' '</font>; 00144 } 00145 *to++ = <font class="charliteral">'<'</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">'>'</font>; 00167 00168 *to++ = <font class="charliteral">' '</font>; 00169 *to++ = <font class="charliteral">'<'</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">'>'</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">'<'</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">'>'</font>; 00189 *to++ = <font class="charliteral">' '</font>; 00190 *to++ = <font class="charliteral">'<'</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">'>'</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">'<'</font>; 00207 *to++ = <font class="charliteral">'i'</font>; 00208 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00212 *to++ = <font class="charliteral">'/'</font>; 00213 *to++ = <font class="charliteral">'i'</font>; 00214 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00218 *to++ = <font class="charliteral">'b'</font>; 00219 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00223 *to++ = <font class="charliteral">'/'</font>; 00224 *to++ = <font class="charliteral">'b'</font>; 00225 *to++ = <font class="charliteral">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</font>; 00260 *to++ = <font class="charliteral">'u'</font>; 00261 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00265 *to++ = <font class="charliteral">'/'</font>; 00266 *to++ = <font class="charliteral">'u'</font>; 00267 *to++ = <font class="charliteral">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</font>; 00315 <font class="keywordflow">continue</font>; 00316 <font class="keywordflow">case</font> <font class="charliteral">'N'</font>: 00317 *to++ = <font class="charliteral">'<'</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">'>'</font>; 00333 <font class="keywordflow">continue</font>; 00334 <font class="keywordflow">case</font> <font class="charliteral">'n'</font>: 00335 *to++ = <font class="charliteral">'<'</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">'>'</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(&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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</font>; 00437 isCentered = <font class="keyword">false</font>; 00438 } 00439 <font class="keywordflow">if</font> (isRightJustified) { 00440 *to++ = <font class="charliteral">'<'</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">'>'</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">'<'</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">'>'</font>; 00460 <font class="keywordflow">continue</font>; 00461 <font class="keywordflow">case</font> <font class="charliteral">'t'</font>: 00462 *to++ = <font class="charliteral">'<'</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">'>'</font>; 00468 <font class="keywordflow">continue</font>;<font class="comment">/*</font> 00469 <font class="comment"> case 'S':</font> 00470 <font class="comment"> *to++ = '<';</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++ = '>';</font> 00476 <font class="comment"> *to++ = '<';</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++ = '>';</font> 00481 <font class="comment"> continue;</font> 00482 <font class="comment"> case 's':</font> 00483 <font class="comment"> *to++ = '<';</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++ = '>';</font> 00489 <font class="comment"> *to++ = '<';</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++ = '>';</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">'<'</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">'>'</font>; 00509 <font class="keywordflow">continue</font>; 00510 <font class="keywordflow">case</font> <font class="charliteral">'p'</font>: 00511 *to++ = <font class="charliteral">'<'</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">'>'</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 < 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>