From 80cd454f1dd08a07538ec79bcda8aeeefb5df44a Mon Sep 17 00:00:00 2001 From: vro Date: Thu, 15 Aug 2013 16:28:11 +0400 Subject: [PATCH] 0023864: An & symbol is read incorrectly from a XML Ocaf file A line is uncommented. This line sets the successfully read & symbol. Correction and adding test cases for issue CR23864 --- src/LDOM/LDOM_CharReference.cxx | 2 +- tests/bugs/caf/bug170_3 | 2 -- tests/bugs/caf/bug23864 | 22 ++++++++++++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 tests/bugs/caf/bug23864 diff --git a/src/LDOM/LDOM_CharReference.cxx b/src/LDOM/LDOM_CharReference.cxx index 98b34e0c9a..99ce4bc20e 100755 --- a/src/LDOM/LDOM_CharReference.cxx +++ b/src/LDOM/LDOM_CharReference.cxx @@ -90,7 +90,7 @@ char * LDOM_CharReference::Decode (char * theSrc, Standard_Integer& theLen) } else if (IS_EQUAL(aSrcPtr+1, "amp;")) { aDstPtr = aSrcPtr - anIncrCount + 1; -// aDstPtr[-1] = '&'; + aDstPtr[-1] = '&'; anIncrCount += 4; aSrcPtr += 5; } diff --git a/tests/bugs/caf/bug170_3 b/tests/bugs/caf/bug170_3 index bb5fb26740..690c53debf 100755 --- a/tests/bugs/caf/bug170_3 +++ b/tests/bugs/caf/bug170_3 @@ -1,5 +1,3 @@ -puts "TODO OCC12345 ALL: OCC170 Error" - puts "========================" puts "OCC170" puts "(case 3)" diff --git a/tests/bugs/caf/bug23864 b/tests/bugs/caf/bug23864 new file mode 100644 index 0000000000..4e3e9506a3 --- /dev/null +++ b/tests/bugs/caf/bug23864 @@ -0,0 +1,22 @@ +puts "============" +puts "OCC23864" +puts "============" +puts "" +################################################################################################################### +# An & symbol is read incorrectly from a XML Ocaf file +################################################################################################################### + +#Open an Ocaf XML document +Open [locate_data_file bug23864_testAmp.xml] D + +#Get name attribute (containing an & symbol) +GetName D 0:1 + +#Get an array of strings (containing an & symbol) +set info [GetExtStringArray D 0:1] + +if { [regexp "\&" $info] != 1 } { + puts "Error : An \& symbol is read incorrectly from a XML Ocaf file" +} else { + puts "OK : An \& symbol is read correctly from a XML Ocaf file" +} -- 2.20.1