diff options
Diffstat (limited to 'tools/bookmaker/includeWriter.cpp')
-rw-r--r-- | tools/bookmaker/includeWriter.cpp | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/tools/bookmaker/includeWriter.cpp b/tools/bookmaker/includeWriter.cpp index c34fc9391f..463ac92c91 100644 --- a/tools/bookmaker/includeWriter.cpp +++ b/tools/bookmaker/includeWriter.cpp @@ -486,7 +486,7 @@ void IncludeWriter::enumSizeItems(const Definition& child) { int longestValue = 0; int valueLen = 0; const char* lastEnd = nullptr; - SkASSERT(child.fChildren.size() == 1 || child.fChildren.size() == 2); +// SkASSERT(child.fChildren.size() == 1 || child.fChildren.size() == 2); auto brace = child.fChildren[0]; if (KeyWord::kClass == brace->fKeyWord) { brace = brace->fChildren[0]; @@ -585,6 +585,9 @@ void IncludeWriter::enumSizeItems(const Definition& child) { // walk children and output complete method doxygen description void IncludeWriter::methodOut(const Definition* method, const Definition& child) { + if (string::npos != method->fName.find("validate")) { + SkDebugf(""); + } if (fPendingMethod) { fIndent -= 4; fPendingMethod = false; @@ -1076,12 +1079,22 @@ bool IncludeWriter::populate(Definition* def, ParentPair* prevPair, RootDefiniti const char* bodyEnd = fDeferComment ? fDeferComment->fContentStart - 1 : fAttrDeprecated ? fAttrDeprecated->fContentStart - 1 : child.fContentStart; + if (Definition::Type::kBracket == def->fType && Bracket::kDebugCode == def->fBracket) { + auto tokenIter = def->fParent->fTokens.begin(); + std::advance(tokenIter, def->fParentIndex - 1); + Definition* prior = &*tokenIter; + if (Definition::Type::kBracket == def->fType && + Bracket::kSlashStar == prior->fBracket) { + bodyEnd = prior->fContentStart - 1; + } + } // FIXME: roll end-trimming into writeBlockTrim call while (fStart < bodyEnd && ' ' >= bodyEnd[-1]) { --bodyEnd; } int blockSize = (int) (bodyEnd - fStart); if (blockSize) { + string debugstr(fStart, blockSize); this->writeBlock(blockSize, fStart); } startDef = &child; @@ -1445,7 +1458,22 @@ bool IncludeWriter::populate(BmhParser& bmhParser) { this->lfcr(); this->writePending(); fclose(fOut); - SkDebugf("wrote %s\n", fileName.c_str()); + fflush(fOut); + size_t slash = fFileName.find_last_of('/'); + if (string::npos == slash) { + slash = 0; + } + size_t back = fFileName.find_last_of('\\'); + if (string::npos == back) { + back = 0; + } + string dir = fFileName.substr(0, SkTMax(slash, back) + 1); + string readname = dir + fileName; + if (this->writtenFileDiffers(fileName, readname)) { + SkDebugf("wrote updated %s\n", fileName.c_str()); + } else { + remove(fileName.c_str()); + } } return allPassed; } |