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" +}