summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorAlex Neundorf <neundorf@kde.org>2012-06-21 21:06:08 (GMT)
committerAlex Neundorf <neundorf@kde.org>2012-06-21 21:06:08 (GMT)
commit38df155dd394efd45dff887028b2e1a4c0969b03 (patch)
tree3f4d3c0c989321d01f1cfa1a4c2d8e6d045741ff /Source
parente6a935f39b2d15677830fdba8090d8c725165ca9 (diff)
downloadCMake-38df155dd394efd45dff887028b2e1a4c0969b03.zip
CMake-38df155dd394efd45dff887028b2e1a4c0969b03.tar.gz
CMake-38df155dd394efd45dff887028b2e1a4c0969b03.tar.bz2
documentation: preparation for making the man section configurable
This patch adds a man section number, which is then used by the DocumentationFormatterMan. The section number is right now always 1, detecting this from the file name will be the next step. Alex
Diffstat (limited to 'Source')
-rw-r--r--Source/cmDocumentation.cxx11
-rw-r--r--Source/cmDocumentation.h7
-rw-r--r--Source/cmDocumentationFormatterMan.cxx8
-rw-r--r--Source/cmDocumentationFormatterMan.h3
-rw-r--r--Source/cmakemain.cxx2
5 files changed, 21 insertions, 10 deletions
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 904a157..0f44e19 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -221,7 +221,7 @@ DOCUMENT_INTRO(CompatCommands, "cmakecompat",
cmDocumentation::cmDocumentation()
:CurrentFormatter(0)
{
- this->SetForm(TextForm);
+ this->SetForm(TextForm, 0);
this->addCommonStandardDocSections();
this->ShowGenerators = true;
}
@@ -594,7 +594,7 @@ bool cmDocumentation::PrintRequestedDocumentation(std::ostream& os)
i != this->RequestedHelpItems.end();
++i)
{
- this->SetForm(i->HelpForm);
+ this->SetForm(i->HelpForm, i->ManSection);
this->CurrentArgument = i->Argument;
// If a file name was given, use it. Otherwise, default to the
// given stream.
@@ -1269,9 +1269,9 @@ bool cmDocumentation::CheckOptions(int argc, const char* const* argv,
}
//----------------------------------------------------------------------------
-void cmDocumentation::Print(Form f, std::ostream& os)
+void cmDocumentation::Print(Form f, int manSection, std::ostream& os)
{
- this->SetForm(f);
+ this->SetForm(f, manSection);
this->Print(os);
}
@@ -1879,7 +1879,7 @@ void cmDocumentation::CreateFullDocumentation()
}
//----------------------------------------------------------------------------
-void cmDocumentation::SetForm(Form f)
+void cmDocumentation::SetForm(Form f, int manSection)
{
switch(f)
{
@@ -1890,6 +1890,7 @@ void cmDocumentation::SetForm(Form f)
this->CurrentFormatter = &this->DocbookFormatter;
break;
case ManForm:
+ this->ManFormatter.SetManSection(manSection);
this->CurrentFormatter = &this->ManFormatter;
break;
case TextForm:
diff --git a/Source/cmDocumentation.h b/Source/cmDocumentation.h
index a3f8e44..3fcea8f 100644
--- a/Source/cmDocumentation.h
+++ b/Source/cmDocumentation.h
@@ -108,7 +108,7 @@ public:
* Print documentation in the given form. All previously added
* sections will be generated.
*/
- void Print(Form f, std::ostream& os);
+ void Print(Form f, int manSection, std::ostream& os);
/**
* Print documentation in the current form. All previously added
@@ -190,7 +190,7 @@ public:
std::vector<cmDocumentationEntry>& commands,
cmake* cm);
private:
- void SetForm(Form f);
+ void SetForm(Form f, int manSection);
void SetDocName(const char* docname);
bool CreateSingleModule(const char* fname,
@@ -247,11 +247,12 @@ private:
struct RequestedHelpItem
{
- RequestedHelpItem():HelpForm(TextForm), HelpType(None) {}
+ RequestedHelpItem():HelpForm(TextForm), HelpType(None), ManSection(1) {}
cmDocumentationEnums::Form HelpForm;
cmDocumentationEnums::Type HelpType;
std::string Filename;
std::string Argument;
+ int ManSection;
};
std::vector<RequestedHelpItem> RequestedHelpItems;
diff --git a/Source/cmDocumentationFormatterMan.cxx b/Source/cmDocumentationFormatterMan.cxx
index 0c6d878..4123c85 100644
--- a/Source/cmDocumentationFormatterMan.cxx
+++ b/Source/cmDocumentationFormatterMan.cxx
@@ -19,9 +19,15 @@
cmDocumentationFormatterMan::cmDocumentationFormatterMan()
:cmDocumentationFormatter()
+,ManSection(1)
{
}
+void cmDocumentationFormatterMan::SetManSection(int manSection)
+{
+ this->ManSection = manSection;
+}
+
void cmDocumentationFormatterMan
::PrintSection(std::ostream& os,
const cmDocumentationSection &section,
@@ -87,7 +93,7 @@ void cmDocumentationFormatterMan::PrintHeader(const char* docname,
this->EscapeText(s_docname);
this->EscapeText(s_appname);
- os << ".TH " << s_docname << " 1 \""
+ os << ".TH " << s_docname << " " << this->ManSection << " \""
<< cmSystemTools::GetCurrentDateTime("%B %d, %Y").c_str()
<< "\" \"" << s_appname
<< " " << cmVersion::GetCMakeVersion()
diff --git a/Source/cmDocumentationFormatterMan.h b/Source/cmDocumentationFormatterMan.h
index 11b5acb..b3d069c 100644
--- a/Source/cmDocumentationFormatterMan.h
+++ b/Source/cmDocumentationFormatterMan.h
@@ -22,6 +22,8 @@ class cmDocumentationFormatterMan : public cmDocumentationFormatter
public:
cmDocumentationFormatterMan();
+ void SetManSection(int manSection);
+
virtual cmDocumentationEnums::Form GetForm() const
{ return cmDocumentationEnums::ManForm;}
@@ -35,6 +37,7 @@ public:
private:
void EscapeText(std::string& man_text);
+ int ManSection;
};
#endif
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 0b1d121..11a4267 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -418,7 +418,7 @@ int do_cmake(int ac, char** av)
{
doc.ClearSections();
doc.SetSection("NOTE", cmDocumentationNOTE);
- doc.Print(cmDocumentation::UsageForm, std::cerr);
+ doc.Print(cmDocumentation::UsageForm, 0, std::cerr);
return 1;
}
return result;