The two patches modify the SmilesGenerator to
1) allow the generation of aromatic fragments
2) Not modify (mostly) the input molecule.
1) is achieved by changing the meaning of the useAromaticityFlag to be more obvious: if set to FALSE, the SG will perceieve aromaticity. If set to TRUE, it will use whatever flags are specified in the input molecule. So if you have benzene, but did not perceive aromaticity you will get a non-aromatic SMILES. Also made ring perception and ato typing independent of this flag
2) is achieved by using a clone of the input, but only in createSMILESWithoutCheckForMultipleMolecules. This means that if you call createSmiles, the inputmolecule is changed - but onlhy n the VISITED flag. To make this cleaner, we either make createSMILESWithoutCheckForMultipleMolecules private and clone the molecule in createSmiles;