X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/31dc7e4995ae83221268b24488ac724ab291b7fb..6c3422e90992d1330a8b412206d3381f63d2d29e:/utils/HelpGen/src/HelpGen.cpp diff --git a/utils/HelpGen/src/HelpGen.cpp b/utils/HelpGen/src/HelpGen.cpp index 28e9d4460c..1cada46acb 100644 --- a/utils/HelpGen/src/HelpGen.cpp +++ b/utils/HelpGen/src/HelpGen.cpp @@ -64,6 +64,7 @@ #include "wx/file.h" #include "wx/regex.h" +#include "wx/hash.h" // C++ parsing classes #include "cjparser.h" @@ -909,6 +910,7 @@ void HelpGenVisitor::CloseClass() m_inClass = FALSE; m_classname.clear(); } + m_file.FlushAll(); } void HelpGenVisitor::EndVisit() @@ -920,6 +922,11 @@ void HelpGenVisitor::EndVisit() m_fileHeader.Empty(); m_file.FlushAll(); + if (m_file.IsOpened()) + { + m_file.Flush(); + m_file.Close(); + } wxLogVerbose("%s: finished generating for the current file.", GetCurrentTime("%H:%M:%S")); @@ -936,6 +943,12 @@ void HelpGenVisitor::VisitClass( spClass& cl ) { CloseClass(); + if (m_file.IsOpened()) + { + m_file.Flush(); + m_file.Close(); + } + wxString name = cl.GetName(); if ( m_ignoreNames.IgnoreClass(name) ) { @@ -1104,6 +1117,8 @@ void HelpGenVisitor::VisitClass( spClass& cl ) InsertDataStructuresHeader(); InsertTypedefDocs(); InsertEnumDocs(); + + m_file.Flush(); } void HelpGenVisitor::VisitEnumeration( spEnumeration& en ) @@ -1250,16 +1265,28 @@ void HelpGenVisitor::VisitOperation( spOperation& op ) funcname = dtor; } - m_textFunc.Printf("\n" - "\\membersection{%s::%s}\\label{%s}\n" - "\n" - "\\%sfunc{%s%s}{%s}{", + static wxHashTable sg_MemberSectionsDone(wxKEY_STRING); + wxString memberSectionName; + memberSectionName.Printf("%s::%s", m_classname.c_str(), funcname.c_str()); + + m_textFunc = wxEmptyString; + if (!sg_MemberSectionsDone.Get(memberSectionName)) + { + m_textFunc.Printf("\n" + "\\membersection{%s::%s}\\label{%s}\n", m_classname.c_str(), funcname.c_str(), - MakeLabel(m_classname, funcname).c_str(), + MakeLabel(m_classname, funcname).c_str()); + sg_MemberSectionsDone.Put(memberSectionName, (wxObject*) & sg_MemberSectionsDone); + } + + wxString func; + func.Printf("\n" + "\\%sfunc{%s%s}{%s}{", op.mIsConstant ? "const" : "", op.mIsVirtual ? "virtual " : "", op.mRetType.c_str(), funcname.c_str()); + m_textFunc += func; } void HelpGenVisitor::VisitParameter( spParameter& param ) @@ -2149,6 +2176,13 @@ static const wxString GetVersionString() /* $Log$ + Revision 1.20 2002/01/03 14:23:33 JS + Added code to make it not duplicate membersections for overloaded functions + + Revision 1.19 2002/01/03 13:34:12 JS + Added FlushAll to CloseClass, otherwise text was only flushed right at the end, + and appeared in one file. + Revision 1.18 2002/01/03 12:02:47 JS Added main() and corrected VC++ project settings