81 {
"iexcl",
"\241", 0 },
82 {
"cent",
"\242", 0 },
83 {
"pound",
"\243", 0 },
84 {
"curren",
"\244", 0 },
86 {
"brvbar",
"\246", 0 },
87 {
"sect",
"\247", 0 },
89 {
"copy",
"\251", 0 },
90 {
"ordf",
"\252", 0 },
91 {
"laquo",
"\253", 0 },
95 {
"macr",
"\257", 0 },
97 {
"plusmn",
"\261", 0 },
98 {
"sup2",
"\262", 0 },
99 {
"sup3",
"\263", 0 },
100 {
"acute",
"\264", 0 },
101 {
"micro",
"\265", 0 },
102 {
"para",
"\266", 0 },
103 {
"middot",
"\267", 0 },
104 {
"cedil",
"\270", 0 },
105 {
"sup1",
"\271", 0 },
106 {
"ordm",
"\272", 0 },
107 {
"raquo",
"\273", 0 },
108 {
"frac14",
"\274", 0 },
109 {
"frac12",
"\275", 0 },
110 {
"frac34",
"\276", 0 },
111 {
"iquest",
"\277", 0 },
112 {
"Agrave",
"\300", 0 },
113 {
"Aacute",
"\301", 0 },
114 {
"Acirc",
"\302", 0 },
115 {
"Atilde",
"\303", 0 },
116 {
"Auml",
"\304", 0 },
117 {
"Aring",
"\305", 0 },
118 {
"AElig",
"\306", 0 },
119 {
"Ccedil",
"\307", 0 },
120 {
"Egrave",
"\310", 0 },
121 {
"Eacute",
"\311", 0 },
122 {
"Ecirc",
"\312", 0 },
123 {
"Euml",
"\313", 0 },
124 {
"Igrave",
"\314", 0 },
125 {
"Iacute",
"\315", 0 },
126 {
"Icirc",
"\316", 0 },
127 {
"Iuml",
"\317", 0 },
128 {
"ETH",
"\320", 0 },
129 {
"Ntilde",
"\321", 0 },
130 {
"Ograve",
"\322", 0 },
131 {
"Oacute",
"\323", 0 },
132 {
"Ocirc",
"\324", 0 },
133 {
"Otilde",
"\325", 0 },
134 {
"Ouml",
"\326", 0 },
135 {
"times",
"\327", 0 },
136 {
"Oslash",
"\330", 0 },
137 {
"Ugrave",
"\331", 0 },
138 {
"Uacute",
"\332", 0 },
139 {
"Ucirc",
"\333", 0 },
140 {
"Uuml",
"\334", 0 },
141 {
"Yacute",
"\335", 0 },
142 {
"THORN",
"\336", 0 },
143 {
"szlig",
"\337", 0 },
144 {
"agrave",
"\340", 0 },
145 {
"aacute",
"\341", 0 },
146 {
"acirc",
"\342", 0 },
147 {
"atilde",
"\343", 0 },
148 {
"auml",
"\344", 0 },
149 {
"aring",
"\345", 0 },
150 {
"aelig",
"\346", 0 },
151 {
"ccedil",
"\347", 0 },
152 {
"egrave",
"\350", 0 },
153 {
"eacute",
"\351", 0 },
154 {
"ecirc",
"\352", 0 },
155 {
"euml",
"\353", 0 },
156 {
"igrave",
"\354", 0 },
157 {
"iacute",
"\355", 0 },
158 {
"icirc",
"\356", 0 },
159 {
"iuml",
"\357", 0 },
160 {
"eth",
"\360", 0 },
161 {
"ntilde",
"\361", 0 },
162 {
"ograve",
"\362", 0 },
163 {
"oacute",
"\363", 0 },
164 {
"ocirc",
"\364", 0 },
165 {
"otilde",
"\365", 0 },
166 {
"ouml",
"\366", 0 },
167 {
"divide",
"\367", 0 },
168 {
"oslash",
"\370", 0 },
169 {
"ugrave",
"\371", 0 },
170 {
"uacute",
"\372", 0 },
171 {
"ucirc",
"\373", 0 },
172 {
"uuml",
"\374", 0 },
173 {
"yacute",
"\375", 0 },
174 {
"thorn",
"\376", 0 },
175 {
"yuml",
"\377", 0 },
183#define ESC_HASH_SIZE (sizeof(gEscSequences)/sizeof(gEscSequences[0])+7)
202 while ((
c = *
zName) != 0) {
233 if (cnt > max) max =
cnt;
235 printf(
"Longest chain=%d avg=%g slots=%d empty=%d (%g%%)\n",
236 max, (
double)
sum/(
double)notempty, i, i-notempty,
237 100.0*(i-notempty)/(
double)i);
330 if (z[
from] ==
'&') {
331 if (z[
from+1] ==
'#') {
335 v =
v*10 + z[i] -
'0';
338 if (z[i] ==
';') { i++; }
343 if (
v >= 0x80 &&
v < 0xa0) {
355 while (z[i] &&
isalnum(z[i])) ++i;
364 for (
j = 0;
p->fValue[
j]; ++
j) z[
to++] =
p->fValue[
j];
366 if (
c ==
';')
from++;
376 }
else if (((
unsigned char) z[
from]) >= 0x80 &&
377 ((
unsigned char) z[
from]) < 0xa0) {
415 while ((
c = *
zName) != 0) {
451 if (cnt > max) max =
cnt;
454 printf(
"longest chain=%d avg=%g slots=%d empty=%d (%g%%)\n",
455 max, (
double)
sum/(
double)notempty, i, i-notempty,
456 100.0*(i-notempty)/(
double)i);
512 pNew->fElId =
p->fElId;
514 pNew->fPPrev =
p->fPPrev;
515 if (
p->fPPrev)
p->fPPrev->fPNext =
pNew;
532 case '\t':
return (
iCol | 7) + 1;
533 default:
return iCol+1;
586 static char null[1] = {
"" };
595 while ((
c = z[
n]) != 0) {
597 if (
c == -64 && z[
n+1] == -128) {
617 zEnd =
"</noscript>";
620 zEnd =
"</noframes>";
626 if (
pScr->fNStart < 0) {
631 for (i =
n ; z[i]; i++) {
632 if (z[i] ==
'\'' || z[i] ==
'"') {
634 }
else if (z[i] ==
'\n') {
637 if (z[i] ==
'<' && z[i+1] ==
'/' &&
639 if (
zEnd[3] ==
'c' && ((
sqcnt % 2) == 1))
continue;
640 pScr->fNScript = i -
n;
648 pScr->fNScript = i -
n;
690 else if (
isspace((
unsigned char)
c)) {
694 (
c = z[
n+i]) != 0 &&
isspace((
unsigned char)
c) &&
c !=
'\n' &&
c !=
'\r';
696 if (
c ==
'\r' && z[
n+i+1] ==
'\n') ++i;
702 if (
c ==
'\n' ||
c ==
'\r') {
710 for (
j = 0;
j < i;
j++) {
720 (!
isalpha(z[
n+1]) && z[
n+1] !=
'/' && z[
n+1] !=
'!' && z[
n+1] !=
'?')) {
723 for (i = 1; (
c = z[
n+i]) != 0 && !
isspace((
unsigned char)
c) &&
c !=
'<'; i++) {}
728 if (i >= 10 &&
strncasecmp(&z[
n],
"</listing>", 10) == 0) {
742 if (i >= 11 &&
strncasecmp(&z[
n],
"</textarea>", 11) == 0) {
767 }
else if (
strncmp(&z[
n],
"<!--", 4) == 0) {
770 for (i = 4; z[
n+i]; i++) {
771 if (z[
n+i] ==
'-' &&
strncmp(&z[
n+i],
"-->", 3) == 0)
break;
789 for (
j = 0;
j < i+3;
j++) {
804 (
c = z[
n+i]) != 0 && !
isspace((
unsigned char)
c) &&
c !=
'>' && (i < 2 ||
c !=
'/');
811 while (
isspace((
unsigned char)z[
n+i])) ++i;
812 while ((
c = z[
n+i]) != 0 &&
c !=
'>' && (
c !=
'/' || z[
n+i+1] !=
'>')) {
816 while ((
c = z[
n+i+
j]) != 0 && !
isspace((
unsigned char)
c) &&
c !=
'>' &&
817 c !=
'=' && (
c !=
'/' || z[
n+i+
j+1] !=
'>')) ++
j;
840 if (
c ==
'\'' ||
c ==
'"') {
850 for (
j = 0; (
c = z[
n+i+
j]) != 0 && !
isspace((
unsigned char)
c) &&
c !=
'>';
j++) {}
866 for (
j = 0;
j < i+1;
j++) {
884 if (
pMap == 0)
continue;
920 switch (
pMap->fType) {
1080 char *tmp =
new char[
fNAlloc];
1129 if (
pElem == 0)
return 0;
1137 if (
pElem == 0)
return 0;
1143 if (
pMap == 0)
return 0;
1148 if (
pElem == 0)
return 0;
1162 if (
pElem == 0)
return 1;
1205 if (
argv[2][0] ==
'b') {
1206 if (!
istxt)
return 1;
1207 if (i == 0 || i ==
l)
return 1;
1216 if ((!
istxt) || (!
l) || (!i)) {
1219 RemoveElements(
p,
p);
1223 RemoveElements(
p,
p);
1231 cp[--
p->fCount] = 0;
1232 if (
ins.i-- <= 0)
ins.i = 0;
1236 if (
c ==
'\n' ||
c ==
'\r') {
1245 if (
text->fZText == (
char*) ((&
text->fZText)+1)) {
1259 delete[]
text->fZText;
1315 return pMap->fZName;
1327 static char zBuf[200];
1350 if (
block->fN > 0) {
1352 if (
n > 150)
n = 150;
1368 for (
j = 1 ;
j <
p->fCount;
j += 2) {
1398 for (i = 0; i + 1 <
pElem->fCount; i += 2) {
1399 str->Append(
pElem->fArgv[i]);
1401 str->Append(
pElem->fArgv[i+1]);
1411 static char zBuf[200];
1468 str->Append(
"{ Text \"");
1470 str->Append(
"\" } ");
1480 str->Append(
"Unknown ");
1484 str->Append(
"{ Markup ");
1493 for (i = 0; i <
p->fCount; ++i) {
1513 for (
p = first;
p != last;
p =
p->fPNext) {
1516 const char *z =
block->fZ;
1518 if (
n == 0 || z == 0) {
1522 printf(
"Block flags=%02x cnt=%d x=%d..%d y=%d..%d z=\"%.*s\"\n",
1526 printf(
"Token font=%2d color=%2d align=%d flags=0x%04x name=%s\n",
1527 p->fStyle.fFont,
p->fStyle.fColor,
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
void HtmlTranslateEscapes(char *z)
Translate escape sequences in the string "z".
void ToLower(char *z)
Convert a string to all lower-case letters.
static int EscHash(const char *zName)
static int HtmlHash(const char *zName)
static int NextColumn(int iCol, char c)
Compute the new column index following the given character.
static SHtmlTokenMap_t * gApMap[HTML_MARKUP_HASH_SIZE]
void HtmlTranslateEscapes(char *z)
Translate escape sequences in the string "z".
SHtmlTokenMap_t HtmlMarkupMap[]
static struct SgEsc_t gEscSequences[]
static void HtmlHashInit(void)
static struct SgEsc_t * gApEscHash[(sizeof(gEscSequences)/sizeof(gEscSequences[0])+7)]
#define HTML_MARKUP_HASH_SIZE
#define HTML_MARKUP_COUNT
#define O_HtmlImageMarkup
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Option_t Option_t TPoint TPoint const char text
TGString * ListTokens(TGHtmlElement *p, TGHtmlElement *pEnd)
Return all tokens between the two elements as a string list.
void AppToken(TGHtmlElement *pNew, TGHtmlElement *p, int offs)
Insert token pNew before token p.
int TextInsertCmd(int argc, char **argv)
Insert text into text token, or break token into two text tokens.
void TokenizerAppend(const char *text)
Append text to the tokenizer engine.
void AddStyle(TGHtmlElement *p)
This routine adds information to the input texts that doesn't change when the display is resized or w...
virtual char * ProcessScript(TGHtmlScript *)
TGHtmlElement * InsertToken(TGHtmlElement *pToken, char *zType, char *zArgs, int offs)
This routine takes a text representation of a token, converts it into an TGHtmlElement object and ins...
const char * TypeToName(int type)
Convert a type into a symbolic name.
int Tokenize()
Process as much of the input HTML as possible.
int NameToType(char *zType)
Convert a markup name into a type integer.
void AppendArglist(TGString *str, TGHtmlMarkupElement *pElem)
Append all the arguments of the given markup to the given TGString.
void AppendElement(TGHtmlElement *pElem)
Append the given TGHtmlElement to the tokenizers list of elements.
virtual int ProcessToken(TGHtmlElement *, const char *, int)
TGHtmlMarkupElement * MakeMarkupEntry(int objType, int type, int argc, int arglen[], char *argv[])
Make one markup entry.
SHtmlTokenMap_t * GetMarkupMap(int n)
Returns token map at location n.
SHtmlTokenMap_t * NameToPmap(char *zType)
Returns token map matching zType name.
char * DumpToken(TGHtmlElement *p)
For debugging purposes, print information about a token.
char * GetTokenName(TGHtmlElement *p)
Returns token name of html element p.
int GetIndex(const char *zIndex, TGHtmlElement **ppToken, int *pIndex)
This routine decodes a complete index specification.
void PrintList(TGHtmlElement *first, TGHtmlElement *last)
Print a list of tokens.
void AddFormInfo(TGHtmlElement *p)
Add the DOM control information for form elements.
TGString wraps a TString and adds some graphics routines like drawing, size of string on screen depen...
SHtmlTokenMap_t * fPCollide
static uint64_t sum(uint64_t i)