From 1de12cd29aa72999f64bc93647a2406c6e765a5c Mon Sep 17 00:00:00 2001 From: albert-github Date: Wed, 13 Feb 2019 14:34:22 +0100 Subject: Bug 399222 - SORT_BRIEF_DOCS produces wrong results Grouped brief (with `\{ ..\}` descriptions were not sorted when `SORT_BRIEF_DOCS` was set, the detailed documentation was sorted already. --- src/filedef.cpp | 12 ++++++++++++ src/membergroup.cpp | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src/filedef.cpp b/src/filedef.cpp index f9f68d1..187b665 100644 --- a/src/filedef.cpp +++ b/src/filedef.cpp @@ -1966,6 +1966,18 @@ void FileDef::sortMemberLists() { if (ml->needsSorting()) { ml->sort(); ml->setNeedsSorting(FALSE); } } + + if (m_memberGroupSDict) + { + MemberGroupSDict::Iterator mgli(*m_memberGroupSDict); + MemberGroup *mg; + for (;(mg=mgli.current());++mgli) + { + MemberList *mlg = mg->members(); + if (mlg->needsSorting()) { mlg->sort(); mlg->setNeedsSorting(FALSE); } + } + } + } MemberList *FileDef::getMemberList(MemberListType lt) const diff --git a/src/membergroup.cpp b/src/membergroup.cpp index 5ee47ab..840c62b 100644 --- a/src/membergroup.cpp +++ b/src/membergroup.cpp @@ -44,8 +44,11 @@ MemberGroup::MemberGroup() MemberGroup::MemberGroup(Definition *parent, int id,const char *hdr,const char *d,const char *docFile,int docLine) { + static bool sortBriefDocs = Config_getBool(SORT_BRIEF_DOCS); + //printf("New member group id=%d header=%s desc=%s\n",id,hdr,d); memberList = new MemberList(MemberListType_memberGroup); + memberList->setNeedsSorting(sortBriefDocs); // detailed sections are already sorted elsewhere. grpId = id; grpHeader = hdr; doc = d; -- cgit v0.12