Revision: 20672 http://sourceforge.net/p/jmol/code/20672 Author: hansonr Date: 2015-08-02 03:03:52 +0000 (Sun, 02 Aug 2015) Log Message: ----------- Jmol.___JmolVersion="14.2.15_2015.08.01"
bug fix: SMARTS matching broken for [r5] ring designation bug fix: reference to functions as commands requires lower case: -- for example: function F(a){ print a } F("test") // OK f("test") // OK f "test" // OK F "test" // fails Revision Links: -------------- http://sourceforge.net/p/jmol/code/5 Modified Paths: -------------- trunk/Jmol/src/org/jmol/modelset/BondCollection.java trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java trunk/Jmol/src/org/jmol/script/ScriptTokenParser.java trunk/Jmol/src/org/jmol/script/T.java trunk/Jmol/src/org/jmol/smiles/SmilesAtom.java trunk/Jmol/src/org/jmol/smiles/SmilesParser.java trunk/Jmol/src/org/jmol/viewer/Jmol.properties Modified: trunk/Jmol/src/org/jmol/modelset/BondCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/modelset/BondCollection.java 2015-07-31 13:04:18 UTC (rev 20671) +++ trunk/Jmol/src/org/jmol/modelset/BondCollection.java 2015-08-02 03:03:52 UTC (rev 20672) @@ -128,8 +128,7 @@ Bond bond = bo[iBond]; boolean isSelected1 = bsAtoms.get(bond.atom1.i); boolean isSelected2 = bsAtoms.get(bond.atom2.i); - if ((!bondSelectionModeOr & isSelected1 & isSelected2) - || (bondSelectionModeOr & (isSelected1 | isSelected2))) + if (bondSelectionModeOr ? isSelected1 || isSelected2 : isSelected1 && isSelected2) bs.set(iBond); } return bs; Modified: trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java 2015-07-31 13:04:18 UTC (rev 20671) +++ trunk/Jmol/src/org/jmol/script/ScriptMathProcessor.java 2015-08-02 03:03:52 UTC (rev 20672) @@ -1775,17 +1775,16 @@ } break; case T.bitset: - if (op.intValue == T.bonds && x2.value instanceof BondSet) + boolean isAtoms = (op.intValue != T.bonds); + if (!isAtoms && x2.value instanceof BondSet) return addX(x2); BS bs = SV.bsSelectVar(x2); - if (bs.cardinality() == 1 && (op.intValue & T.minmaxmask) == 0) + if (isAtoms && bs.cardinality() == 1 && (op.intValue & T.minmaxmask) == 0) op.intValue |= T.min; Object val = eval.getBitsetProperty(bs, op.intValue, null, null, x2.value, op.value, false, x2.index, true); - if (op.intValue != T.bonds) - return addXObj(val); - return addX(SV.newV(T.bitset, BondSet.newBS( - (BS) val, vwr.ms.getAtomIndices(bs)))); + return (isAtoms ? addXObj(val) : addX(SV.newV(T.bitset, BondSet.newBS( + (BS) val, vwr.ms.getAtomIndices(bs))))); } return false; } Modified: trunk/Jmol/src/org/jmol/script/ScriptTokenParser.java =================================================================== --- trunk/Jmol/src/org/jmol/script/ScriptTokenParser.java 2015-07-31 13:04:18 UTC (rev 20671) +++ trunk/Jmol/src/org/jmol/script/ScriptTokenParser.java 2015-08-02 03:03:52 UTC (rev 20672) @@ -264,6 +264,7 @@ protected Map<String, Boolean> htUserFunctions; protected boolean isUserFunction(String name) { + name = name.toLowerCase(); return (!isStateScript && (vwr.isFunction(name) || htUserFunctions.containsKey(name))); } Modified: trunk/Jmol/src/org/jmol/script/T.java =================================================================== --- trunk/Jmol/src/org/jmol/script/T.java 2015-07-31 13:04:18 UTC (rev 20671) +++ trunk/Jmol/src/org/jmol/script/T.java 2015-08-02 03:03:52 UTC (rev 20672) @@ -1149,7 +1149,7 @@ public final static int basepair = misc | 40; public final static int binary = misc | 42; public final static int blockdata = misc | 44; - public final static int bondset = misc | 46; + public final static int bondset = misc | 46; // never used public final static int bottom = misc | 47; public final static int brillouin = misc | 48; public final static int cancel = misc | 50; Modified: trunk/Jmol/src/org/jmol/smiles/SmilesAtom.java =================================================================== --- trunk/Jmol/src/org/jmol/smiles/SmilesAtom.java 2015-07-31 13:04:18 UTC (rev 20671) +++ trunk/Jmol/src/org/jmol/smiles/SmilesAtom.java 2015-08-02 03:03:52 UTC (rev 20672) @@ -202,6 +202,7 @@ int ringSize = Integer.MIN_VALUE; int ringConnectivity = -1; private Node matchingNode; + public boolean hasSubpattern; public SmilesAtom setAll(int iComponent, int ptAtom, int flags, int atomicNumber, int charge) { Modified: trunk/Jmol/src/org/jmol/smiles/SmilesParser.java =================================================================== --- trunk/Jmol/src/org/jmol/smiles/SmilesParser.java 2015-07-31 13:04:18 UTC (rev 20671) +++ trunk/Jmol/src/org/jmol/smiles/SmilesParser.java 2015-08-02 03:03:52 UTC (rev 20672) @@ -339,7 +339,7 @@ for (int i = molecule.ac; --i >= 0;) { SmilesAtom atom = molecule.patternAtoms[i]; if (molecule.isTopology && - (atom.elementNumber != -2 || atom.nAtomsOr > 0 || atom.nPrimitives > 0)) + (atom.hasSubpattern || atom.elementNumber != -2 || atom.nAtomsOr > 0 || atom.nPrimitives > 0)) molecule.isTopology = false; atom.setBondArray(); if (!isSmarts && atom.bioType == '\0' && !atom.setHydrogenCount(molecule)) @@ -550,6 +550,7 @@ subPattern += ".0"; currentAtom = parseAtom(molecule, null, subPattern, currentAtom, bond, ch == '[', false, isBranchAtom); + currentAtom.hasSubpattern = true; if (bond.order != SmilesBond.TYPE_UNKNOWN && bond.order != SmilesBond.TYPE_NONE) bond.set2a(null, currentAtom); @@ -766,7 +767,6 @@ SmilesAtom newAtom = (atomSet == null ? molecule.addAtom() : isPrimitive ? atomSet.addPrimitive() : atomSet.addAtomOr()); - if (braceCount > 0) newAtom.selected = true; Modified: trunk/Jmol/src/org/jmol/viewer/Jmol.properties =================================================================== --- trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2015-07-31 13:04:18 UTC (rev 20671) +++ trunk/Jmol/src/org/jmol/viewer/Jmol.properties 2015-08-02 03:03:52 UTC (rev 20672) @@ -51,8 +51,21 @@ TODO: curved arrows overextend and with width settings do not truncate shaft properly -Jmol.___JmolVersion="14.2.15_2015.07.30b" +Jmol.___JmolVersion="14.3.15_2015.08.01" +bug fix: SMARTS matching broken for [r5] ring designation + +bug fix: reference to functions as commands requires lower case: + -- for example: + function F(a){ print a } + F("test") // OK + f("test") // OK + f "test" // OK + F "test" // fails + + +JmolVersion="14.3.15_2015.07.30b" + bug fix: JavaScript deletion of array elements fails for int[] arrays. JmolVersion="14.3.15_2015.07.30" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ _______________________________________________ Jmol-commits mailing list Jmol-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-commits