Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
gaoqiong
yaml-cpp
Commits
3099d51b
"examples/community/clip_guided_stable_diffusion.py" did not exist on "9727cda678abcfdf764a592aa35f5527d706ca34"
Commit
3099d51b
authored
Nov 14, 2011
by
Jesse Beder
Browse files
Added single character emitting
parent
6f4608ce
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
52 additions
and
1 deletion
+52
-1
include/yaml-cpp/emitter.h
include/yaml-cpp/emitter.h
+2
-0
src/emitter.cpp
src/emitter.cpp
+14
-0
src/emitterutils.cpp
src/emitterutils.cpp
+20
-0
src/emitterutils.h
src/emitterutils.h
+1
-0
test/emittertests.cpp
test/emittertests.cpp
+15
-1
No files found.
include/yaml-cpp/emitter.h
View file @
3099d51b
...
@@ -51,6 +51,7 @@ namespace YAML
...
@@ -51,6 +51,7 @@ namespace YAML
// overloads of write
// overloads of write
Emitter
&
Write
(
const
std
::
string
&
str
);
Emitter
&
Write
(
const
std
::
string
&
str
);
Emitter
&
Write
(
bool
b
);
Emitter
&
Write
(
bool
b
);
Emitter
&
Write
(
char
ch
);
Emitter
&
Write
(
const
_Alias
&
alias
);
Emitter
&
Write
(
const
_Alias
&
alias
);
Emitter
&
Write
(
const
_Anchor
&
anchor
);
Emitter
&
Write
(
const
_Anchor
&
anchor
);
Emitter
&
Write
(
const
_Tag
&
tag
);
Emitter
&
Write
(
const
_Tag
&
tag
);
...
@@ -125,6 +126,7 @@ namespace YAML
...
@@ -125,6 +126,7 @@ namespace YAML
// overloads of insertion
// overloads of insertion
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
string
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
std
::
string
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
bool
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
bool
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
char
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Alias
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Alias
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Anchor
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Anchor
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Tag
&
v
)
{
return
emitter
.
Write
(
v
);
}
inline
Emitter
&
operator
<<
(
Emitter
&
emitter
,
const
_Tag
&
v
)
{
return
emitter
.
Write
(
v
);
}
...
...
src/emitter.cpp
View file @
3099d51b
...
@@ -733,6 +733,20 @@ namespace YAML
...
@@ -733,6 +733,20 @@ namespace YAML
return
*
this
;
return
*
this
;
}
}
Emitter
&
Emitter
::
Write
(
char
ch
)
{
if
(
!
good
())
return
*
this
;
PreAtomicWrite
();
EmitSeparationIfNecessary
();
Utils
::
WriteChar
(
m_stream
,
ch
);
PostAtomicWrite
();
return
*
this
;
}
Emitter
&
Emitter
::
Write
(
const
_Alias
&
alias
)
Emitter
&
Emitter
::
Write
(
const
_Alias
&
alias
)
{
{
if
(
!
good
())
if
(
!
good
())
...
...
src/emitterutils.cpp
View file @
3099d51b
...
@@ -268,6 +268,26 @@ namespace YAML
...
@@ -268,6 +268,26 @@ namespace YAML
return
true
;
return
true
;
}
}
bool
WriteChar
(
ostream
&
out
,
char
ch
)
{
if
((
'a'
<=
ch
&&
ch
<=
'z'
)
||
(
'A'
<=
ch
&&
ch
<=
'Z'
))
out
<<
ch
;
else
if
((
0x20
<=
ch
&&
ch
<=
0x7e
)
||
ch
==
' '
)
out
<<
"
\"
"
<<
ch
<<
"
\"
"
;
else
if
(
ch
==
'\t'
)
out
<<
"
\"\\
t
\"
"
;
else
if
(
ch
==
'\n'
)
out
<<
"
\"\\
n
\"
"
;
else
if
(
ch
==
'\b'
)
out
<<
"
\"\\
b
\"
"
;
else
{
out
<<
"
\"
"
;
WriteDoubleQuoteEscapeSequence
(
out
,
ch
);
out
<<
"
\"
"
;
}
return
true
;
}
bool
WriteComment
(
ostream
&
out
,
const
std
::
string
&
str
,
int
postCommentIndent
)
bool
WriteComment
(
ostream
&
out
,
const
std
::
string
&
str
,
int
postCommentIndent
)
{
{
const
unsigned
curIndent
=
out
.
col
();
const
unsigned
curIndent
=
out
.
col
();
...
...
src/emitterutils.h
View file @
3099d51b
...
@@ -17,6 +17,7 @@ namespace YAML
...
@@ -17,6 +17,7 @@ namespace YAML
bool
WriteSingleQuotedString
(
ostream
&
out
,
const
std
::
string
&
str
);
bool
WriteSingleQuotedString
(
ostream
&
out
,
const
std
::
string
&
str
);
bool
WriteDoubleQuotedString
(
ostream
&
out
,
const
std
::
string
&
str
,
bool
escapeNonAscii
);
bool
WriteDoubleQuotedString
(
ostream
&
out
,
const
std
::
string
&
str
,
bool
escapeNonAscii
);
bool
WriteLiteralString
(
ostream
&
out
,
const
std
::
string
&
str
,
int
indent
);
bool
WriteLiteralString
(
ostream
&
out
,
const
std
::
string
&
str
,
int
indent
);
bool
WriteChar
(
ostream
&
out
,
char
ch
);
bool
WriteComment
(
ostream
&
out
,
const
std
::
string
&
str
,
int
postCommentIndent
);
bool
WriteComment
(
ostream
&
out
,
const
std
::
string
&
str
,
int
postCommentIndent
);
bool
WriteAlias
(
ostream
&
out
,
const
std
::
string
&
str
);
bool
WriteAlias
(
ostream
&
out
,
const
std
::
string
&
str
);
bool
WriteAnchor
(
ostream
&
out
,
const
std
::
string
&
str
);
bool
WriteAnchor
(
ostream
&
out
,
const
std
::
string
&
str
);
...
...
test/emittertests.cpp
View file @
3099d51b
...
@@ -861,8 +861,21 @@ namespace Test
...
@@ -861,8 +861,21 @@ namespace Test
out
<<
YAML
::
EndMap
;
out
<<
YAML
::
EndMap
;
desiredOutput
=
"key:
\"\"
"
;
desiredOutput
=
"key:
\"\"
"
;
}
}
void
SingleChar
(
YAML
::
Emitter
&
out
,
std
::
string
&
desiredOutput
)
{
out
<<
YAML
::
BeginSeq
;
out
<<
'a'
;
out
<<
':'
;
out
<<
(
char
)
0x10
;
out
<<
'\n'
;
out
<<
' '
;
out
<<
'\t'
;
out
<<
YAML
::
EndSeq
;
desiredOutput
=
"- a
\n
-
\"
:
\"\n
-
\"\\
x10
\"\n
-
\"\\
n
\"\n
-
\"
\"\n
-
\"\\
t
\"
"
;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
// incorrect emitting
// incorrect emitting
void
ExtraEndSeq
(
YAML
::
Emitter
&
out
,
std
::
string
&
desiredError
)
void
ExtraEndSeq
(
YAML
::
Emitter
&
out
,
std
::
string
&
desiredError
)
...
@@ -1080,6 +1093,7 @@ namespace Test
...
@@ -1080,6 +1093,7 @@ namespace Test
RunEmitterTest
(
&
Emitter
::
DocStartAndEnd
,
"doc start and end"
,
passed
,
total
);
RunEmitterTest
(
&
Emitter
::
DocStartAndEnd
,
"doc start and end"
,
passed
,
total
);
RunEmitterTest
(
&
Emitter
::
ImplicitDocStart
,
"implicit doc start"
,
passed
,
total
);
RunEmitterTest
(
&
Emitter
::
ImplicitDocStart
,
"implicit doc start"
,
passed
,
total
);
RunEmitterTest
(
&
Emitter
::
EmptyString
,
"empty string"
,
passed
,
total
);
RunEmitterTest
(
&
Emitter
::
EmptyString
,
"empty string"
,
passed
,
total
);
RunEmitterTest
(
&
Emitter
::
SingleChar
,
"single char"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
ExtraEndSeq
,
"extra EndSeq"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
ExtraEndSeq
,
"extra EndSeq"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
ExtraEndMap
,
"extra EndMap"
,
passed
,
total
);
RunEmitterErrorTest
(
&
Emitter
::
ExtraEndMap
,
"extra EndMap"
,
passed
,
total
);
...
...
Write
Preview
Markdown
is supported
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