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

Reply via email to