summaryrefslogtreecommitdiff
path: root/ACE/ace/Tokenizer_T.cpp
diff options
context:
space:
mode:
authorsma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-06 10:13:05 +0000
committersma <sma@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-11-06 10:13:05 +0000
commit78bf7e34b27ca6da31f96f06a450a8be2bcaca09 (patch)
treea5413e5b72d42e0278faad595152042141d3ae04 /ACE/ace/Tokenizer_T.cpp
parente7b0e5095f5dc0dacb4121420ac750aa4c4a6c9e (diff)
downloadATCD-78bf7e34b27ca6da31f96f06a450a8be2bcaca09.tar.gz
ChangeLogTag: Fri Nov 6 10:13:00 UTC 2009 Simon Massey <sma at prismtech dot com>
Diffstat (limited to 'ACE/ace/Tokenizer_T.cpp')
-rw-r--r--ACE/ace/Tokenizer_T.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/ACE/ace/Tokenizer_T.cpp b/ACE/ace/Tokenizer_T.cpp
index f9ce33a7fc9..ddc3d70a91c 100644
--- a/ACE/ace/Tokenizer_T.cpp
+++ b/ACE/ace/Tokenizer_T.cpp
@@ -204,11 +204,17 @@ ACE_Tokenizer_T<CHAR>::next (void)
goto EXIT_LABEL;
}
- // A preserve designator signifies the end of this token.
+ // A preserve designator is NESTED inside this token
+ // We can't strip such preserve designators, just skip
+ // over them so that delimiters nested within arn't seen.
if (this->is_preserve_designator (buffer_[index_],
stop,
strip))
- goto EXIT_LABEL;
+ {
+ ++index_; // Skip starting preserve_designator
+ while (('\0' != buffer_[index_]) && (stop != buffer_[index_]))
+ ++index_; // Skip enclosed character
+ }
// Check for end of string.
if (buffer_[index_] == '\0')