#include <gbfhtmlhref.h>
Inheritance diagram for GBFHTMLHREF:
Public Methods | |
GBFHTMLHREF () | |
Protected Methods | |
virtual bool | handleToken (char **buf, const char *token, DualStringMap &userData) |
This function is called for every token encountered in the input text. More... |
Definition at line 26 of file gbfhtmlhref.h.
|
This function is called for every token encountered in the input text.
Reimplemented from SWBasicFilter. Definition at line 60 of file gbfhtmlhref.cpp. References SWBasicFilter::pushString().
00060 { 00061 const char *tok; 00062 00063 if (!substituteToken(buf, token)) { 00064 if (!strncmp(token, "WG", 2) || !strncmp(token, "WH", 2)) { // strong's numbers 00065 pushString(buf, " <small><em><<a href=\"#"); 00066 for (tok = token+1; *tok; tok++) 00067 //if(token[i] != '\"') 00068 *(*buf)++ = *tok; 00069 *(*buf)++ = '\"'; 00070 *(*buf)++ = '>'; 00071 for (tok = token + 2; *tok; tok++) 00072 //if(token[i] != '\"') 00073 *(*buf)++ = *tok; 00074 pushString(buf, "</a>></em></small>"); 00075 } 00076 00077 else if (!strncmp(token, "WTG", 3) || !strncmp(token, "WTH", 3)) { // strong's numbers tense 00078 pushString(buf, " <small><em>(<A HREF=\"#"); 00079 for (tok = token + 2; *tok; tok++) 00080 if(*tok != '\"') 00081 *(*buf)++ = *tok; 00082 *(*buf)++ = '\"'; 00083 *(*buf)++ = '>'; 00084 for (tok = token + 3; *tok; tok++) 00085 if(*tok != '\"') 00086 *(*buf)++ = *tok; 00087 pushString(buf, "</a>)</em></small>"); 00088 } 00089 00090 else if (!strncmp(token, "WT", 2) && strncmp(token, "WTH", 3) && strncmp(token, "WTG", 3)) { // morph tags 00091 pushString(buf, " <small><em>(<a href=\"M"); 00092 for (tok = token + 2; *tok; tok++) 00093 if(*tok != '\"') 00094 *(*buf)++ = *tok; 00095 *(*buf)++ = '\"'; 00096 *(*buf)++ = '>'; 00097 for (tok = token + 2; *tok; tok++) 00098 if(*tok != '\"') 00099 *(*buf)++ = *tok; 00100 pushString(buf, "</a>)</em></small>"); 00101 } 00102 00103 else if (!strncmp(token, "RX", 2)) { 00104 pushString(buf, "<a href=\""); 00105 for (tok = token + 3; *tok; tok++) { 00106 if(*tok != '<' && *tok+1 != 'R' && *tok+2 != 'x') { 00107 *(*buf)++ = *tok; 00108 } 00109 else { 00110 break; 00111 } 00112 } 00113 *(*buf)++ = '\"'; 00114 *(*buf)++ = '>'; 00115 } 00116 00117 else if (!strncmp(token, "RB", 2)) { 00118 pushString(buf, "<i>"); 00119 userData["hasFootnotePreTag"] = "true"; 00120 } 00121 00122 else if (!strncmp(token, "RF", 2)) { 00123 if(userData["hasFootnotePreTag"] == "true") { 00124 userData["hasFootnotePreTag"] = "false"; 00125 pushString(buf, "</i> "); 00126 } 00127 pushString(buf, "<font color=\"#800000\"><small> ("); 00128 } 00129 00130 else if (!strncmp(token, "FN", 2)) { 00131 pushString(buf, "<font face=\""); 00132 for (tok = token + 2; *tok; tok++) 00133 if(*tok != '\"') 00134 *(*buf)++ = *tok; 00135 *(*buf)++ = '\"'; 00136 *(*buf)++ = '>'; 00137 } 00138 00139 else if (!strncmp(token, "CA", 2)) { // ASCII value 00140 *(*buf)++ = (char)atoi(&token[2]); 00141 } 00142 00143 else { 00144 return false; 00145 } 00146 } 00147 return true; 00148 } |