Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
CMake
CMake
Commits
0005e70c
Commit
0005e70c
authored
Feb 14, 2003
by
Brad King
Browse files
ENH: Further improved formatting. HTML/man/help now all have a consistent appearance.
parent
2c7a05ed
Changes
2
Hide whitespace changes
Inline
Side-by-side
Source/cmDocumentation.cxx
View file @
0005e70c
...
...
@@ -101,7 +101,10 @@ void cmDocumentation::PrintManSection(std::ostream& os,
os
<<
".TP
\n
"
<<
".B "
<<
op
->
name
<<
"
\n
"
<<
op
->
brief
<<
"
\n\n
"
;
if
(
op
->
full
)
{
os
<<
op
->
full
<<
"
\n
"
;
}
if
(
op
->
full
)
{
this
->
PrintFull
(
os
,
op
->
full
,
0
,
0
);
}
}
else
{
...
...
@@ -171,47 +174,11 @@ void cmDocumentation::PrintHTMLEscapes(std::ostream& os, const char* text)
}
//----------------------------------------------------------------------------
void
cmDocumentation
::
PrintHTML
Full
(
std
::
ostream
&
os
,
const
char
*
text
)
void
cmDocumentation
::
PrintHTML
Preformatted
(
std
::
ostream
&
os
,
const
char
*
text
)
{
const
char
*
line
=
text
;
while
(
*
line
)
{
// Any lines starting in a space are treated as a preformatted
// section.
std
::
string
preformatted
;
while
(
*
line
==
' '
)
{
for
(
char
ch
=
*
line
;
ch
&&
ch
!=
'\n'
;
++
line
,
ch
=
*
line
)
{
preformatted
.
append
(
1
,
ch
);
}
if
(
*
line
)
{
++
line
;
preformatted
.
append
(
1
,
'\n'
);
}
}
if
(
preformatted
.
length
())
{
os
<<
"<pre>"
;
this
->
PrintHTMLEscapes
(
os
,
preformatted
.
c_str
());
os
<<
"</pre>"
;
}
std
::
string
normal
;
for
(
char
ch
=
*
line
;
ch
&&
ch
!=
'\n'
;
++
line
,
ch
=
*
line
)
{
normal
.
append
(
1
,
ch
);
}
if
(
*
line
)
{
++
line
;
normal
.
append
(
1
,
'\n'
);
}
if
(
normal
.
length
())
{
this
->
PrintHTMLEscapes
(
os
,
normal
.
c_str
());
}
}
os
<<
"<pre>"
;
cmDocumentation
::
PrintHTMLEscapes
(
os
,
text
);
os
<<
"</pre>"
;
}
//----------------------------------------------------------------------------
...
...
@@ -239,7 +206,9 @@ void cmDocumentation::PrintHelpHTMLSection(std::ostream& os,
if
(
op
->
full
)
{
os
<<
"<br>"
;
this
->
PrintHTMLFull
(
os
,
op
->
full
);
this
->
PrintFull
(
os
,
op
->
full
,
&
cmDocumentation
::
PrintHTMLPreformatted
,
&
cmDocumentation
::
PrintHTMLEscapes
);
}
os
<<
"
\n
"
;
os
<<
" </li>
\n
"
;
...
...
@@ -379,7 +348,8 @@ void cmDocumentation::PrintColumn(std::ostream& os, int width,
int
column
=
0
;
bool
newSentence
=
false
;
bool
firstLine
=
true
;
bool
lastHadBlanks
=
false
;
// Count leading blanks in the text.
int
blanks
=
0
;
for
(
const
char
*
b
=
l
;
*
b
==
' '
;
++
b
)
{
++
blanks
;
}
...
...
@@ -414,6 +384,22 @@ void cmDocumentation::PrintColumn(std::ostream& os, int width,
}
else
{
// If this is the first line not beginning in a blank after
// a sequence of lines beginning in blanks, add an extra
// newline.
if
(
blanks
)
{
lastHadBlanks
=
true
;
}
else
{
if
(
lastHadBlanks
)
{
os
<<
"
\n
"
;
}
lastHadBlanks
=
false
;
}
// First word on line. Print indentation unless this is the
// first line.
os
<<
(
firstLine
?
""
:
indent
);
...
...
@@ -470,6 +456,65 @@ void cmDocumentation::PrintColumn(std::ostream& os, int width,
}
}
//----------------------------------------------------------------------------
void
cmDocumentation
::
PrintFull
(
std
::
ostream
&
os
,
const
char
*
text
,
void
(
*
pPreform
)(
std
::
ostream
&
,
const
char
*
),
void
(
*
pNormal
)(
std
::
ostream
&
,
const
char
*
))
{
const
char
*
line
=
text
;
while
(
*
line
)
{
// Any lines starting in a space are treated as preformatted text.
std
::
string
preformatted
;
while
(
*
line
==
' '
)
{
for
(
char
ch
=
*
line
;
ch
&&
ch
!=
'\n'
;
++
line
,
ch
=
*
line
)
{
preformatted
.
append
(
1
,
ch
);
}
if
(
*
line
)
{
++
line
;
preformatted
.
append
(
1
,
'\n'
);
}
}
if
(
preformatted
.
length
())
{
if
(
pPreform
)
{
pPreform
(
os
,
preformatted
.
c_str
());
}
else
{
os
<<
preformatted
<<
"
\n
"
;
}
}
// Other lines are treated as normal text.
std
::
string
normal
;
for
(
char
ch
=
*
line
;
ch
&&
ch
!=
'\n'
;
++
line
,
ch
=
*
line
)
{
normal
.
append
(
1
,
ch
);
}
if
(
*
line
)
{
++
line
;
normal
.
append
(
1
,
'\n'
);
}
if
(
normal
.
length
())
{
if
(
pNormal
)
{
pNormal
(
os
,
normal
.
c_str
());
}
else
{
os
<<
normal
<<
"
\n
"
;
}
}
}
}
//----------------------------------------------------------------------------
void
cmDocumentation
::
Print
(
Type
ht
,
std
::
ostream
&
os
)
{
...
...
Source/cmDocumentation.h
View file @
0005e70c
...
...
@@ -48,8 +48,11 @@ private:
void
PrintManSection
(
std
::
ostream
&
os
,
const
cmDocumentationEntry
*
section
,
const
char
*
name
);
void
PrintHelpSection
(
std
::
ostream
&
os
,
const
cmDocumentationEntry
*
section
);
void
PrintHTMLEscapes
(
std
::
ostream
&
os
,
const
char
*
text
);
void
PrintHTMLFull
(
std
::
ostream
&
os
,
const
char
*
text
);
static
void
PrintHTMLEscapes
(
std
::
ostream
&
os
,
const
char
*
text
);
static
void
PrintHTMLPreformatted
(
std
::
ostream
&
os
,
const
char
*
text
);
void
PrintFull
(
std
::
ostream
&
os
,
const
char
*
text
,
void
(
*
pPreform
)(
std
::
ostream
&
,
const
char
*
),
void
(
*
pNormal
)(
std
::
ostream
&
,
const
char
*
));
void
PrintHelpHTMLSection
(
std
::
ostream
&
os
,
const
cmDocumentationEntry
*
section
,
const
char
*
header
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment