summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2007-10-09 13:55:42 (GMT)
committerKen Martin <ken.martin@kitware.com>2007-10-09 13:55:42 (GMT)
commit18ce24c7486fedc792276721515c9ddefc62ebee (patch)
tree527cfa357957b02432cdabea88c918948ac6f37a
parentb02cbf5fadd70bf173882a1eca94e1d74d640248 (diff)
downloadCMake-18ce24c7486fedc792276721515c9ddefc62ebee.zip
CMake-18ce24c7486fedc792276721515c9ddefc62ebee.tar.gz
CMake-18ce24c7486fedc792276721515c9ddefc62ebee.tar.bz2
ENH: make documentation entries actually store their data
-rw-r--r--Source/CPack/cpack.cxx28
-rw-r--r--Source/MFCDialog/CMakeSetup.cpp20
-rw-r--r--Source/cmDocumentation.cxx215
-rw-r--r--Source/cmDocumentationFormatterHTML.cxx28
-rw-r--r--Source/cmDocumentationFormatterMan.cxx10
-rw-r--r--Source/cmDocumentationFormatterText.cxx12
-rw-r--r--Source/cmDocumentationFormatterUsage.cxx12
-rw-r--r--Source/cmDumpDocumentation.cxx22
-rw-r--r--Source/cmPropertyDefinition.cxx4
-rw-r--r--Source/cmPropertyDefinitionMap.cxx2
-rw-r--r--Source/cmStandardIncludes.h6
-rw-r--r--Source/cmake.cxx6
-rw-r--r--Source/cmake.h4
-rw-r--r--Source/cmakemain.cxx32
-rw-r--r--Source/ctest.cxx26
15 files changed, 215 insertions, 212 deletions
diff --git a/Source/CPack/cpack.cxx b/Source/CPack/cpack.cxx
index ba9820f..80cbbe7 100644
--- a/Source/CPack/cpack.cxx
+++ b/Source/CPack/cpack.cxx
@@ -33,30 +33,30 @@
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationName[] =
{
- {0,
- " cpack - Packaging driver provided by CMake.", 0},
- {0,0,0}
+ {"",
+ " cpack - Packaging driver provided by CMake.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationUsage[] =
{
- {0,
+ {"",
" cpack -G <generator> [options]",
- 0},
- {0,0,0}
+ ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationDescription[] =
{
- {0,
+ {"",
"The \"cpack\" executable is the CMake packaging program. "
"CMake-generated build trees created for projects that use "
"the INSTALL_* commands have packaging support. "
- "This program will generate the package.", 0},
+ "This program will generate the package.", ""},
CMAKE_STANDARD_INTRODUCTION,
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
@@ -75,15 +75,15 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
{"--config <config file>", "Specify the config file.",
"Specify the config file to use to create the package. By default "
"CPackConfig.cmake in the current directory will be used." },
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationSeeAlso[] =
{
- {0, "cmake", 0},
- {0, "ccmake", 0},
- {0, 0, 0}
+ {"", "cmake", ""},
+ {"", "ccmake", ""},
+ {"", "", ""}
};
//----------------------------------------------------------------------------
@@ -464,7 +464,7 @@ int main (int argc, char *argv[])
e.full = "";
v.push_back(e);
}
- cmDocumentationEntry empty = {0,0,0};
+ cmDocumentationEntry empty = {"","",""};
v.push_back(empty);
doc.SetGeneratorsSection(&v[0]);
diff --git a/Source/MFCDialog/CMakeSetup.cpp b/Source/MFCDialog/CMakeSetup.cpp
index 3f59257..c61c69e 100644
--- a/Source/MFCDialog/CMakeSetup.cpp
+++ b/Source/MFCDialog/CMakeSetup.cpp
@@ -12,31 +12,31 @@
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationName[] =
{
- {0,
- " CMakeSetup - CMake Windows GUI.", 0},
- {0,0,0}
+ {"",
+ " CMakeSetup - CMake Windows GUI.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationUsage[] =
{
- {0,
+ {"",
" CMakeSetup [options]\n"
" CMakeSetup [options] <path-to-source>\n"
- " CMakeSetup [options] <path-to-existing-build>", 0},
- {0,0,0}
+ " CMakeSetup [options] <path-to-existing-build>", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationDescription[] =
{
- {0,
+ {"",
"The \"CMakeSetup\" executable is the CMake Windows GUI. Project "
"configuration settings may be specified interactively. "
"Brief instructions are provided at the bottom of the "
- "window when the program is running.", 0},
+ "window when the program is running.", ""},
CMAKE_STANDARD_INTRODUCTION,
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
@@ -47,7 +47,7 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
"advanced. Most users will not need to change the advanced options. "
"The CMakeSetup GUI contains a checkbox to enable/disable display of "
"advanced options. This command line flag changes its default setting."},
- {0,0,0}
+ {"","",""}
};
#ifdef _DEBUG
diff --git a/Source/cmDocumentation.cxx b/Source/cmDocumentation.cxx
index 6c54254..89a86c2 100644
--- a/Source/cmDocumentation.cxx
+++ b/Source/cmDocumentation.cxx
@@ -21,7 +21,7 @@
#include <cmsys/Directory.hxx>
-const cmDocumentationEntry cmDocumentation::cmSection::EmptySection ={0,0,0};
+const cmDocumentationEntry cmDocumentation::cmSection::EmptySection ={"","",""};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationStandardOptions[] =
@@ -43,165 +43,165 @@ static const cmDocumentationEntry cmDocumentationStandardOptions[] =
"If a file is specified, the help is written into it."},
{"--version [file]", "Show program name/version banner and exit.",
"If a file is specified, the version is written into it."},
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmModulesDocumentationDescription[] =
{
- {0,
+ {"",
" CMake Modules - Modules coming with CMake, the Cross-Platform Makefile "
- "Generator.", 0},
+ "Generator.", ""},
// CMAKE_DOCUMENTATION_OVERVIEW,
- {0,
+ {"",
"This is the documentation for the modules and scripts coming with CMake. "
"Using these modules you can check the computer system for "
"installed software packages, features of the compiler and the "
- "existance of headers to name just a few.", 0},
- {0,0,0}
+ "existance of headers to name just a few.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmCustomModulesDocumentationDescription[] =
{
- {0,
- " Custom CMake Modules - Additional Modules for CMake.", 0},
+ {"",
+ " Custom CMake Modules - Additional Modules for CMake.", ""},
// CMAKE_DOCUMENTATION_OVERVIEW,
- {0,
+ {"",
"This is the documentation for additional modules and scripts for CMake. "
"Using these modules you can check the computer system for "
"installed software packages, features of the compiler and the "
- "existance of headers to name just a few.", 0},
- {0,0,0}
+ "existance of headers to name just a few.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmPropertiesDocumentationDescription[] =
{
- {0,
+ {"",
" CMake Properties - Properties supported by CMake, "
- "the Cross-Platform Makefile Generator.", 0},
+ "the Cross-Platform Makefile Generator.", ""},
// CMAKE_DOCUMENTATION_OVERVIEW,
- {0,
+ {"",
"This is the documentation for the properties supported by CMake. "
"Properties can have different scopes. They can either be assigned to a "
"source file, a directory, a target or globally to CMake. By modifying the "
"values of properties the behaviour of the buildsystem can be customized.",
- 0},
- {0,0,0}
+ ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmCompatCommandsDocumentationDescription[] =
{
- {0,
+ {"",
" CMake Compatibility Listfile Commands - "
- "Obsolete commands supported by CMake for compatibility.", 0},
+ "Obsolete commands supported by CMake for compatibility.", ""},
// CMAKE_DOCUMENTATION_OVERVIEW,
- {0,
+ {"",
"This is the documentation for now obsolete listfile commands from previous "
"CMake versions, which are still supported for compatibility reasons. You "
- "should instead use the newer, faster and shinier new commands. ;-)", 0},
- {0,0,0}
+ "should instead use the newer, faster and shinier new commands. ;-)", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationCommandsHeader[] =
{
- {0,
- "The following commands are available in CMakeLists.txt code:", 0},
- {0,0,0}
+ {"",
+ "The following commands are available in CMakeLists.txt code:", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationGlobalPropertiesHeader[] =
{
- {0,
- "The following global properties are available in CMakeLists.txt code:", 0},
- {0,0,0}
+ {"",
+ "The following global properties are available in CMakeLists.txt code:", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationDirectoryPropertiesHeader[] =
{
- {0
+ {""
,"The following directory properties are available in CMakeLists.txt code:"
- ,0},
- {0,0,0}
+ ,""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationTargetPropertiesHeader[] =
{
- {0,
- "The following target properties are available in CMakeLists.txt code:", 0},
- {0,0,0}
+ {"",
+ "The following target properties are available in CMakeLists.txt code:", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationTestPropertiesHeader[] =
{
- {0
+ {""
,"The following properties for tests are available in CMakeLists.txt code:"
- ,0},
- {0,0,0}
+ ,""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationSourceFilePropertiesHeader[] =
{
- {0
+ {""
,"The following source file properties are available in CMakeLists.txt code:"
- , 0},
- {0,0,0}
+ , ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationVariablePropertiesHeader[] =
{
- {0, "The following variables are available in CMakeLists.txt code:", 0},
- {0,0,0}
+ {"", "The following variables are available in CMakeLists.txt code:", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry
cmDocumentationCachedVariablePropertiesHeader[] =
{
- {0,"The following cache variables are available in CMakeLists.txt code:", 0},
- {0,0,0}
+ {"","The following cache variables are available in CMakeLists.txt code:", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationModulesHeader[] =
{
- {0,
+ {"",
"The following modules are provided with CMake. "
- "They can be used with INCLUDE(ModuleName).", 0},
- {0,0,0}
+ "They can be used with INCLUDE(ModuleName).", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationCustomModulesHeader[] =
{
- {0,
+ {"",
"The following modules are also available for CMake. "
- "They can be used with INCLUDE(ModuleName).", 0},
- {0,0,0}
+ "They can be used with INCLUDE(ModuleName).", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationGeneratorsHeader[] =
{
- {0,
- "The following generators are available on this platform:", 0},
- {0,0,0}
+ {"",
+ "The following generators are available on this platform:", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationStandardSeeAlso[] =
{
- {0,
- "The following resources are available to get help using CMake:", 0},
+ {"",
+ "The following resources are available to get help using CMake:", ""},
{"Home Page",
"http://www.cmake.org",
"The primary starting point for learning about CMake."},
@@ -218,51 +218,51 @@ static const cmDocumentationEntry cmDocumentationStandardSeeAlso[] =
"The list is member-post-only but one may sign up on the CMake web page. "
"Please first read the full documentation at "
"http://www.cmake.org before posting questions to the list."},
- {0,
+ {"",
"Summary of helpful links:\n"
" Home: http://www.cmake.org\n"
" Docs: http://www.cmake.org/HTML/Documentation.html\n"
" Mail: http://www.cmake.org/HTML/MailingLists.html\n"
" FAQ: http://www.cmake.org/Wiki/CMake_FAQ\n"
- , 0},
- {0,0,0}
+ , ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
const cmDocumentationEntry cmDocumentationAuthor[] =
{
- {0,
- "This manual page was generated by the \"--help-man\" option.", 0},
- {0,0,0}
+ {"",
+ "This manual page was generated by the \"--help-man\" option.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
const cmDocumentationEntry cmDocumentationCopyright[] =
{
- {0,
+ {"",
"Copyright (c) 2002 Kitware, Inc., Insight Consortium. "
- "All rights reserved.", 0},
- {0,
+ "All rights reserved.", ""},
+ {"",
"Redistribution and use in source and binary forms, with or without "
"modification, are permitted provided that the following conditions are "
- "met:", 0},
+ "met:", ""},
{"",
"Redistributions of source code must retain the above copyright notice, "
- "this list of conditions and the following disclaimer.", 0},
+ "this list of conditions and the following disclaimer.", ""},
{"",
"Redistributions in binary form must reproduce the above copyright "
"notice, this list of conditions and the following disclaimer in the "
"documentation and/or other materials provided with the distribution.",
- 0},
+ ""},
{"",
"The names of Kitware, Inc., the Insight Consortium, or the names of "
"any consortium members, or of any contributors, may not be used to "
"endorse or promote products derived from this software without "
- "specific prior written permission.", 0},
+ "specific prior written permission.", ""},
{"",
"Modified source versions must be plainly marked as such, and must "
- "not be misrepresented as being the original software.", 0},
- {0,
+ "not be misrepresented as being the original software.", ""},
+ {"",
"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "
"``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT "
"LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR "
@@ -273,8 +273,8 @@ const cmDocumentationEntry cmDocumentationCopyright[] =
"PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF "
"LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING "
"NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS "
- "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.", 0},
- {0, 0, 0}
+ "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.", ""},
+ {"", "", ""}
};
//----------------------------------------------------------------------------
@@ -332,18 +332,18 @@ cmDocumentation::~cmDocumentation()
bool cmDocumentation::PrintCopyright(std::ostream& os)
{
for(const cmDocumentationEntry* op = cmDocumentationCopyright;
- op->brief; ++op)
+ op->brief.size(); ++op)
{
- if(op->name)
+ if(op->name.size())
{
os << " * ";
this->TextFormatter.SetIndent(" ");
- this->TextFormatter.PrintColumn(os, op->brief);
+ this->TextFormatter.PrintColumn(os, op->brief.c_str());
}
else
{
this->TextFormatter.SetIndent("");
- this->TextFormatter.PrintColumn(os, op->brief);
+ this->TextFormatter.PrintColumn(os, op->brief.c_str());
}
os << "\n";
}
@@ -441,7 +441,7 @@ bool cmDocumentation::CreateModulesSection()
{
this->ModulesSection.Append(cmDocumentationModulesHeader[0]);
this->CreateModuleDocsForDir(dir, this->ModulesSection);
- cmDocumentationEntry e = { 0, 0, 0 };
+ cmDocumentationEntry e = { "", "", "" };
this->ModulesSection.Append(e);
}
return true;
@@ -475,7 +475,7 @@ bool cmDocumentation::CreateCustomModulesSection()
if(sectionHasHeader)
{
- cmDocumentationEntry e = { 0, 0, 0 };
+ cmDocumentationEntry e = { "", "", "" };
this->CustomModulesSection.Append(e);
}
return true;
@@ -927,20 +927,20 @@ void cmDocumentation::SetSeeAlsoList(const cmDocumentationEntry* also)
{
this->SeeAlsoSection.Clear();
this->SeeAlsoString = ".B ";
- for(const cmDocumentationEntry* i = also; i->brief; ++i)
+ for(const cmDocumentationEntry* i = also; i->brief.size(); ++i)
{
this->SeeAlsoString += i->brief;
- this->SeeAlsoString += (i+1)->brief? "(1), ":"(1)";
+ this->SeeAlsoString += (i+1)->brief.size() ? "(1), ":"(1)";
}
- cmDocumentationEntry e = {0, 0, 0};
+ cmDocumentationEntry e = {"", "", ""};
e.brief = this->SeeAlsoString.c_str();
this->SeeAlsoSection.Append(e);
for(const cmDocumentationEntry* i = cmDocumentationStandardSeeAlso;
- i->brief; ++i)
+ i->brief.size(); ++i)
{
this->SeeAlsoSection.Append(*i);
}
- e.brief = 0;
+ e.brief = "";
this->SeeAlsoSection.Append(e);
}
@@ -958,9 +958,9 @@ bool cmDocumentation::PrintDocumentationSingle(std::ostream& os)
return false;
}
for(const cmDocumentationEntry* entry = this->CommandsSection.GetEntries();
- entry->brief; ++entry)
+ entry->brief.size(); ++entry)
{
- if(entry->name && this->CurrentArgument == entry->name)
+ if(entry->name.size() && this->CurrentArgument == entry->name)
{
this->PrintDocumentationCommand(os, entry);
return true;
@@ -968,10 +968,10 @@ bool cmDocumentation::PrintDocumentationSingle(std::ostream& os)
}
for(const cmDocumentationEntry*
entry = this->CompatCommandsSection.GetEntries();
- entry->brief;
+ entry->brief.size();
++entry)
{
- if(entry->name && this->CurrentArgument == entry->name)
+ if(entry->name.size() && this->CurrentArgument == entry->name)
{
this->PrintDocumentationCommand(os, entry);
return true;
@@ -1061,9 +1061,10 @@ bool cmDocumentation::PrintDocumentationSingleProperty(std::ostream& os)
++sectionIt)
{
for(const cmDocumentationEntry*
- entry = sectionIt->second->GetEntries(); entry->brief; ++entry)
+ entry = sectionIt->second->GetEntries(); entry->brief.size();
+ ++entry)
{
- if(entry->name && this->CurrentArgument == entry->name)
+ if(entry->name.size() && this->CurrentArgument == entry->name)
{
this->PrintDocumentationCommand(os, entry);
return true;
@@ -1086,9 +1087,9 @@ bool cmDocumentation::PrintDocumentationList(std::ostream& os)
return false;
}
for(const cmDocumentationEntry* entry = this->CommandsSection.GetEntries();
- entry->brief; ++entry)
+ entry->brief.size(); ++entry)
{
- if(entry->name)
+ if(entry->name.size())
{
os << entry->name << std::endl;
}
@@ -1096,10 +1097,10 @@ bool cmDocumentation::PrintDocumentationList(std::ostream& os)
os << "\nCompatibility commands:" << std::endl;
for(const cmDocumentationEntry*
entry = this->CompatCommandsSection.GetEntries();
- entry->brief;
+ entry->brief.size();
++entry)
{
- if(entry->name)
+ if(entry->name.size())
{
os << entry->name << std::endl;
}
@@ -1117,10 +1118,10 @@ bool cmDocumentation::PrintPropertyList(std::ostream& os)
}
for(const cmDocumentationEntry*
entry = this->GlobalPropertiesSection.GetEntries();
- entry->brief;
+ entry->brief.size();
++entry)
{
- if(entry->name)
+ if(entry->name.size())
{
os << entry->name << std::endl;
}
@@ -1132,9 +1133,10 @@ bool cmDocumentation::PrintPropertyList(std::ostream& os)
++sectionIt)
{
for(const cmDocumentationEntry*
- entry = sectionIt->second->GetEntries(); entry->brief; ++entry)
+ entry = sectionIt->second->GetEntries();
+ entry->brief.size(); ++entry)
{
- if(entry->name)
+ if(entry->name.size())
{
os << entry->name << std::endl;
}
@@ -1155,9 +1157,9 @@ bool cmDocumentation::PrintModuleList(std::ostream& os)
return false;
}
for(const cmDocumentationEntry* entry = this->ModulesSection.GetEntries();
- entry->brief; ++entry)
+ entry->brief.size(); ++entry)
{
- if(entry->name)
+ if(entry->name.size())
{
os << entry->name << std::endl;
}
@@ -1167,9 +1169,10 @@ bool cmDocumentation::PrintModuleList(std::ostream& os)
{
os << "\nCUSTOM MODULES\n" << std::endl;
for(const cmDocumentationEntry*
- entry = this->CustomModulesSection.GetEntries(); entry->brief; ++entry)
+ entry = this->CustomModulesSection.GetEntries();
+ entry->brief.size(); ++entry)
{
- if(entry->name)
+ if(entry->name.size())
{
os << entry->name << std::endl;
}
@@ -1253,7 +1256,7 @@ void cmDocumentation::PrintDocumentationCommand(std::ostream& os,
cmDocumentationEntry singleCommandSection[3] =
{
{entry->name, entry->brief, entry->full},
- {0,0,0}
+ {"","",""}
};
this->ClearSections();
this->AddSection(0, &singleCommandSection[0]);
@@ -1407,26 +1410,26 @@ void cmDocumentation::cmSection::Set(const cmDocumentationEntry* header,
this->Entries.erase(this->Entries.begin(), this->Entries.end());
if(header)
{
- for(const cmDocumentationEntry* op = header; op->brief; ++op)
+ for(const cmDocumentationEntry* op = header; op->brief.size(); ++op)
{
this->Entries.push_back(*op);
}
}
if(section)
{
- for(const cmDocumentationEntry* op = section; op->brief; ++op)
+ for(const cmDocumentationEntry* op = section; op->brief.size(); ++op)
{
this->Entries.push_back(*op);
}
}
if(footer)
{
- for(const cmDocumentationEntry* op = footer; op->brief; ++op)
+ for(const cmDocumentationEntry* op = footer; op->brief.size(); ++op)
{
this->Entries.push_back(*op);
}
}
- cmDocumentationEntry empty = {0,0,0};
+ cmDocumentationEntry empty = {"","",""};
this->Entries.push_back(empty);
}
diff --git a/Source/cmDocumentationFormatterHTML.cxx b/Source/cmDocumentationFormatterHTML.cxx
index 16823b1..010f003 100644
--- a/Source/cmDocumentationFormatterHTML.cxx
+++ b/Source/cmDocumentationFormatterHTML.cxx
@@ -33,13 +33,13 @@ static void cmDocumentationPrintHTMLChar(std::ostream& os, char c)
// Use an escape sequence if necessary.
static cmDocumentationEntry escapes[] =
{
- {"<", "&lt;", 0},
- {">", "&gt;", 0},
- {"&", "&amp;", 0},
- {"\n", "<br>", 0},
- {0,0,0}
+ {"<", "&lt;", ""},
+ {">", "&gt;", ""},
+ {"&", "&amp;", ""},
+ {"\n", "<br>", ""},
+ {"","",""}
};
- for(const cmDocumentationEntry* op = escapes; op->name; ++op)
+ for(const cmDocumentationEntry* op = escapes; op->name.size(); ++op)
{
if(op->name[0] == c)
{
@@ -97,25 +97,25 @@ void cmDocumentationFormatterHTML::PrintSection(std::ostream& os,
os << "<h2>" << name << "</h2>\n";
}
if(!section) { return; }
- for(const cmDocumentationEntry* op = section; op->brief;)
+ for(const cmDocumentationEntry* op = section; op->brief.size();)
{
- if(op->name)
+ if(op->name.size())
{
os << "<ul>\n";
- for(;op->name;++op)
+ for(;op->name.size();++op)
{
os << " <li>\n";
if(op->name[0])
{
os << " <b><code>";
- this->PrintHTMLEscapes(os, op->name);
+ this->PrintHTMLEscapes(os, op->name.c_str());
os << "</code></b>: ";
}
- this->PrintHTMLEscapes(os, op->brief);
- if(op->full)
+ this->PrintHTMLEscapes(os, op->brief.c_str());
+ if(op->full.size())
{
os << "<br>\n ";
- this->PrintFormatted(os, op->full);
+ this->PrintFormatted(os, op->full.c_str());
}
os << "\n";
os << " </li>\n";
@@ -124,7 +124,7 @@ void cmDocumentationFormatterHTML::PrintSection(std::ostream& os,
}
else
{
- this->PrintFormatted(os, op->brief);
+ this->PrintFormatted(os, op->brief.c_str());
os << "\n";
++op;
}
diff --git a/Source/cmDocumentationFormatterMan.cxx b/Source/cmDocumentationFormatterMan.cxx
index 0a16b9f..9699deb 100644
--- a/Source/cmDocumentationFormatterMan.cxx
+++ b/Source/cmDocumentationFormatterMan.cxx
@@ -35,19 +35,19 @@ void cmDocumentationFormatterMan::PrintSection(std::ostream& os,
os << ".SH " << name << "\n";
}
if(!section) { return; }
- for(const cmDocumentationEntry* op = section; op->brief; ++op)
+ for(const cmDocumentationEntry* op = section; op->brief.size(); ++op)
{
- if(op->name)
+ if(op->name.size())
{
os << ".TP\n"
<< ".B " << (op->name[0]?op->name:"*") << "\n";
- this->PrintFormatted(os, op->brief);
- this->PrintFormatted(os, op->full);
+ this->PrintFormatted(os, op->brief.c_str());
+ this->PrintFormatted(os, op->full.c_str());
}
else
{
os << ".PP\n";
- this->PrintFormatted(os, op->brief);
+ this->PrintFormatted(os, op->brief.c_str());
}
}
}
diff --git a/Source/cmDocumentationFormatterText.cxx b/Source/cmDocumentationFormatterText.cxx
index 4ab2695..4051181 100644
--- a/Source/cmDocumentationFormatterText.cxx
+++ b/Source/cmDocumentationFormatterText.cxx
@@ -36,26 +36,26 @@ void cmDocumentationFormatterText::PrintSection(std::ostream& os,
os << name << "\n\n";
}
if(!section) { return; }
- for(const cmDocumentationEntry* op = section; op->brief; ++op)
+ for(const cmDocumentationEntry* op = section; op->brief.size(); ++op)
{
- if(op->name)
+ if(op->name.size())
{
if(op->name[0])
{
os << " " << op->name << "\n";
}
this->TextIndent = " ";
- this->PrintFormatted(os, op->brief);
- if(op->full)
+ this->PrintFormatted(os, op->brief.c_str());
+ if(op->full.size())
{
os << "\n";
- this->PrintFormatted(os, op->full);
+ this->PrintFormatted(os, op->full.c_str());
}
}
else
{
this->TextIndent = "";
- this->PrintFormatted(os, op->brief);
+ this->PrintFormatted(os, op->brief.c_str());
}
os << "\n";
}
diff --git a/Source/cmDocumentationFormatterUsage.cxx b/Source/cmDocumentationFormatterUsage.cxx
index d5f315a..b7660a9 100644
--- a/Source/cmDocumentationFormatterUsage.cxx
+++ b/Source/cmDocumentationFormatterUsage.cxx
@@ -31,31 +31,31 @@ void cmDocumentationFormatterUsage::PrintSection(std::ostream& os,
os << name << "\n";
}
if(!section) { return; }
- for(const cmDocumentationEntry* op = section; op->brief; ++op)
+ for(const cmDocumentationEntry* op = section; op->brief.size(); ++op)
{
- if(op->name)
+ if(op->name.size())
{
os << " " << op->name;
this->TextIndent = " ";
int align = static_cast<int>(strlen(this->TextIndent))-4;
- for(int i = static_cast<int>(strlen(op->name)); i < align; ++i)
+ for(int i = static_cast<int>(op->name.size()); i < align; ++i)
{
os << " ";
}
- if ( strlen(op->name) > strlen(this->TextIndent)-4 )
+ if ( op->name.size() > strlen(this->TextIndent)-4 )
{
os << "\n";
os.write(this->TextIndent, strlen(this->TextIndent)-2);
}
os << "= ";
- this->PrintColumn(os, op->brief);
+ this->PrintColumn(os, op->brief.c_str());
os << "\n";
}
else
{
os << "\n";
this->TextIndent = "";
- this->PrintFormatted(os, op->brief);
+ this->PrintFormatted(os, op->brief.c_str());
}
}
os << "\n";
diff --git a/Source/cmDumpDocumentation.cxx b/Source/cmDumpDocumentation.cxx
index dab2651..5b3bd9f 100644
--- a/Source/cmDumpDocumentation.cxx
+++ b/Source/cmDumpDocumentation.cxx
@@ -25,35 +25,35 @@
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationName[] =
{
- {0,
- " DumpDocumentation - Dump documentation for CMake.", 0},
- {0,0,0}
+ {"",
+ " DumpDocumentation - Dump documentation for CMake.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationUsage[] =
{
- {0,
- " DumpDocumentation [filename]", 0},
- {0,0,0}
+ {"",
+ " DumpDocumentation [filename]", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationDescription[] =
{
- {0,
+ {"",
"The \"DumpDocumentation\" executable is only available in the build "
- "tree. It is used for testing, coverage, and documentation.", 0},
+ "tree. It is used for testing, coverage, and documentation.", ""},
CMAKE_STANDARD_INTRODUCTION,
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationOptions[] =
{
{"--all-for-coverage",
- "Dump all documentation to stdout. For testing.", 0},
- {0,0,0}
+ "Dump all documentation to stdout. For testing.", ""},
+ {"","",""}
};
diff --git a/Source/cmPropertyDefinition.cxx b/Source/cmPropertyDefinition.cxx
index 3acd184..e573fa3 100644
--- a/Source/cmPropertyDefinition.cxx
+++ b/Source/cmPropertyDefinition.cxx
@@ -22,8 +22,8 @@ cmDocumentationEntry cmPropertyDefinition::GetDocumentation() const
cmDocumentationEntry e;
e.name = this->Name.c_str();
e.brief =
- this->ShortDescription.size() ? this->ShortDescription.c_str() : 0;
- e.full = this->FullDescription.size() ? this->FullDescription.c_str() : 0;
+ this->ShortDescription.size() ? this->ShortDescription.c_str() : "";
+ e.full = this->FullDescription.size() ? this->FullDescription.c_str() : "";
return e;
}
diff --git a/Source/cmPropertyDefinitionMap.cxx b/Source/cmPropertyDefinitionMap.cxx
index bfc6112..3f457ee 100644
--- a/Source/cmPropertyDefinitionMap.cxx
+++ b/Source/cmPropertyDefinitionMap.cxx
@@ -45,7 +45,7 @@ void cmPropertyDefinitionMap
j != this->end(); ++j)
{
cmDocumentationEntry e = j->second.GetDocumentation();
- if (e.brief)
+ if (e.brief.size())
{
v.push_back(e);
}
diff --git a/Source/cmStandardIncludes.h b/Source/cmStandardIncludes.h
index eb77a97..8f573d3 100644
--- a/Source/cmStandardIncludes.h
+++ b/Source/cmStandardIncludes.h
@@ -316,9 +316,9 @@ extern void operator << (std::ostream&, const cmOStringStream&);
/** Standard documentation entry for cmDocumentation's formatting. */
struct cmDocumentationEntry
{
- const char* name;
- const char* brief;
- const char* full;
+ std::string name;
+ std::string brief;
+ std::string full;
};
/** Data structure to represent a single command line. */
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index d6dd6a6..7cd213d 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -2262,7 +2262,7 @@ void cmake::GetCommandDocumentation(std::vector<cmDocumentationEntry>& v,
};
v.push_back(e);
}
- cmDocumentationEntry empty = {0,0,0};
+ cmDocumentationEntry empty = {"","",""};
v.push_back(empty);
}
@@ -2271,7 +2271,7 @@ void cmake::GetPropertiesDocumentation(std::vector<cmDocumentationEntry>& v,
{
// get the properties for cmake
this->PropertyDefinitions[type].GetPropertiesDocumentation(v);
- cmDocumentationEntry empty = {0,0,0};
+ cmDocumentationEntry empty = {"","",""};
v.push_back(empty);
}
@@ -2296,7 +2296,7 @@ void cmake::GetGeneratorDocumentation(std::vector<cmDocumentationEntry>& v)
delete generator;
v.push_back(e);
}
- cmDocumentationEntry empty = {0,0,0};
+ cmDocumentationEntry empty = {"","",""};
v.push_back(empty);
}
diff --git a/Source/cmake.h b/Source/cmake.h
index c0b3cd0..fbc287a 100644
--- a/Source/cmake.h
+++ b/Source/cmake.h
@@ -428,11 +428,11 @@ private:
"section."}
#define CMAKE_STANDARD_INTRODUCTION \
- {0, \
+ {"", \
"CMake is a cross-platform build system generator. Projects " \
"specify their build process with platform-independent CMake listfiles " \
"included in each directory of a source tree with the name " \
"CMakeLists.txt. " \
"Users build a project by using CMake to generate a build system " \
- "for a native tool on their platform.", 0}
+ "for a native tool on their platform.", ""}
#endif
diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx
index 0717cf5..20eaedd 100644
--- a/Source/cmakemain.cxx
+++ b/Source/cmakemain.cxx
@@ -34,31 +34,31 @@
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationName[] =
{
- {0,
- " cmake - Cross-Platform Makefile Generator.", 0},
- {0,0,0}
+ {"",
+ " cmake - Cross-Platform Makefile Generator.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationUsage[] =
{
- {0,
+ {"",
" cmake [options] <path-to-source>\n"
- " cmake [options] <path-to-existing-build>", 0},
- {0,0,0}
+ " cmake [options] <path-to-existing-build>", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationDescription[] =
{
- {0,
+ {"",
"The \"cmake\" executable is the CMake command-line interface. It may "
"be used to configure projects in scripts. Project configuration "
"settings "
"may be specified on the command line with the -D option. The -i option "
- "will cause cmake to interactively prompt for such settings.", 0},
+ "will cause cmake to interactively prompt for such settings.", ""},
CMAKE_STANDARD_INTRODUCTION,
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
@@ -162,25 +162,25 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
"If a file is specified, the documentation is written into and the output "
"format is determined depending on the filename suffix. Supported are man "
"page, HTML and plain text."},
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationSeeAlso[] =
{
- {0, "ccmake", 0},
- {0, "ctest", 0},
- {0, 0, 0}
+ {"", "ccmake", ""},
+ {"", "ctest", ""},
+ {"", "", ""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationNOTE[] =
{
- {0,
+ {"",
"CMake no longer configures a project when run with no arguments. "
"In order to configure the project in the current directory, run\n"
- " cmake .", 0},
- {0,0,0}
+ " cmake .", ""},
+ {"","",""}
};
#endif
diff --git a/Source/ctest.cxx b/Source/ctest.cxx
index 5dedcc4..f085036 100644
--- a/Source/ctest.cxx
+++ b/Source/ctest.cxx
@@ -25,28 +25,28 @@
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationName[] =
{
- {0,
- " ctest - Testing driver provided by CMake.", 0},
- {0,0,0}
+ {"",
+ " ctest - Testing driver provided by CMake.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationUsage[] =
{
- {0,
- " ctest [options]", 0},
- {0,0,0}
+ {"",
+ " ctest [options]", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationDescription[] =
{
- {0,
+ {"",
"The \"ctest\" executable is the CMake test driver program. "
"CMake-generated build trees created for projects that use "
"the ENABLE_TESTING and ADD_TEST commands have testing support. "
- "This program will run the tests and report results.", 0},
- {0,0,0}
+ "This program will run the tests and report results.", ""},
+ {"","",""}
};
//----------------------------------------------------------------------------
@@ -194,15 +194,15 @@ static const cmDocumentationEntry cmDocumentationOptions[] =
"This option allows performing the same CTest action (such as test) "
"multiple times and submit all stages to the same dashboard (Dart2 "
"required). Each execution requires different index." },
- {0,0,0}
+ {"","",""}
};
//----------------------------------------------------------------------------
static const cmDocumentationEntry cmDocumentationSeeAlso[] =
{
- {0, "cmake", 0},
- {0, "ccmake", 0},
- {0, 0, 0}
+ {"", "cmake", ""},
+ {"", "ccmake", ""},
+ {"", "", ""}
};
// this is a test driver program for cmCTest.