<!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> <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>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 <stdlib.h></font> 00018 <font class="preprocessor">#include <string.h></font> 00019 <font class="preprocessor">#include <gbfthml.h></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 < maxlen) { 00037 memmove(&text[maxlen - len], text, len); 00038 from = &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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'<'</font> && *tok+1 != <font class="charliteral">'R'</font> && *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">'>'</font>; 00156 <font class="keywordflow">continue</font>; 00157 <font class="keywordflow">case</font> <font class="charliteral">'x'</font>: 00158 *to++ = <font class="charliteral">'<'</font>; 00159 *to++ = <font class="charliteral">'/'</font>; 00160 *to++ = <font class="charliteral">'a'</font>; 00161 *to++ = <font class="charliteral">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</font>; 00215 <font class="keywordflow">continue</font>; 00216 <font class="keywordflow">case</font> <font class="charliteral">'n'</font>: 00217 *to++ = <font class="charliteral">'<'</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">'>'</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">'<'</font>; 00227 *to++ = <font class="charliteral">'i'</font>; 00228 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00232 *to++ = <font class="charliteral">'/'</font>; 00233 *to++ = <font class="charliteral">'i'</font>; 00234 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00238 *to++ = <font class="charliteral">'b'</font>; 00239 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00243 *to++ = <font class="charliteral">'/'</font>; 00244 *to++ = <font class="charliteral">'b'</font>; 00245 *to++ = <font class="charliteral">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</font>; 00283 *to++ = <font class="charliteral">'u'</font>; 00284 *to++ = <font class="charliteral">'>'</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">'<'</font>; 00288 *to++ = <font class="charliteral">'/'</font>; 00289 *to++ = <font class="charliteral">'u'</font>; 00290 *to++ = <font class="charliteral">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</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(&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">'<'</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">'>'</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">'<'</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">'>'</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">'<'</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">'>'</font>; 00380 <font class="keywordflow">continue</font>; 00381 <font class="keywordflow">case</font> <font class="charliteral">'t'</font>: 00382 *to++ = <font class="charliteral">'<'</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">'>'</font>; 00388 <font class="keywordflow">continue</font>; 00389 <font class="keywordflow">case</font> <font class="charliteral">'S'</font>: 00390 *to++ = <font class="charliteral">'<'</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">'>'</font>; 00411 <font class="keywordflow">continue</font>; 00412 <font class="keywordflow">case</font> <font class="charliteral">'s'</font>: 00413 *to++ = <font class="charliteral">'<'</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">'>'</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">'<'</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">'>'</font>; 00434 <font class="keywordflow">continue</font>; 00435 <font class="keywordflow">case</font> <font class="charliteral">'p'</font>: 00436 *to++ = <font class="charliteral">'<'</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">'>'</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 < 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>