int32_t nsMsgBodyHandler::GetNextLine (nsCString &buf) { int32_t length = -1; // length of incoming line or -1 eof int32_t outLength = -1; // length of outgoing line or -1 eof bool eatThisLine = true; nsAutoCString nextLine; while (eatThisLine) { // first, handle the filtering case...this is easy.... if (m_Filtering) length = GetNextFilterLine(nextLine); else { // 3 cases: Offline IMAP, POP, or we are dealing with a news message.... // Offline cases should be same as local mail cases, since we're going // to store offline messages in berkeley format folders. if (m_db) { length = GetNextLocalLine (nextLine); // (2) POP } } if (length < 0) break; // eof in outLength = ApplyTransformations(nextLine, length, eatThisLine, buf); } if (outLength < 0) return -1; // eof out // For non-multipart messages, the entire message minus headers is encoded // ApplyTransformations can only decode a part if (!m_isMultipart && m_base64part) { Base64Decode(buf); m_base64part = false; // And reapply our transformations... outLength = ApplyTransformations(buf, buf.Length(), eatThisLine, buf); } return outLength; }
void PlayerSpaceShip::Draw() { glPushMatrix(); ApplyTransformations(); glRotatef(180, 0, 0, 1);//sortof placeholder rotation DrawWithArrays(); glPopMatrix(); shooterModule.DrawModule(); }
void ImperialTieInterceptor::Draw() { if(isAlive) { glPushMatrix(); ApplyTransformations(); DrawWithArrays(); glPopMatrix(); shooterModule.DrawModule(); } }
void ImperialStarDestroyer::Draw() { if(isAlive) { glPushMatrix(); ApplyTransformations(); DrawWithArrays(); glPopMatrix(); //shooterModule.DrawModule(); } }
/** * This method applies a sequence of transformations to the line. * * It applies the following sequences in order * * Removes headers if the searcher doesn't want them * (sets m_pastHeaders) * * Determines the current MIME type. * (via SniffPossibleMIMEHeader) * * Strips any HTML if the searcher doesn't want it * * Strips non-text parts * * Decodes any base64 part * (resetting part variables: m_base64part, m_pastHeaders, m_partIsHtml, * m_partIsText) * * @param line (in) the current line * @param length (in) the length of said line * @param eatThisLine (out) whether or not to ignore this line * @param buf (inout) if m_base64part, the current part as needed for * decoding; else, it is treated as an out param (a * redundant version of line). * @return the length of the line after applying transformations */ int32_t nsMsgBodyHandler::ApplyTransformations (const nsCString &line, int32_t length, bool &eatThisLine, nsCString &buf) { int32_t newLength = length; eatThisLine = false; if (!m_pastHeaders) // line is a line from the message headers { if (m_stripHeaders) eatThisLine = true; // We have already grabbed all worthwhile information from the headers, // so there is no need to keep track of the current lines buf.Assign(line); SniffPossibleMIMEHeader(buf); m_pastHeaders = buf.IsEmpty() || buf.First() == '\r' || buf.First() == '\n'; return length; } // Check to see if this is the boundary string if (m_isMultipart && StringBeginsWith(line, boundary)) { if (m_base64part && m_partIsText) { Base64Decode(buf); // Work on the parsed string if (!buf.Length()) { NS_WARNING("Trying to transform an empty buffer"); eatThisLine = true; } else { ApplyTransformations(buf, buf.Length(), eatThisLine, buf); // Avoid spurious failures eatThisLine = false; } } else { buf.Truncate(); eatThisLine = true; // We have no content... } // Reset all assumed headers m_base64part = false; m_pastHeaders = false; m_partIsHtml = false; m_partIsText = true; return buf.Length(); } if (!m_partIsText) { // Ignore non-text parts buf.Truncate(); eatThisLine = true; return 0; } if (m_base64part) { // We need to keep track of all lines to parse base64encoded... buf.Append(line.get()); eatThisLine = true; return buf.Length(); } // ... but there's no point if we're not parsing base64. buf.Assign(line); if (m_stripHtml && m_partIsHtml) { StripHtml (buf); newLength = buf.Length(); } return newLength; }