noMoreData = false;
brokenComments = false;
brokenServer = false;
- lineno = 0;
+ m_lineNumber = 0;
scriptStartLineno = 0;
tagStartLineno = 0;
m_state.setForceSynchronous(false);
if (state.skipLF()) {
state.setSkipLF(false);
if (*list == '\n') {
- list.advance(0);
+ list.advance();
continue;
}
}
if (*list == '\r')
state.setSkipLF(true);
- list.advance(0);
+ list.advance();
} else {
state.setDiscardLF(false);
*dest++ = *list;
- list.advance(0);
+ list.advance();
}
}
ASSERT(!state.hasTagState());
ASSERT(state.inXmp() + state.inTextArea() + state.inTitle() + state.inStyle() + state.inScript() == 1 );
if (state.inScript())
- scriptStartLineno = lineno;
+ scriptStartLineno = m_lineNumber;
if (state.inComment())
state = parseComment(src, state);
continue;
}
if (scriptCodeResync && !tquote && ch == '>') {
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
scriptCodeSize = scriptCodeResync-1;
scriptCodeResync = 0;
scriptCode[ scriptCodeSize ] = scriptCode[ scriptCodeSize + 1 ] = 0;
state.setEscaped(!state.escaped() && ch == '\\');
if (!scriptCodeResync && (state.inTextArea() || state.inTitle()) && !src.escaped() && ch == '&') {
UChar* scriptCodeDest = scriptCode+scriptCodeSize;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
state = parseEntity(src, scriptCodeDest, state, m_cBufferPos, true, false);
scriptCodeSize = scriptCodeDest-scriptCode;
} else {
scriptCode[scriptCodeSize++] = *src;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
}
endCharsCount = 4;
}
if (handleBrokenComments || endCharsCount > 1) {
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
if (!(state.inTitle() || state.inScript() || state.inXmp() || state.inTextArea() || state.inStyle())) {
checkScriptBuffer();
scriptCode[scriptCodeSize] = 0;
return state; // Finished parsing comment
}
}
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
return state;
scriptCode[scriptCodeSize++] = *src;
if (*src == '>' &&
scriptCodeSize > 1 && scriptCode[scriptCodeSize-2] == '%') {
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
state.setInServer(false);
scriptCodeSize = 0;
return state; // Finished parsing server include
}
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
return state;
}
else if (chbegin == '>' && (!tquote || oldchar == '?')) {
// We got a '?>' sequence
state.setInProcessingInstruction(false);
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
state.setDiscardLF(true);
return state; // Finished parsing comment!
}
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
oldchar = chbegin;
}
if (state.skipLF()) {
state.setSkipLF(false);
if (cc == '\n') {
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
continue;
}
}
*dest++ = '\n';
} else
*dest++ = cc;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
return state;
case SearchEntity:
if(cc == '#') {
cBuffer[cBufferPos++] = cc;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
state.setEntityState(NumericSearch);
}
else
case NumericSearch:
if (cc == 'x' || cc == 'X') {
cBuffer[cBufferPos++] = cc;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
state.setEntityState(Hexadecimal);
} else if (cc >= '0' && cc <= '9')
state.setEntityState(Decimal);
digit = (cc - 'A' + 10) & 0xF; // handle both upper and lower case without a branch
EntityUnicodeValue = EntityUnicodeValue * 16 + digit;
cBuffer[cBufferPos++] = cc;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
if (cBufferPos == 10)
state.setEntityState(SearchSemicolon);
EntityUnicodeValue = EntityUnicodeValue * 10 + (cc - '0');
cBuffer[cBufferPos++] = cc;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
if (cBufferPos == 9)
state.setEntityState(SearchSemicolon);
}
cBuffer[cBufferPos++] = cc;
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
if (cBufferPos == 9)
state.setEntityState(SearchSemicolon);
if (EntityUnicodeValue > 0 && EntityUnicodeValue <= 0x10FFFF) {
if (!inViewSourceMode()) {
if (*src == ';')
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
if (EntityUnicodeValue <= 0xFFFF) {
checkBuffer();
src.push(fixUpChar(EntityUnicodeValue));
dest += cBufferPos;
if (*src == ';') {
*dest++ = ';';
- src.advance(lineNumberPtr());
+ src.advance(m_lineNumber);
}
}
} else {
unsigned cBufferPos = m_cBufferPos;
- int* lineNoPtr = lineNumberPtr();
bool lastIsSlash = false;
while (!src.isEmpty()) {
kdDebug( 6036 ) << "Found comment" << endl;
#endif
// Found '<!--' sequence
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
dest = buffer; // ignore the previous part of this tag
state.setInComment(true);
state.setTagState(NoTag);
// can handle this case. Only do this in quirks mode. -dwh
if (!src.isEmpty() && *src == '>' && m_doc->inCompatMode()) {
state.setInComment(false);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
if (!src.isEmpty())
// cuts off high bits, which is okay
cBuffer[cBufferPos++] = *src;
}
// cuts off high bits, which is okay
cBuffer[cBufferPos++] = *src;
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
break;
}
else
cBuffer[cBufferPos++] = curchar + ('a' - 'A');
else
cBuffer[cBufferPos++] = curchar;
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
// Disadvantage: we add the possible rest of the tag
}
if (inViewSourceMode())
currToken.addViewSourceChar(curchar);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
break;
case AttributeName:
else
cBuffer[cBufferPos++] = curchar;
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
if ( cBufferPos == CBUFLEN ) {
cBuffer[cBufferPos] = '\0';
state.setTagState(SearchValue);
if (inViewSourceMode())
currToken.addViewSourceChar(curchar);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
else {
currToken.addAttribute(m_doc, attrName, emptyAtom, inViewSourceMode());
lastIsSlash = curchar == '/';
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
break;
case SearchValue:
state.setTagState(QuotedValue);
if (inViewSourceMode())
currToken.addViewSourceChar(curchar);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
} else
state.setTagState(Value);
}
if (inViewSourceMode())
currToken.addViewSourceChar(curchar);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
break;
case QuotedValue:
// ### attributes like '&{blaa....};' are supposed to be treated as jscript.
if ( curchar == '&' )
{
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
state = parseEntity(src, dest, state, cBufferPos, true, true);
break;
}
tquote = NoQuote;
if (inViewSourceMode())
currToken.addViewSourceChar(curchar);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
break;
}
}
*dest++ = *src;
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
break;
case Value:
// parse Entities
if ( curchar == '&' )
{
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
state = parseEntity(src, dest, state, cBufferPos, true, true);
break;
}
}
*dest++ = *src;
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
break;
case SearchEnd:
if (inViewSourceMode())
currToken.addViewSourceChar(*src);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
if (src.isEmpty()) break;
tquote = NoQuote;
if (*src != '<')
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
if (currToken.tagName == nullAtom) { //stop if tag is unknown
m_cBufferPos = cBufferPos;
searchStopperLen = 7;
State savedState = state;
SegmentedString savedSrc = src;
- long savedLineno = lineno;
+ long savedLineno = m_lineNumber;
state.setInTitle(true);
state = parseSpecial(src, state);
if (state.inTitle() && src.isEmpty()) {
// than a local variable.
state = savedState;
src = savedSrc;
- lineno = savedLineno;
+ m_lineNumber = savedLineno;
scriptCodeSize = 0;
}
}
State state = m_state;
- int* lineNoPtr = lineNumberPtr();
-
while (!src.isEmpty() && (!frame || !frame->loader()->isScheduledLocationChangePending())) {
if (!continueProcessing(processedCount, startTime, state))
break;
state.setSkipLF(false);
if (wasSkipLF && (cc == '\n'))
- src.advance(0);
+ src.advance();
else if (state.needsSpecialWriteHandling()) {
// it's important to keep needsSpecialWriteHandling with the flags this block tests
if (state.hasEntityState())
state = parseTag(src, state);
}
} else if (cc == '&' && !src.escaped()) {
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
state = parseEntity(src, dest, state, m_cBufferPos, true, state.hasTagState());
} else if (cc == '<' && !src.escaped()) {
- tagStartLineno = lineno;
- src.advance(lineNoPtr);
+ tagStartLineno = m_lineNumber;
+ src.advance(m_lineNumber);
state.setStartTag(true);
} else if (cc == '\n' || cc == '\r') {
if (state.discardLF())
// Process this LF
*dest++ = '\n';
if (cc == '\r' && !src.excludeLineNumbers())
- lineno++;
+ m_lineNumber++;
}
/* Check for MS-DOS CRLF sequence */
if (cc == '\r')
state.setSkipLF(true);
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
} else {
state.setDiscardLF(false);
*dest++ = cc;
- src.advance(lineNoPtr);
+ src.advance(m_lineNumber);
}
}
} else if (currToken.tagName == nullAtom) {
currToken.reset();
if (jsProxy)
- jsProxy->setEventHandlerLineno(lineno);
+ jsProxy->setEventHandlerLineno(m_lineNumber);
return 0;
}