Revision: 20673
          http://sourceforge.net/p/jmol/code/20673
Author:   hansonr
Date:     2015-08-02 03:06:31 +0000 (Sun, 02 Aug 2015)
Log Message:
-----------
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:
--------------
    branches/v14_2/Jmol/src/org/jmol/modelset/BondCollection.java
    branches/v14_2/Jmol/src/org/jmol/script/ScriptTokenParser.java
    branches/v14_2/Jmol/src/org/jmol/smiles/SmilesAtom.java
    branches/v14_2/Jmol/src/org/jmol/smiles/SmilesParser.java
    branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties

Modified: branches/v14_2/Jmol/src/org/jmol/modelset/BondCollection.java
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/modelset/BondCollection.java       
2015-08-02 03:03:52 UTC (rev 20672)
+++ branches/v14_2/Jmol/src/org/jmol/modelset/BondCollection.java       
2015-08-02 03:06:31 UTC (rev 20673)
@@ -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: branches/v14_2/Jmol/src/org/jmol/script/ScriptTokenParser.java
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/script/ScriptTokenParser.java      
2015-08-02 03:03:52 UTC (rev 20672)
+++ branches/v14_2/Jmol/src/org/jmol/script/ScriptTokenParser.java      
2015-08-02 03:06:31 UTC (rev 20673)
@@ -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: branches/v14_2/Jmol/src/org/jmol/smiles/SmilesAtom.java
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/smiles/SmilesAtom.java     2015-08-02 
03:03:52 UTC (rev 20672)
+++ branches/v14_2/Jmol/src/org/jmol/smiles/SmilesAtom.java     2015-08-02 
03:06:31 UTC (rev 20673)
@@ -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: branches/v14_2/Jmol/src/org/jmol/smiles/SmilesParser.java
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/smiles/SmilesParser.java   2015-08-02 
03:03:52 UTC (rev 20672)
+++ branches/v14_2/Jmol/src/org/jmol/smiles/SmilesParser.java   2015-08-02 
03:06:31 UTC (rev 20673)
@@ -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: branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties
===================================================================
--- branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties     2015-08-02 
03:03:52 UTC (rev 20672)
+++ branches/v14_2/Jmol/src/org/jmol/viewer/Jmol.properties     2015-08-02 
03:06:31 UTC (rev 20673)
@@ -6,8 +6,20 @@
 
 # see also http://chemapps.stolaf.edu/jmol/zip for daily updates
        
-Jmol.___JmolVersion="14.2.15_2015.07.30b"
+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
+
+JmolVersion="14.2.15_2015.07.30b"
+
 bug fix: JavaScript deletion of array elements fails for int[] arrays.
 
 JmolVersion="14.2.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

Reply via email to