diff options
Diffstat (limited to 'doc/api-documentation/html/utf8greekaccents_8cpp-source.html')
-rw-r--r-- | doc/api-documentation/html/utf8greekaccents_8cpp-source.html | 266 |
1 files changed, 266 insertions, 0 deletions
diff --git a/doc/api-documentation/html/utf8greekaccents_8cpp-source.html b/doc/api-documentation/html/utf8greekaccents_8cpp-source.html new file mode 100644 index 0000000..578e0ba --- /dev/null +++ b/doc/api-documentation/html/utf8greekaccents_8cpp-source.html @@ -0,0 +1,266 @@ +<!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>utf8greekaccents.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>utf8greekaccents.cpp</h1><div class="fragment"><pre>00001 <font class="comment">/******************************************************************************</font> +00002 <font class="comment"> *</font> +00003 <font class="comment"> * UTF8GreekAccents - SWFilter decendant to remove UTF-8 Greek accents</font> +00004 <font class="comment"> *</font> +00005 <font class="comment"> */</font> +00006 +00007 +00008 <font class="preprocessor">#include <stdlib.h></font> +00009 <font class="preprocessor">#include <stdio.h></font> +00010 <font class="preprocessor">#include <utf8greekaccents.h></font> +00011 +00012 +00013 <font class="keyword">const</font> <font class="keywordtype">char</font> UTF8GreekAccents::on[] = <font class="stringliteral">"On"</font>; +00014 <font class="keyword">const</font> <font class="keywordtype">char</font> UTF8GreekAccents::off[] = <font class="stringliteral">"Off"</font>; +00015 <font class="keyword">const</font> <font class="keywordtype">char</font> UTF8GreekAccents::optName[] = <font class="stringliteral">"Greek Accents"</font>; +00016 <font class="keyword">const</font> <font class="keywordtype">char</font> UTF8GreekAccents::optTip[] = <font class="stringliteral">"Toggles Greek Accents"</font>; +00017 +00018 UTF8GreekAccents::UTF8GreekAccents() { +00019 option = <font class="keyword">true</font>; +00020 options.push_back(on); +00021 options.push_back(off); +00022 } +00023 +00024 UTF8GreekAccents::~UTF8GreekAccents(){}; +00025 +00026 <font class="keywordtype">void</font> UTF8GreekAccents::setOptionValue(<font class="keyword">const</font> <font class="keywordtype">char</font> *ival) +00027 { +00028 option = (!stricmp(ival, on)); +00029 } +00030 +00031 <font class="keyword">const</font> <font class="keywordtype">char</font> *UTF8GreekAccents::getOptionValue() +00032 { +00033 <font class="keywordflow">return</font> (option) ? on:off; +00034 } +00035 +00036 <font class="keywordtype">char</font> UTF8GreekAccents::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) +00037 { +00038 <font class="keywordflow">if</font> (!option) { +00039 <font class="keywordtype">unsigned</font> <font class="keywordtype">char</font> *to, *from; +00040 +00041 to = (<font class="keywordtype">unsigned</font> <font class="keywordtype">char</font>*)text; +00042 <font class="keywordflow">for</font> (from = (<font class="keywordtype">unsigned</font> <font class="keywordtype">char</font>*)text; *from; from++) { +00043 <font class="comment">//first just remove combining characters</font> +00044 <font class="keywordflow">if</font> (*from == 0xE2 && *(from + 1) == 0x80 && *(from + 2) == 0x99) +00045 from += 2; +00046 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xCC && *(from + 1)) { +00047 <font class="keywordflow">if</font> (*(from + 1) == 0x80 || *(from + 1) == 0x81 || *(from + 1) == 0x82 || *(from + 1) == 0x88 || *(from + 1) == 0x93 || *(from + 1) == 0x94) +00048 from++; +00049 } +00050 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xCD && *(from + 1) == 0xBA) +00051 from++; +00052 <font class="comment">//now converted pre-composed characters to their alphabetic bases, discarding the accents</font> +00053 +00054 <font class="comment">//Greek</font> +00055 <font class="comment">//capital alpha</font> +00056 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0x86)) { +00057 *to++ = 0xCE; +00058 *to++ = 0x91; +00059 from++; +00060 } +00061 <font class="comment">//capital epsilon</font> +00062 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0x88)) { +00063 *to++ = 0xCE; +00064 *to++ = 0x95; +00065 from++; +00066 } +00067 <font class="comment">//capital eta</font> +00068 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0x89)) { +00069 *to++ = 0xCE; +00070 *to++ = 0x97; +00071 from++; +00072 } +00073 <font class="comment">//capital iota</font> +00074 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && (*(from + 1) == 0x8A || *(from + 1) == 0xAA))) { +00075 *to++ = 0xCE; +00076 *to++ = 0x99; +00077 from++; +00078 } +00079 <font class="comment">//capital omicron</font> +00080 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0x8C)) { +00081 *to++ = 0xCE; +00082 *to++ = 0x9F; +00083 from++; +00084 } +00085 <font class="comment">//capital upsilon</font> +00086 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && (*(from + 1) == 0x8E || *(from + 1) == 0xAB))) { +00087 *to++ = 0xCE; +00088 *to++ = 0xA5; +00089 from++; +00090 } +00091 <font class="comment">//capital omega</font> +00092 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0x8F)) { +00093 *to++ = 0xCE; +00094 *to++ = 0xA9; +00095 from++; +00096 } +00097 +00098 <font class="comment">//alpha</font> +00099 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0xAC)) { +00100 *to++ = 0xCE; +00101 *to++ = 0xB1; +00102 from++; +00103 } +00104 <font class="comment">//epsilon</font> +00105 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0xAD)) { +00106 *to++ = 0xCE; +00107 *to++ = 0xB5; +00108 from++; +00109 } +00110 <font class="comment">//eta</font> +00111 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0xAE)) { +00112 *to++ = 0xCE; +00113 *to++ = 0xB7; +00114 from++; +00115 } +00116 <font class="comment">//iota</font> +00117 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0xAF) || (*from == 0xCF && *(from + 1) == 0x8A)) { +00118 *to++ = 0xCE; +00119 *to++ = 0xB9; +00120 from++; +00121 } +00122 <font class="comment">//omicron</font> +00123 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCF && *(from + 1) == 0x8C)) { +00124 *to++ = 0xCE; +00125 *to++ = 0xBF; +00126 from++; +00127 } +00128 <font class="comment">//upsilon</font> +00129 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCE && *(from + 1) == 0x88) || (*from == 0xCF && (*(from + 1) == 0x8B || *(from + 1) == 0x8D))) { +00130 *to++ = 0xCF; +00131 *to++ = 0x85; +00132 from++; +00133 } +00134 <font class="comment">//omega</font> +00135 <font class="keywordflow">else</font> <font class="keywordflow">if</font> ((*from == 0xCF && *(from + 1) == 0x8E)) { +00136 *to++ = 0xCF; +00137 *to++ = 0x89; +00138 from++; +00139 } +00140 +00141 <font class="comment">//Extended Greek</font> +00142 <font class="comment">//capital alpha</font> +00143 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBC || *(from + 1) == 0xBE) && *(from + 2) >= 0x88 && *(from + 2) <= 0x8F) || (*(from + 1) == 0xBE && *(from + 2) >= 0xB8 && *(from + 2) <= 0xBC)) { +00144 *to++ = 0xCE; +00145 *to++ = 0x91; +00146 from+=2; +00147 } +00148 <font class="comment">//capital epsilon</font> +00149 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBC && *(from + 2) >= 0x98 && *(from + 2) <= 0x9D) || (*(from + 1) == 0xBF && (*(from + 2) == 0x88 || *(from + 2) == 0x89)))) { +00150 *to++ = 0xCE; +00151 *to++ = 0x95; +00152 from+=2; +00153 } +00154 <font class="comment">//capital eta</font> +00155 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBC && *(from + 2) >= 0xA8 && *(from + 2) <= 0xAF) || (*(from + 1) == 0xBE && *(from + 2) >= 0x98 && *(from + 2) <= 0x9F) || (*(from + 1) == 0xBF && *(from + 2) >= 0x8A && *(from + 2) <= 0x8C))) { +00156 *to++ = 0xCE; +00157 *to++ = 0x97; +00158 from+=2; +00159 } +00160 <font class="comment">//capital iota</font> +00161 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBC && *(from + 2) >= 0xB8 && *(from + 2) <= 0xBF) || (*(from + 1) == 0xBF && *(from + 2) >= 0x98 && *(from + 2) <= 0x9B))) { +00162 *to++ = 0xCE; +00163 *to++ = 0x99; +00164 from+=2; +00165 } +00166 <font class="comment">//capital omicron</font> +00167 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBD && *(from + 2) >= 0x88 && *(from + 2) <= 0x8D) || (*(from + 1) == 0xBF && *(from + 2) == 0xB8 || *(from + 2) == 0xB9))) { +00168 *to++ = 0xCE; +00169 *to++ = 0x9F; +00170 from+=2; +00171 } +00172 <font class="comment">//capital upsilon</font> +00173 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBD && *(from + 2) >= 0x99 && *(from + 2) <= 0x9F) || (*(from + 1) == 0xBF && *(from + 2) >= 0xA8 && *(from + 2) <= 0xAB))) { +00174 *to++ = 0xCE; +00175 *to++ = 0xA5; +00176 from+=2; +00177 } +00178 <font class="comment">//capital omega</font> +00179 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && (((*(from + 1) == 0xBD || *(from + 1) == 0xBE) && *(from + 2) >= 0xA8 && *(from + 2) <= 0xAF) || (*(from + 1) == 0xBF && *(from + 2) >= 0xBA && *(from + 2) <= 0xBC))) { +00180 *to++ = 0xCE; +00181 *to++ = 0xA9; +00182 from+=2; +00183 } +00184 <font class="comment">//capital rho</font> +00185 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && *(from + 1) == 0xBF && *(from + 2) == 0xAC) { +00186 *to++ = 0xCE; +00187 *to++ = 0xA1; +00188 from+=2; +00189 } +00190 +00191 <font class="comment">//alpha</font> +00192 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBC || *(from + 1) == 0xBE) && *(from + 2) >= 0x80 && *(from + 2) <= 0x87) || (*(from + 1) == 0xBD && (*(from + 2) == 0xB0 || *(from + 2) == 0xB1)) || (*(from + 1) == 0xBE && *(from + 2) >= 0xB0 && *(from + 2) <= 0xB7)) { +00193 *to++ = 0xCE; +00194 *to++ = 0xB1; +00195 from+=2; +00196 } +00197 <font class="comment">//epsilon</font> +00198 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBC && *(from + 2) >= 0x90 && *(from + 2) <= 0x95) || (*(from + 1) == 0xBD && (*(from + 2) == 0xB2 || *(from + 2) == 0xB3)))) { +00199 *to++ = 0xCE; +00200 *to++ = 0xB5; +00201 from+=2; +00202 } +00203 <font class="comment">//eta</font> +00204 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBE && *(from + 2) >= 0x90 && *(from + 2) <= 0x97) || (*(from + 1) == 0xBC && *(from + 2) >= 0xA0 && *(from + 2) <= 0xA7) || (*(from + 1) == 0xBF && *(from + 2) >= 0x82 && *(from + 2) <= 0x87) || (*(from + 1) == 0xBD && (*(from + 2) == 0xB4 || *(from + 2) == 0xB5)))) { +00205 *to++ = 0xCE; +00206 *to++ = 0xB7; +00207 from+=2; +00208 } +00209 <font class="comment">//iota</font> +00210 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBC && *(from + 2) >= 0xB0 && *(from + 2) <= 0xB7) || (*(from + 1) == 0xBD && (*(from + 2) == 0xB6 || *(from + 2) == 0xB7)) || (*(from + 1) == 0xBF && *(from + 2) >= 0x90 && *(from + 2) <= 0x97))) { +00211 *to++ = 0xCE; +00212 *to++ = 0xB9; +00213 from+=2; +00214 } +00215 <font class="comment">//omicron</font> +00216 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && (*(from + 1) == 0xBD && ((*(from + 2) >= 0x80 && *(from + 2) <= 0x85) || (*(from + 2) == 0xB8 || *(from + 2) == 0xB9)))) { +00217 *to++ = 0xCE; +00218 *to++ = 0xBF; +00219 from+=2; +00220 } +00221 <font class="comment">//upsilon</font> +00222 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBD && ((*(from + 2) >= 0x90 && *(from + 2) <= 0x97) || *(from + 2) == 0xBA || *(from + 2) == 0xBB)) || (*(from + 1) == 0xBF && ((*(from + 2) >= 0xA0 && *(from + 2) <= 0xA3) || *(from + 2) == 0xA6 || *(from + 2) == 0xA7)))) { +00223 *to++ = 0xCF; +00224 *to++ = 0x85; +00225 from+=2; +00226 } +00227 <font class="comment">//omega</font> +00228 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && ((*(from + 1) == 0xBD && ((*(from + 2) >= 0xA0 && *(from + 2) <= 0xA7) || (*(from + 2) == 0xBC || *(from + 2) == 0xBD))) || (*(from + 1) == 0xBE && (*(from + 2) >= 0xA0 && *(from + 2) <= 0xA7)) || (*(from + 1) == 0xBF && *(from + 2) >= 0xB2 && *(from + 2) <= 0xB7))) { +00229 *to++ = 0xCF; +00230 *to++ = 0x89; +00231 from+=2; +00232 } +00233 <font class="comment">//rho</font> +00234 <font class="keywordflow">else</font> <font class="keywordflow">if</font> (*from == 0xE1 && *(from + 1) == 0xBF && (*(from + 2) == 0xA4 && *(from + 2) == 0xA5)) { +00235 *to++ = 0xCF; +00236 *to++ = 0x81; +00237 from+=2; +00238 } +00239 <font class="keywordflow">else</font> +00240 *to++ = *from; +00241 } +00242 *to++ = 0; +00243 *to = 0; +00244 } +00245 <font class="keywordflow">return</font> 0; +00246 } +00247 +00248 +00249 +00250 +00251 +00252 +</pre></div><hr><address align="right"><small>Generated on Thu Jun 20 22:13:01 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> |