Open abhimanyusirohi opened 9 years ago
The following code can be used to reproduce the problem. Only the "reactantlist" part is written as CML to out buffer or file. The written CML data is not well formed.
const char* rxnV2 = "$RXN\r\nDiels Alder V2000\r\n \r\n\r\n 2 1\r\n$MOL\r\n\r\n\r\n\r\n 6 5 0 0 0 0 0 0 0 0999 V2000\r\n 0.6489 0.9959 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n 0.0656 0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n 0.0656 -0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n 0.6489 -0.9959 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n -0.6489 0.8250 0.0000 R1 0 0 0 0 0 0 0 0 0 0 0 0\r\n -0.6489 -0.8250 0.0000 R2 0 0 0 0 0 0 0 0 0 0 0 0\r\n 1 2 2 0 0\r\n 2 3 1 0 0\r\n 3 4 2 0 0\r\n 2 5 1 0 0\r\n 3 6 1 0 0\r\nM END\r\n$MOL\r\n\r\n\r\n\r\n 4 3 0 0 0 0 0 0 0 0999 V2000\r\n -0.2917 0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n -0.2917 -0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n 0.2917 0.9959 0.0000 R3 0 0 0 0 0 0 0 0 0 0 0 0\r\n 0.2917 -0.9959 0.0000 R4 0 0 0 0 0 0 0 0 0 0 0 0\r\n 1 2 2 0 0\r\n 1 3 1 0 0\r\n 2 4 1 0 0\r\nM END\r\n$MOL\r\n\r\n\r\n\r\n 10 10 0 0 0 0 0 0 0 0999 V2000\r\n -0.7145 0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n -0.7145 -0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n -0.0000 -0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n 0.7145 -0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n 0.7145 0.4125 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n -0.0000 0.8250 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\r\n 1.4289 0.8250 0.0000 R3 0 0 0 0 0 0 0 0 0 0 0 0\r\n 1.4289 -0.8250 0.0000 R4 0 0 0 0 0 0 0 0 0 0 0 0\r\n -1.4289 0.8250 0.0000 R1 0 0 0 0 0 0 0 0 0 0 0 0\r\n -1.4289 -0.8250 0.0000 R2 0 0 0 0 0 0 0 0 0 0 0 0\r\n 1 2 2 0 0\r\n 2 3 1 0 0\r\n 3 4 1 0 0\r\n 4 5 1 0 0\r\n 5 6 1 0 0\r\n 6 1 1 0 0\r\n 5 7 1 0 0\r\n 4 8 1 0 0\r\n 1 9 1 0 0\r\n 2 10 1 0 0\r\nM END\r\n"; int rxn = indigoLoadReactionFromBuffer(rxnV2, strlen(rxnV2) + 1); int bufHandle = indigoWriteBuffer(); int saver = indigoCreateSaver(bufHandle, "cml"); indigoAppend(saver, rxn); indigoClose(saver); char* out; int outSize = 0; char* tempBuffer; if((indigoToBuffer(bufHandle, &tempBuffer, &outSize) > 0) && (outSize > 0)) { out = new char[outSize]; memcpy_s(out, outSize, tempBuffer, outSize); }
The output is:
<?xml version="1.0" ?> <cml> <reaction title="Diels Alder V2000"> <reactantList> <molecule title=""> <atomArray> <atom id="a0" elementType="C" x2="0.648900" y2="0.995900"/> <atom id="a1" elementType="C" x2="0.065600" y2="0.412500"/> <atom id="a2" elementType="C" x2="0.065600" y2="-0.412500"/> <atom id="a3" elementType="C" x2="0.648900" y2="-0.995900"/> <atom id="a4" elementType="R1"
The following code can be used to reproduce the problem. Only the "reactantlist" part is written as CML to out buffer or file. The written CML data is not well formed.
The output is: