Notification time stamped 2020-09-30 22:38:20 UTC
From 6f8fe37fa7ddde529fa534ee819536301b4153b1 Mon Sep 17 00:00:00 2001
From: Jerry James <loganjerry(a)gmail.com>
Date: Sep 30 2020 22:38:00 +0000
Subject: Bring back to Fedora.
---
diff --git a/.gitignore b/.gitignore
index ec42e07..5d1c2d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,17 +1,2 @@
-jmol-11.8.25-full.tar.gz
-Jmol_icon_128.png
-jmol-11.8.26-full.tar.gz
-/Jmol-12.0.41-full.tar.gz
-/Jmol-12.0.48-full.tar.gz
-/Jmol-13.0.15-full.tar.gz
-/Jmol-13.2.3-full.tar.gz
-/Jmol-13.2.4-full.tar.gz
-/Jmol_icon13.png
-/Jmol-14.0.3-full.tar.gz
-/Jmol-14.0.4-full.tar.gz
-/Jmol-14.0.7-full.tar.gz
-/Jmol-14.0.11-full.tar.gz
-/Jmol-14.0.13-full.tar.gz
-/Jmol-14.2.12_2015.01.22-full.tar.gz
-/Jmol-14.2.15_2015.07.09-full.tar.gz
-/Jmol-14.4.0_2015.10.13-full.tar.gz
+/Jmol-*.tar.gz
+/Jmol_icon13.svg
diff --git a/jmol-14.0.11-dontsign.patch b/jmol-14.0.11-dontsign.patch
deleted file mode 100644
index 7ffc38c..0000000
--- a/jmol-14.0.11-dontsign.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -up jmol-14.0.11/build.xml.nosign jmol-14.0.11/build.xml
---- jmol-14.0.11/build.xml.nosign 2014-03-13 15:38:16.844657823 +0200
-+++ jmol-14.0.11/build.xml 2014-03-13 15:39:05.449390862 +0200
-@@ -153,7 +153,7 @@ Bob Hanson hansonr(a)stolaf.edu 11/26/2013
- </fileset>
- </path>
-
-- <target name="main" id="main"
depends="init,jar,applet-jar,signed-applet,smiles-applet-jar"/>
-+ <target name="main" id="main"
depends="init,jar,applet-jar,smiles-applet-jar"/>
-
- <target name="all" id="all" depends="doc,main"/>
-
-@@ -515,10 +515,10 @@ all support for previous versions remove
- <fileset dir="src/org/jmol/translation/Jmol"
includes="Messages*.class"/>
- <fileset dir="src/org/jmol/translation/JmolApplet"
includes="Messages*.class"/>
- </jar>
-- <antcall target="sign-jar-file">
-+ <!--<antcall target="sign-jar-file">
- <param name="sign-jar-file-dir" value="build" />
- <param name="sign-jar-file-name" value="Jmol.jar" />
-- </antcall>
-+ </antcall>-->
-
- <jar destfile="build/JmolData.jar"
- manifest="manifest/applicationData.txt">
-@@ -549,10 +549,10 @@ all support for previous versions remove
- <fileset dir="src/org/jmol/translation/Jmol"
includes="Messages*.class"/>
- <fileset dir="src/org/jmol/translation/JmolApplet"
includes="Messages*.class"/>
- </jar>
-- <antcall target="sign-jar-file">
-+ <!--<antcall target="sign-jar-file">
- <param name="sign-jar-file-dir" value="build" />
- <param name="sign-jar-file-name" value="JmolData.jar"
/>
-- </antcall>
-+ </antcall>-->
-
- <copy todir="build">
- <fileset dir=".">
-@@ -581,10 +581,10 @@ all support for previous versions remove
- </fileset>
- <fileset dir="${appjars.dir}" includes="**/*"/>
- </jar>
-- <antcall target="sign-jar-file">
-+ <!--<antcall target="sign-jar-file">
- <param name="sign-jar-file-dir" value="build" />
- <param name="sign-jar-file-name" value="Jvxl.jar" />
-- </antcall>
-+ </antcall>-->
- <!--
- <jar destfile="ChimeToJmol.jar"
- manifest="manifest/chimetojmol.txt">
-@@ -1163,10 +1163,10 @@ all support for previous versions remove
- </indexjars>
- </jar>
- <echo> signing JmolApplet*.jar</echo>
-- <antcall target="sign-jar-file">
-+ <!--<antcall target="sign-jar-file">
- <param name="sign-jar-file-dir" value="build" />
- <param name="sign-jar-file-name" value="JmolApplet*.jar"
/>
-- </antcall>
-+ </antcall>-->
-
- </target>
-
diff --git a/jmol-14.2.12-fedorabuild.patch b/jmol-14.2.12-fedorabuild.patch
deleted file mode 100644
index 2f0e0e4..0000000
--- a/jmol-14.2.12-fedorabuild.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff -up jmol-14.2.12_2015.01.22/build.xml.fedorabuild jmol-14.2.12_2015.01.22/build.xml
---- jmol-14.2.12_2015.01.22/build.xml.fedorabuild 2015-01-23 05:14:29.000000000 +0100
-+++ jmol-14.2.12_2015.01.22/build.xml 2015-02-02 23:48:08.698051895 +0100
-@@ -64,7 +64,7 @@ Bob Hanson hansonr(a)stolaf.edu 11/26/2013
- <!-- pull developer-specific settings from their home directory -->
- <property file="${user.home}/.jmol.build.properties" />
- <!-- compile options -->
-- <property name="build.sysclasspath" value="ignore" />
-+ <property name="build.sysclasspath" value="last" />
- <property name="build.compiler" value="javac1.6" />
- <!-- for some reason, I can't get ant to use this ${java.version}
- property as the value of the source parameter -->
-@@ -97,13 +97,13 @@ Bob Hanson hansonr(a)stolaf.edu 11/26/2013
- <echo message="version=${version}" />
- <property name="jvxl_version" value="0.1" />
-
-- <input message="private property file:"
addproperty="Private.propertyFile" defaultValue="none" />
-+ <!--<input message="private property file:"
addproperty="Private.propertyFile" defaultValue="none" />-->
- <if><available file="${Private.propertyFile}" /><then>
- <property file="${Private.propertyFile}" />
- <echo>using ${Private.keystore} ${Private.storetype}</echo>
- </then></if>
- <property name="tests.source.dir" value="source-tests" />
-- <property name="lib.dir" value="jars" />
-+ <property name="lib.dir" value="/usr/share/java" />
- <property name="plugin.dir" value="plugin-jars" />
- <property name="appjars.dir" value="build/appjars" />
- <property name="classes.dir" value="build/classes" />
-@@ -115,8 +115,8 @@ Bob Hanson hansonr(a)stolaf.edu 11/26/2013
- <property name="jmol.applet.web.dir" value="appletweb" />
- <property name="docbook-xsl" value="docbook-xsl-1.76.1" />
- <property name="docbook-xml" value="docbook-xml-4.4" />
-- <property name="naga.jar" value="naga-3_0.jar" />
-- <property name="commons-cli.jar" value="commons-cli-1.2.jar"
/>
-+ <property name="naga.jar" value="naga.jar" />
-+ <property name="commons-cli.jar" value="commons-cli.jar"
/>
- <property name="saxon.jar" value="saxon.jar" />
- <property name="saxon.main" value="com.icl.saxon.StyleSheet"
/>
- <property name="selfsign.store"
value="ca-cert/selfSignedCertificate/selfSignedCertificate.store" />
-@@ -436,7 +436,8 @@ all support for previous versions remove
- <uptodate targetfile="${appjars.dir}">
- <srcfiles dir="${lib.dir}"
includes="${naga.jar}"/>
- <srcfiles dir="${lib.dir}"
includes="${commons-cli.jar}"/>
-- <srcfiles dir="${lib.dir}"
includes="JSpecView.jar"/>
-+ <srcfiles dir="${lib.dir}"
includes="jspecview.app.jar"/>
-+ <srcfiles dir="${lib.dir}"
includes="jspecview.applet.jar"/>
- </uptodate>
- <uptodate targetfile="build/libjars.timestamp"
- srcfile="${appjars.dir}"/>
-@@ -467,9 +468,9 @@ all support for previous versions remove
- <!-- unjar dest="${appjars.dir}"
src="${lib.dir}/${vecmath.jar}"/ -->
- <!-- unjar dest="${appjars.dir}" src="${lib.dir}/Acme.jar"/
-->
- <!-- unjar dest="${appjars.dir}"
src="${lib.dir}/${itext.jar}"/ -->
-- <unjar dest="${appjars.dir}"
src="${lib.dir}/${naga.jar}"/>
-- <unjar dest="${appjars.dir}"
src="${lib.dir}/${commons-cli.jar}"/>
-- <unjar dest="${appjars.dir}"
src="${lib.dir}/JSpecView.jar"/>
-+ <!-- <unjar dest="${appjars.dir}"
src="${lib.dir}/${naga.jar}"/> -->
-+ <!-- <unjar dest="${appjars.dir}"
src="${lib.dir}/${commons-cli.jar}"/>
-+ <unjar dest="${appjars.dir}"
src="${lib.dir}/JSpecView.jar"/> -->
- <delete dir="${appjars.dir}/javajs" />
- <delete dir="${appjars.dir}/org/jmol" />
- <delete dir="${appjars.dir}/META-INF" />
-@@ -1226,7 +1227,8 @@ all support for previous versions remove
- <include name="JmolLib.jar" />
- </fileset>
- <fileset dir="jars">
-- <include name="JSpecView.jar" />
-+ <include name="jspecview.app.jar" />
-+ <include name="jspecview.applet.jar" />
- </fileset>
- <fileset dir=".">
- <include name="jmol" />
diff --git a/jmol-build.patch b/jmol-build.patch
new file mode 100644
index 0000000..d4e8a23
--- /dev/null
+++ b/jmol-build.patch
@@ -0,0 +1,206 @@
+--- build.xml.orig 2020-09-26 11:17:37.000000000 -0600
++++ build.xml 2020-09-29 17:19:38.952711528 -0600
+@@ -60,10 +60,10 @@ when the Jmol code is modified, is as fo
+ <property file="${user.home}/.jmol.build.properties" />
+ <!-- compile options -->
+ <property name="build.sysclasspath" value="ignore" />
+- <property name="build.compiler" value="javac1.7" />
++ <property name="build.compiler" value="javac10+" />
+ <!-- for some reason, I can't get ant to use this ${java.version}
+ property as the value of the source parameter -->
+- <property name="java.version" value="1.7" />
++ <property name="java.version" value="11" />
+ <property name="debug" value="on" />
+ <property name="deprecation" value="off" />
+ <property name="optimization" value="off" />
+@@ -92,7 +92,7 @@ when the Jmol code is modified, is as fo
+ <echo message="version=${version}" />
+ <property name="jvxl_version" value="0.1" />
+
+- <input message="private property file:"
addproperty="Private.propertyFile" defaultValue="none" />
++ <!--<input message="private property file:"
addproperty="Private.propertyFile" defaultValue="none" />-->
+ <if><available file="${Private.propertyFile}" /><then>
+ <property file="${Private.propertyFile}" />
+ <echo>using ${Private.keystore} ${Private.storetype}</echo>
+@@ -149,7 +149,6 @@ when the Jmol code is modified, is as fo
+ <path id="apisio-project.class.path">
+ <fileset dir="${lib.dir}">
+ <!-- include name="${vecmath.jar}" / -->
+- <include name="netscape.jar" />
+ <include name="gnujaxp.jar" />
+ </fileset>
+ </path>
+@@ -321,7 +320,7 @@ Release Note: When releasing stable vers
+
+
+
+- <target name="main" id="main"
depends="init,jar,applet-jar,signed-applet,smiles-applet-jar"/>
++ <target name="main" id="main"
depends="init,jar,applet-jar,smiles-applet-jar"/>
+
+ <target name="all" id="all" depends="doc,main"/>
+
+@@ -446,7 +445,7 @@ Release Note: When releasing stable vers
+ <mkdir dir="${classes.dir}"/>
+ <javac srcdir="src" destdir="${classes.dir}"
encoding="UTF8"
+ debug="${debug}" deprecation="${deprecation}"
+- optimize="${optimization}" source="1.7"
target="1.7">
++ optimize="${optimization}" source="11"
target="11">
+ <classpath refid="project.class.path" />
+ <exclude name="astex/**/*.java"/>
+ <exclude name="java_cup/**/*.java"/>
+@@ -485,7 +484,7 @@ Release Note: When releasing stable vers
+ </fileset>
+ </copy>
+
+- <property name="build.compiler" value="javac1.7" />
++ <property name="build.compiler" value="javac1.10+" />
+
+ <!--
+
+@@ -530,7 +529,7 @@ all support for previous versions remove
+ <javac srcdir="src" destdir="${applet.classes.dir}"
+ debug="${debug}" deprecation="${deprecation}"
+ optimize="${optimization}"
+- source="1.7" target="1.7" encoding="UTF8"
++ source="11" target="11" encoding="UTF8"
+ includesfile="applet.classes"
+ classpathref="applet-project.class.path" />
+
+@@ -557,7 +556,7 @@ all support for previous versions remove
+ <mkdir dir="${apisio.classes.dir}"/>
+ <javac srcdir="src" destdir="${apisio.classes.dir}"
+ debug="${debug}" deprecation="${deprecation}"
+- optimize="${optimization}" source="1.7"
encoding="UTF8"
++ optimize="${optimization}" source="11"
target="11" encoding="UTF8"
+ includesfile="apisio.classes"
+ classpathref="apisio-project.class.path" />
+ <copy todir="${apisio.classes.dir}" >
+@@ -628,8 +627,8 @@ all support for previous versions remove
+ <!-- unjar dest="${appjars.dir}"
src="${lib.dir}/${vecmath.jar}"/ -->
+ <!-- unjar dest="${appjars.dir}" src="${lib.dir}/Acme.jar"/
-->
+ <!-- unjar dest="${appjars.dir}"
src="${lib.dir}/${itext.jar}"/ -->
+- <unjar dest="${appjars.dir}"
src="${lib.dir}/${naga.jar}"/>
+- <unjar dest="${appjars.dir}"
src="${lib.dir}/${commons-cli.jar}"/>
++ <!--<unjar dest="${appjars.dir}"
src="${lib.dir}/${naga.jar}"/> -->
++ <!--<unjar dest="${appjars.dir}"
src="${lib.dir}/${commons-cli.jar}"/> -->
+ <delete dir="${appjars.dir}/javajs" />
+ <delete dir="${appjars.dir}/org/jmol" />
+ <delete dir="${appjars.dir}/org/apache/tools" />
+@@ -639,7 +638,7 @@ all support for previous versions remove
+
+ <target name="jar" id="jar"
+
depends="init,classes,jmolGuide,jmolHistory,jmolDevelopersGuide,libjars,main-i18n">
+- <if><equals arg1="${Private.propertyFile}" arg2="none"
/>
++ <if><equals arg1="${Private.propertyFile}" arg2="xxx"
/>
+ <then><echo>Skipping jar
creation</echo></then><else>
+
+
+@@ -685,10 +684,10 @@ all support for previous versions remove
+
+ <echo message="Creating Jmol.jar -- if this fails, check to see that
build/Jmol.jar is not open." />
+
+- <antcall target="sign-jar-file">
++ <!--<antcall target="sign-jar-file">
+ <param name="sign-jar-file-dir" value="build" />
+ <param name="sign-jar-file-name" value="Jmol.jar" />
+- </antcall>
++ </antcall>-->
+
+ <jar destfile="build/JmolData.jar"
+ manifest="manifest/applicationData.txt">
+@@ -724,10 +723,10 @@ all support for previous versions remove
+ </fileset>
+ <fileset dir="${appjars.dir}" includes="**/cli/**
**/naga/**" />
+ </jar>
+- <antcall target="sign-jar-file">
++ <!--<antcall target="sign-jar-file">
+ <param name="sign-jar-file-dir" value="build" />
+ <param name="sign-jar-file-name" value="JmolData.jar"
/>
+- </antcall>
++ </antcall>-->
+
+ <copy todir="build">
+ <fileset dir=".">
+@@ -755,10 +754,10 @@ all support for previous versions remove
+ </fileset>
+ <fileset dir="${appjars.dir}" includes="**/*"/>
+ </jar>
+- <antcall target="sign-jar-file">
++ <!--<antcall target="sign-jar-file">
+ <param name="sign-jar-file-dir" value="build" />
+ <param name="sign-jar-file-name" value="Jvxl.jar" />
+- </antcall>
++ </antcall>-->
+ <!--
+ <jar destfile="ChimeToJmol.jar"
+ manifest="manifest/chimetojmol.txt">
+@@ -799,7 +798,7 @@ all support for previous versions remove
+
+ <target name="applet-jar" id="applet-jar"
+ depends="applet-classes">
+- <if><equals arg1="${Private.propertyFile}" arg2="none"
/>
++ <if><equals arg1="${Private.propertyFile}" arg2="xxx"
/>
+ <then><echo>Skipping applet-jar</echo></then><else>
+
+ <delete dir="build">
+@@ -807,7 +806,6 @@ all support for previous versions remove
+ </delete>
+
+ <echo message="Creating JmolApplet.jar" />
+- <unjar dest="${applet.classes.dir}"
src="${lib.dir}/netscape.jar"/>
+
+ <jar destfile="build/JmolApplet.jar"
+ manifest="manifest/appletMonolithic.txt" index="true"
>
+@@ -1072,7 +1070,7 @@ all support for previous versions remove
+ </target>
+
+ <target name="signed-applet" id="signed-applet"
depends="applet-jar">
+- <if><equals arg1="${Private.propertyFile}" arg2="none"
/>
++ <if><equals arg1="${Private.propertyFile}" arg2="xxx"
/>
+ <then><echo>Skipping applet jar
signing</echo></then><else>
+
+ <delete dir="build">
+@@ -1308,17 +1306,17 @@ all support for previous versions remove
+
+ </indexjars>
+ </jar>
+- <echo> signing JmolApplet*.jar</echo>
++ <!--<echo> signing JmolApplet*.jar</echo>
+ <antcall target="sign-jar-file">
+ <param name="sign-jar-file-dir" value="build" />
+ <param name="sign-jar-file-name" value="JmolApplet*.jar"
/>
+- </antcall>
++ </antcall>-->
+ </else></if>
+ </target>
+
+ <target name="smiles-applet-jar" id="smiles-applet-jar"
+ depends="applet-classes">
+- <if><equals arg1="${Private.propertyFile}" arg2="none"
/>
++ <if><equals arg1="${Private.propertyFile}" arg2="xxx"
/>
+ <then><echo>Skipping
smiles-applet-jar</echo></then><else>
+
+ <!-- JmolSmilesApplet.jar is skipped for now because it has no HTML5 equivalent
+@@ -1563,13 +1561,6 @@ all support for previous versions remove
+ </fileset>
+ </copy>
+
+- <copy todir="build/dist/jmolapisio-${version}/${lib.dir}" >
+- <fileset dir="${lib.dir}">
+- <!-- include name="${vecmath.jar}"/ -->
+- <include name="netscape.jar"/>
+- </fileset>
+- </copy>
+-
+ <tar tarfile="build/dist/jmolapisio-${version}.tar.gz"
+ compression="gzip" >
+ <tarfileset dir="build/dist"
+@@ -1846,7 +1837,7 @@ all support for previous versions remove
+ <mkdir dir="${test-classes.dir}"/>
+ <javac srcdir="test" destdir="${test-classes.dir}"
+ debug="off" deprecation="on"
+- optimize="off" source="1.7"
encoding="UTF8">
++ optimize="off" source="11" target="11"
encoding="UTF8">
+ <classpath>
+ <pathelement location="build/Jmol.jar" />
+ <pathelement location="./jars/junit.jar" />
diff --git a/jmol-java9.patch b/jmol-java9.patch
new file mode 100644
index 0000000..63766f7
--- /dev/null
+++ b/jmol-java9.patch
@@ -0,0 +1,107 @@
+--- src/javajs/util/DebugJS.java.orig 2020-09-26 11:17:38.000000000 -0600
++++ src/javajs/util/DebugJS.java 2020-09-29 17:20:02.175710733 -0600
+@@ -12,7 +12,7 @@ public class DebugJS {
+ * @param msg
+ *
+ */
+- public static void _(String msg) {
++ public static void x(String msg) {
+ /**
+ * @j2sNative
+ *
+--- src/jspecview/api/JSVTreeNode.java.orig 2020-09-26 11:17:38.000000000 -0600
++++ src/jspecview/api/JSVTreeNode.java 2020-09-29 17:20:02.176710733 -0600
+@@ -17,7 +17,7 @@ public interface JSVTreeNode {
+
+ PanelNode getPanelNode();
+
+- Enumeration<JSVTreeNode> children();
++ Enumeration<?> children();
+
+ int getIndex();
+
+--- src/jspecview/common/JSViewer.java.orig 2020-09-26 11:17:38.000000000 -0600
++++ src/jspecview/common/JSViewer.java 2020-09-29 17:20:02.177710733 -0600
+@@ -1507,14 +1507,14 @@ public class JSViewer implements Platfor
+ JSVTreeNode rootNode = spectraTree.getRootNode();
+ String fileName = (source == null ? null : source.getFilePath());
+ Lst<JSVTreeNode> toDelete = new Lst<JSVTreeNode>();
+- Enumeration<JSVTreeNode> enume = rootNode.children();
++ Enumeration<?> enume = rootNode.children();
+ while (enume.hasMoreElements()) {
+- JSVTreeNode node = enume.nextElement();
++ JSVTreeNode node = JSVTreeNode.class.cast(enume.nextElement());
+ if (fileName == null
+ || node.getPanelNode().source.matchesFilePath(fileName)) {
+ Logger.info("Closing " + node.getPanelNode().source.getFilePath());
+- for (Enumeration<JSVTreeNode> e = node.children(); e.hasMoreElements();)
{
+- JSVTreeNode childNode = e.nextElement();
++ for (Enumeration<?> e = node.children(); e.hasMoreElements();) {
++ JSVTreeNode childNode = JSVTreeNode.class.cast(e.nextElement());
+ toDelete.addLast(childNode);
+ panelNodes.removeObj(childNode.getPanelNode());
+ }
+--- src/jspecview/dialog/ViewsDialog.java.orig 2020-09-26 11:17:38.000000000 -0600
++++ src/jspecview/dialog/ViewsDialog.java 2020-09-29 17:20:02.178710732 -0600
+@@ -74,9 +74,9 @@ public class ViewsDialog extends JSVDial
+ }
+
+ private void addCheckBoxes(JSVTreeNode rootNode, int level, boolean isViews) {
+- Enumeration<JSVTreeNode> enume = rootNode.children();
++ Enumeration<?> enume = rootNode.children();
+ while (enume.hasMoreElements()) {
+- JSVTreeNode treeNode = enume.nextElement();
++ JSVTreeNode treeNode = JSVTreeNode.class.cast(enume.nextElement());
+ PanelNode node = treeNode.getPanelNode();
+ if (node.isView != isViews)
+ continue;
+@@ -122,9 +122,9 @@ public class ViewsDialog extends JSVDial
+ node.getPanelNode().isSelected = true;
+ checking = false;
+ }
+- Enumeration<JSVTreeNode> enume = node.children();
++ Enumeration<?> enume = node.children();
+ while (enume.hasMoreElements()) {
+- JSVTreeNode treeNode = enume.nextElement();
++ JSVTreeNode treeNode = JSVTreeNode.class.cast(enume.nextElement());
+ dialog.setSelected(checkBoxes.get(treeNode.getIndex()), isSelected);
+ treeNode.getPanelNode().isSelected = isSelected;
+ node.getPanelNode().isSelected = isSelected;
+--- src/org/jmol/util/JmolAudio.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/JmolAudio.java 2020-09-29 17:20:02.179710733 -0600
+@@ -23,6 +23,8 @@
+ */
+ package org.jmol.util;
+
++import java.io.ByteArrayInputStream;
++
+ import java.util.Map;
+
+ import javajs.J2SIgnoreImport;
+@@ -39,14 +41,11 @@ import javax.sound.sampled.Clip;
+ import javax.sound.sampled.Line;
+ import javax.sound.sampled.LineEvent;
+ import javax.sound.sampled.LineListener;
+-import sun.audio.AudioData;
+-import sun.audio.AudioDataStream;
+
+ @J2SIgnoreImport({ javax.sound.sampled.AudioInputStream.class,
+ javax.sound.sampled.AudioSystem.class, javax.sound.sampled.Clip.class,
+ javax.sound.sampled.Line.class, javax.sound.sampled.LineEvent.class,
+- javax.sound.sampled.LineListener.class, sun.audio.AudioData.class,
+- sun.audio.AudioDataStream.class })
++ javax.sound.sampled.LineListener.class })
+ public class JmolAudio implements javax.sound.sampled.LineListener, JmolAudioPlayer {
+
+ public JmolAudio() {
+@@ -114,8 +113,8 @@ public class JmolAudio implements javax.
+ }
+ myClip = (Clip) AudioSystem.getLine(new Line.Info(Clip.class));
+ myClip.addLineListener(this);
+- AudioInputStream ais = AudioSystem.getAudioInputStream(new AudioDataStream(
+- new AudioData((byte[]) data)));
++ AudioInputStream ais = AudioSystem.getAudioInputStream(
++ new ByteArrayInputStream((byte[]) data));
+ myClip.open(ais);
+ }
+
diff --git a/jmol-javadoc.patch b/jmol-javadoc.patch
new file mode 100644
index 0000000..7cb5ba9
--- /dev/null
+++ b/jmol-javadoc.patch
@@ -0,0 +1,1905 @@
+--- build.xml.orig 2020-09-29 17:19:50.040711152 -0600
++++ build.xml 2020-09-29 17:20:13.169710363 -0600
+@@ -1677,7 +1677,7 @@ all support for previous versions remove
+ packagenames="org.openscience.*,org.jmol.*"
+ excludepackagenames="org.jmol.jcamp.*">
+ <classpath refid="project.class.path" />
+- <link
href="http://download.oracle.com/javase/7/docs/api/" />
++ <link href="file:///usr/share/javadoc/java/" />
+ <tag name="j2sIgnore" enabled="false" />
+ <tag name="j2sIgnoreSuperConstructor" enabled="false"
/>
+ <tag name="j2sOverride" enabled="false" />
+--- src/org/jmol/adapter/readers/cif/CifReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/cif/CifReader.java 2020-09-29 17:20:13.170710363 -0600
+@@ -708,7 +708,7 @@ public class CifReader extends AtomSetCo
+
+ /**
+ *
+- * the PDB transformation matrix cartesian --> fractional
++ * the PDB transformation matrix cartesian → fractional
+ *
+ * @throws Exception
+ */
+@@ -1826,7 +1826,7 @@ public class CifReader extends AtomSetCo
+ * uncertainty (dx) in the record. Note that this also "connects" the
atoms
+ * that might have been moved in a previous iteration.
+ *
+- * Also connect H atoms based on a distance <= 1.1 Angstrom from a nearby
++ * Also connect H atoms based on a distance ≤ 1.1 Angstrom from a nearby
+ * atom.
+ *
+ * Then create molecules.
+--- src/org/jmol/adapter/readers/cif/MMCifReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/cif/MMCifReader.java 2020-09-29 17:20:13.170710363
-0600
+@@ -463,7 +463,7 @@ public class MMCifReader extends CifRead
+ };
+
+ /**
+- * get canonical 1-letter DNA/RNA sequence code from 3-letter code. For example,
"2MG" --> "G"
++ * get canonical 1-letter DNA/RNA sequence code from 3-letter code. For example,
"2MG" → "G"
+ * @return true
+ * @throws Exception
+ */
+--- src/org/jmol/adapter/readers/cif/MSRdr.java.orig 2020-09-29 17:20:13.171710363 -0600
++++ src/org/jmol/adapter/readers/cif/MSRdr.java 2020-09-29 17:21:21.356708059 -0600
+@@ -340,7 +340,7 @@ public class MSRdr implements MSInterfac
+
+ /**
+ * Create a script that will run to turn modulation on and to display only
+- * atoms with modulated occupancy >= 0.5.
++ * atoms with modulated occupancy ≥ 0.5.
+ *
+ */
+ @Override
+--- src/org/jmol/adapter/readers/molxyz/MolReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/molxyz/MolReader.java 2020-09-29 17:20:13.172710363
-0600
+@@ -49,7 +49,7 @@ import org.jmol.util.Logger;
+ *
+ * setAtomCoord(atom, x, y, z) applySymmetryAndSetTrajectory()
+ *
+- * simple 2D-->3D conversion using
++ * simple 2D→3D conversion using
+ *
+ * load "xxx.mol" FILTER "2D"
+ *
+--- src/org/jmol/adapter/readers/molxyz/V3000Rdr.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/molxyz/V3000Rdr.java 2020-09-29 17:20:13.172710363
-0600
+@@ -37,7 +37,7 @@ import org.jmol.adapter.smarter.AtomSetC
+ * <p>
+ * <a
href='http://www.mdli.com/downloads/public/ctfile/ctfile.jsp'>
+ *
http://www.mdli.com/downloads/public/ctfile/ctfile.jsp </a>
+- * <p>
++ * </p>
+ */
+ public class V3000Rdr {
+ private MolReader mr;
+--- src/org/jmol/adapter/readers/more/AFLOWReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/more/AFLOWReader.java 2020-09-29 17:20:13.173710362
-0600
+@@ -22,7 +22,7 @@ import org.jmol.util.Logger;
+ *
+ * or, in Jmol, from:
+ *
+- * print
load("http://aflowlib.mems.duke.edu/php/apool.php?POST?job=awrapper_...
++ * print
load("http://aflowlib.mems.duke.edu/php/apool.php?POST?job=awrapper_...
+ *
+ * Unit cells are centered.
+ *
+--- src/org/jmol/adapter/readers/more/JcampdxReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/more/JcampdxReader.java 2020-09-29 17:20:13.174710363
-0600
+@@ -51,34 +51,33 @@ import org.jmol.viewer.JC;
+ *
+ * specifications (by example here):
+ *
+- * ##$MODELS= <Models> <ModelData id="acetophenone"
type="MOL"> acetophenone
++ * ##$MODELS= <Models> <ModelData id="acetophenone"
type="MOL"> acetophenone
+ * DSViewer 3D 0
+ *
+- * 17 17 0 0 0 0 0 0 0 0999 V2000 ... 17 14 1 0 0 0 M END </ModelData>
+- * <ModelData id="irvibs" type="XYZVIB"
baseModel="acetophenone"
+- * vibrationScale="0.1"> 17 1 Energy: -1454.38826 Freq: 3199.35852 C
-1.693100
+- * 0.007800 0.000000 -0.000980 0.000120 0.000000 ... </ModelData>
</Models>
++ * 17 17 0 0 0 0 0 0 0 0999 V2000 ... 17 14 1 0 0 0 M END </ModelData>
++ * <ModelData id="irvibs" type="XYZVIB"
baseModel="acetophenone"
++ * vibrationScale="0.1"> 17 1 Energy: -1454.38826 Freq: 3199.35852 C
-1.693100
++ * 0.007800 0.000000 -0.000980 0.000120 0.000000 ... </ModelData>
</Models>
+ *
+ * -- All XML data should be line-oriented in the above fashion. Leading spaces
+- * will be ignored. -- Any number of <ModelData> segments can be present -- The
++ * will be ignored. -- Any number of <ModelData> segments can be present
-- The
+ * first model is referred to as the "base" model -- The base model: -- will
+ * generally be of type MOL, but any known type is acceptable -- will be used to
+ * generate bonding for later models that have no bonding information -- will be
+ * the only model for NMR -- Additional models can represent vibrations (XYZ
+ * format) or MS fragmentation (MOL format, probably)
+ *
+- * ##$PEAKS= <Peaks type="IR" xUnits="1/cm"
yUnits="TRANSMITTANCE" > <PeakData
++ * ##$PEAKS= <Peaks type="IR" xUnits="1/cm"
yUnits="TRANSMITTANCE" > <PeakData
+ * id="1" title="asymm stretch of aromatic CH group (~3100 cm-1)"
+ * peakShape="broad" model="irvibs.1" xMax="3121"
xMin="3081" yMax="1" yMin="0"
+- * /> <PeakData id="2" title="symm stretch of aromatic CH group
(~3085 cm-1)"
++ * /> <PeakData id="2" title="symm stretch of aromatic CH
group (~3085 cm-1)"
+ * peakShape="broad" model="irvibs.2" xMax="3101"
xMin="3071" yMax="1" yMin="0"
+- * /> ... </Peaks>
++ * /> ... </Peaks>
+ *
+ * -- peak record must be a single line of information because Jmol will use
+ * line.trim() as a key to pass information to JSpecView.
+ *
+ *
+- * <p>
+ */
+
+ public class JcampdxReader extends MolReader implements JmolJDXMOLReader {
+@@ -311,7 +310,7 @@ public class JcampdxReader extends MolRe
+ }
+
+ /**
+- * integrate the <PeakAssignment> records into the associated models, and
++ * integrate the <PeakAssignment> records into the associated models,
and
+ * delete unreferenced n.m models
+ */
+ private void processPeakData() {
+--- src/org/jmol/adapter/readers/more/MdTopReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/more/MdTopReader.java 2020-09-29 17:20:13.175710363
-0600
+@@ -34,10 +34,6 @@ import org.jmol.util.Logger;
+ * requires subsequent COORD "xxxx.mdcrd" file
+ *
+ *<p>
+- * <a href=''>
+- *
+- * </a>
+- *
+ * PDB note:
+ *
+ * Note that topology format does not include chain designations,
+@@ -49,7 +45,7 @@ import org.jmol.util.Logger;
+ * In principal we could use average atomic mass.
+ *
+ *
+- *<p>
++ *</p>
+ */
+
+ public class MdTopReader extends ForceFieldReader {
+--- src/org/jmol/adapter/readers/more/Mol2Reader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/more/Mol2Reader.java 2020-09-29 17:20:13.175710363
-0600
+@@ -34,7 +34,7 @@ import org.jmol.api.JmolAdapter;
+ /**
+ * A minimal multi-file reader for TRIPOS SYBYL mol2 files.
+ *<p>
+- * <a
href='http://www.tripos.com/data/support/mol2.pdf '>
++ * <a
href='http://www.tripos.com/data/support/mol2.pdf'>
+ *
http://www.tripos.com/data/support/mol2.pdf
+ * </a>
+ *
+@@ -48,7 +48,7 @@ import org.jmol.api.JmolAdapter;
+ *
+ * Chains based on numbering reset just labeled A B C D .... Z a b c d .... z
+ *
+- *<p>
++ *</p>
+ */
+
+ public class Mol2Reader extends ForceFieldReader {
+--- src/org/jmol/adapter/readers/pdb/PdbReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/pdb/PdbReader.java 2020-09-29 17:20:13.176710363 -0600
+@@ -63,7 +63,7 @@ import java.util.Map;
+ *
+ * TLS Motion Determination:
+ *
+- * J Painter & E A Merritt (2006) Acta Cryst. D62, 439-450
++ * J Painter & E A Merritt (2006) Acta Cryst. D62, 439-450
+ *
http://skuld.bmsc.washington.edu/~tlsmd
+ *
+ * symmetry added by Bob Hanson:
+--- src/org/jmol/adapter/readers/pymol/PickleReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/pymol/PickleReader.java 2020-09-29 17:20:13.177710362
-0600
+@@ -21,7 +21,7 @@ import javajs.util.Lst;
+ * 2013.04.06 -- added memo functions. PyMOL pickling is using LONG_BINPUT way too
often.
+ * This results in a huge unnecessary memory overhead. My only solution is to only
+ * cache Strings in memo, and then only selectively -- not parts of movie; not when
+- * markCount > 5 (residues). This seems to work, but it is still way overkill, since
each
++ * markCount > 5 (residues). This seems to work, but it is still way overkill,
since each
+ * atom generates several items.
+ *
+ * see
http://www.picklingtools.com/
+--- src/org/jmol/adapter/readers/pymol/PyMOL.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/pymol/PyMOL.java 2020-09-29 17:20:13.179710362 -0600
+@@ -22,7 +22,7 @@ import org.jmol.util.Logger;
+ * with note therein:
+ *
+ * for i in cmd.get_color_indices(1):
+- * print>>fp, (
++ * print>>fp, (
+ * ( i[1], i[0], ( int( cmd.get_color_tuple(i[0])[0]*255 ),
+ * int( cmd.get_color_tuple(i[0])[1]*255 ),
+ * int(cmd.get_color_tuple(i[0])[2]*255 )
+--- src/org/jmol/adapter/readers/pymol/PyMOLReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/pymol/PyMOLReader.java 2020-09-29 17:20:13.180710362
-0600
+@@ -55,12 +55,12 @@ import javajs.util.V3;
+ * development started Feb 2013 Jmol 13.1.13
+ * reasonably full implementation May 2013 Jmol 13.1.16
+ *
+- * PyMOL state --> Jmol model
+- * PyMOL object --> Jmol named atom set, isosurface, CGO, or measurement
+- * PyMOL group --> Jmol named atom set (TODO: add isosurfaces and measures to these?)
++ * PyMOL state → Jmol model
++ * PyMOL object → Jmol named atom set, isosurface, CGO, or measurement
++ * PyMOL group → Jmol named atom set (TODO: add isosurfaces and measures to
these?)
+ * PyMOL movie: an initial view and a set of N "frames"
+ * PyMOL frame: references (a) a state, (b) a script, and (c) a view
+- * PyMOL scene --> Jmol scene, including view, frame, visibilities, colors
++ * PyMOL scene → Jmol scene, including view, frame, visibilities, colors
+ *
+ * using set LOGFILE, we can dump this to a readable form.
+ *
+--- src/org/jmol/adapter/readers/pymol/PyMOLScene.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/adapter/readers/pymol/PyMOLScene.java 2020-09-29 17:20:13.181710363
-0600
+@@ -846,7 +846,7 @@ class PyMOLScene implements JmolSceneGen
+ * create all objects for a given molecule or scene
+ * @param reps
+ * @param allowSurface
+- * @param ac0 > 0 for a molecule; -1 for a scene
++ * @param ac0 > 0 for a molecule; -1 for a scene
+ * @param ac
+ */
+ void createShapeObjects(BS[] reps, boolean allowSurface, int ac0,
+--- src/org/jmol/adapter/readers/quantum/AdfReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/AdfReader.java 2020-09-29 17:20:13.181710363
-0600
+@@ -42,24 +42,24 @@ import java.util.Map;
+ *
+ * A reader for ADF output.
+ * Amsterdam Density Functional (ADF) is a quantum chemistry program
+- * by Scientific Computing & Modelling NV (SCM)
++ * by Scientific Computing & Modelling NV (SCM)
+ * (
http://www.scm.com/).
+ *
+ * <p> Molecular coordinates, energies, and normal coordinates of
+ * vibrations are read. Each set of coordinates is added to the
+ * ChemFile in the order they are found. Energies and vibrations
+- * are associated with the previously read set of coordinates.
++ * are associated with the previously read set of coordinates.</p>
+ *
+ * <p> This reader was developed from a small set of
+ * example output files, and therefore, is not guaranteed to
+ * properly read all ADF output. If you have problems,
+ * please contact the author of this code, not the developers
+- * of ADF.
++ * of ADF.</p>
+ *
+ *<p> Added note (Bob Hanson) -- 1/1/2010 --
+ * Trying to implement reading of orbitals; ran into the problem
+ * that the atomic Slater description uses Cartesian orbitals,
+- * but the MO refers to spherical orbitals.
++ * but the MO refers to spherical orbitals.</p>
+ *
+ *
+ * @author Bradley A. Smith (yeldar(a)home.com)
+--- src/org/jmol/adapter/readers/quantum/BasisFunctionReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/BasisFunctionReader.java 2020-09-29
17:20:13.182710362 -0600
+@@ -39,7 +39,7 @@ import java.util.Map;
+
+ /**
+ *
+- * @author hansonr <hansonr(a)stolaf.edu>
++ * @author hansonr &lt;hansonr(a)stolaf.edu&gt;
+ */
+ public abstract class BasisFunctionReader extends AtomSetCollectionReader {
+
+--- src/org/jmol/adapter/readers/quantum/CsfReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/CsfReader.java 2020-09-29 17:20:13.182710362
-0600
+@@ -47,7 +47,7 @@ import org.jmol.util.Logger;
+ * streamlined CSF dataset reading capabilities 2007/04/09
+ *
+ *
+- * @author hansonr <hansonr(a)stolaf.edu>
++ * @author hansonr &lt;hansonr(a)stolaf.edu&gt;
+ */
+ public class CsfReader extends MopacSlaterReader {
+
+--- src/org/jmol/adapter/readers/quantum/MoldenReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/MoldenReader.java 2020-09-29 17:20:13.183710362
-0600
+@@ -20,11 +20,11 @@ import org.jmol.util.Logger;
+ * A molecular structure and orbital reader for MolDen files.
+ * See
http://www.cmbi.ru.nl/molden/molden_format.html
+ *
+- * updated by Bob Hanson <hansonr(a)stolaf.edu> for Jmol 12.0/12.1
++ * updated by Bob Hanson &lt;hansonr(a)stolaf.edu&gt; for Jmol 12.0/12.1
+ *
+ * adding [spacegroup] [operators] [cell] [cellaxes] for Jmol 14.3.7
+ *
+- * @author Matthew Zwier <mczwier(a)gmail.com>
++ * @author Matthew Zwier &lt;mczwier(a)gmail.com&gt;
+ */
+
+ public class MoldenReader extends MopacSlaterReader {
+--- src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/MopacGraphfReader.java 2020-09-29
17:20:13.184710362 -0600
+@@ -35,7 +35,7 @@ import org.jmol.adapter.smarter.Atom;
+ /**
+ * Reads Mopac 2007 GRAPHF output files
+ *
+- * @author Bob Hanson <hansonr(a)stolaf.edu>
++ * @author Bob Hanson &lt;hansonr(a)stolaf.edu&gt;
+ *
+ */
+ public class MopacGraphfReader extends MopacSlaterReader {
+--- src/org/jmol/adapter/readers/quantum/MopacSlaterReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/MopacSlaterReader.java 2020-09-29
17:20:13.184710362 -0600
+@@ -25,7 +25,7 @@ package org.jmol.adapter.readers.quantum
+
+ /**
+ *
+- * @author hansonr <hansonr(a)stolaf.edu>
++ * @author hansonr &lt;hansonr(a)stolaf.edu&gt;
+ */
+ abstract class MopacSlaterReader extends SlaterReader {
+
+--- src/org/jmol/adapter/readers/quantum/QCJSONReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/QCJSONReader.java 2020-09-29 17:20:13.185710362
-0600
+@@ -18,11 +18,11 @@ import org.qcschema.QCSchemaUnits;
+ * A molecular structure and orbital reader for MolDen files.
+ * See
http://www.cmbi.ru.nl/molden/molden_format.html
+ *
+- * updated by Bob Hanson <hansonr(a)stolaf.edu> for Jmol 12.0/12.1
++ * updated by Bob Hanson &lt;hansonr(a)stolaf.edu&gt; for Jmol 12.0/12.1
+ *
+ * adding [spacegroup] [operators] [cell] [cellaxes] for Jmol 14.3.7
+ *
+- * @author Matthew Zwier <mczwier(a)gmail.com>
++ * @author Matthew Zwier &lt;mczwier(a)gmail.com&gt;
+ */
+
+ public class QCJSONReader extends MoldenReader {
+--- src/org/jmol/adapter/readers/quantum/SlaterReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/SlaterReader.java 2020-09-29 17:20:13.186710362
-0600
+@@ -35,7 +35,7 @@ import java.util.Map;
+
+ /**
+ *
+- * @author hansonr <hansonr(a)stolaf.edu>
++ * @author hansonr &lt;hansonr(a)stolaf.edu&gt;
+ */
+ abstract class SlaterReader extends BasisFunctionReader {
+
+@@ -60,8 +60,8 @@ abstract class SlaterReader extends Basi
+ *
+ * psi = (coef)(x^a)(y^b)(z^c)(r^d)exp(-zeta*r)
+ *
+- * Mopac: a == -2 ==> z^2 ==> (coef)(2z^2-x^2-y^2)(r^d)exp(-zeta*r)
+- * and: b == -2 ==> (coef)(x^2-y^2)(r^d)exp(-zeta*r)
++ * Mopac: a == -2 → z^2 → (coef)(2z^2-x^2-y^2)(r^d)exp(-zeta*r)
++ * and: b == -2 → (coef)(x^2-y^2)(r^d)exp(-zeta*r)
+ *
+ * @param iAtom now 1-based
+ * @param a
+--- src/org/jmol/adapter/readers/quantum/WebMOReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/quantum/WebMOReader.java 2020-09-29 17:20:13.187710362
-0600
+@@ -46,7 +46,7 @@ import org.jmol.util.Logger;
+ * </a>
+ *
+ * right now WebMO files don't allow for multiple MOS, but we will assume here that
that may change.
+- *<p>
++ *</p>
+ */
+ public class WebMOReader extends MopacSlaterReader {
+
+--- src/org/jmol/adapter/readers/simple/GhemicalMMReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/simple/GhemicalMMReader.java 2020-09-29
17:20:13.187710362 -0600
+@@ -67,7 +67,7 @@ import org.jmol.api.JmolAdapter;
+ * !End
+ * </code>
+ *
+- * @author Egon Willighagen <egonw(a)sci.kun.nl>
++ * @author Egon Willighagen &lt;egonw(a)sci.kun.nl&gt;
+ */
+ public class GhemicalMMReader extends AtomSetCollectionReader {
+
+--- src/org/jmol/adapter/readers/simple/HyperChemReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/simple/HyperChemReader.java 2020-09-29
17:20:13.187710362 -0600
+@@ -32,7 +32,7 @@ import org.jmol.api.JmolAdapter;
+ /**
+ * Support for .hin, HyperChem's native file format.
+ *
http://www.hyper.com
+- * <p />
++ * <p>
+ * Record format is:
+ * <code>
+ * atom 1 - C ** - -0.06040 0.00000 0.00000 0.00000 3 2 a 6 a 38 s
+@@ -40,8 +40,8 @@ import org.jmol.api.JmolAdapter;
+ * atom 67 - H ** - 0.17710 -7.10260 -3.74840 2.24660 1 34 s
+ * endmol 1
+ * </code>
+- * interesting fields are partialCharge, x, y, z, bondCount<br />
+- * bonds are atom number and s/d/t/a for single/double/triple/aromatic
++ * interesting fields are partialCharge, x, y, z, bondCount<br>
++ * bonds are atom number and s/d/t/a for single/double/triple/aromatic</p>
+ */
+ public class HyperChemReader extends AtomSetCollectionReader {
+
+--- src/org/jmol/adapter/readers/simple/MopacReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/simple/MopacReader.java 2020-09-29 17:20:13.188710362
-0600
+@@ -34,7 +34,7 @@ import org.jmol.util.Logger;
+ /**
+ * Reads Mopac 93, 6, 7, 2002, or 2009 output files
+ *
+- * @author Egon Willighagen <egonw(a)jmol.org>
++ * @author Egon Willighagen &lt;egonw(a)jmol.org&gt;
+ */
+ public class MopacReader extends AtomSetCollectionReader {
+
+--- src/org/jmol/adapter/readers/xtal/CrystalReader.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/adapter/readers/xtal/CrystalReader.java 2020-09-29 17:20:13.189710362
-0600
+@@ -73,7 +73,7 @@ import org.jmol.util.Tensor;
+ * mat4CrystalToPrimitive M4 convenience inverse of
+ * mat4PrimitiveToCrystal
+ *
+- * fileSymmetryOperations List<String> symmetry operators (primitive)
++ * fileSymmetryOperations List<String> symmetry operators
(primitive)
+ *
+ * Drawing primitive unitcell operations:
+ *
+@@ -95,7 +95,7 @@ import org.jmol.util.Tensor;
+ *
+ * load "xxx.out" n
+ *
+- * as for all readers, where n is an integer > 0
++ * as for all readers, where n is an integer > 0
+ *
+ * for final optimized geometry use
+ *
+@@ -1047,7 +1047,7 @@ public class CrystalReader extends AtomS
+ /**
+ * Read the lattice parameters.
+ *
+- * @param isNewSet
++ * @param isPrimitive
+ * @throws Exception
+ */
+ private void readLatticeParams(boolean isPrimitive) throws Exception {
+--- src/org/jmol/api/JmolViewer.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/api/JmolViewer.java 2020-09-29 17:20:13.189710362 -0600
+@@ -412,7 +412,7 @@ abstract public class JmolViewer {
+ * NOTE: THIS METHOD DOES NOT PRESERVE THE STATE
+ *
+ * @param arrayData a Vector of models, where each model is either a String
+- * or a String[] or a Vector<String>
++ * or a String[] or a Vector<String>
+ * @param isAppend TRUE to append models (no ZAP)
+ * @return null or error message
+ */
+--- src/org/jmol/awt/FileDropper.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/awt/FileDropper.java 2020-09-29 17:20:13.190710362 -0600
+@@ -59,7 +59,7 @@ import org.jmol.viewer.Viewer;
+ * <p>
+ * Note that multiple drops ARE thread safe.
+ *
+- * @author Billy <simon.tyrrell(a)virgin.net>
++ * @author Billy &lt;simon.tyrrell(a)virgin.net&gt;
+ */
+ public class FileDropper implements DropTargetListener {
+ private String fd_oldFileName;
+--- src/org/jmol/awtjs2d/Platform.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/awtjs2d/Platform.java 2020-09-29 17:20:13.190710362 -0600
+@@ -25,11 +25,11 @@ import javajs.util.SB;
+ /**
+ * JavaScript 2D canvas version requires Ajax-based URL stream processing.
+ *
+- * Jmol "display" --> HTML5 "canvas"
+- * Jmol "image" --> HTML5 "canvas" (because we need width and
height)
+- * Jmol "graphics" --> HTML5 "context(2d)" (one for display, one
off-screen for fonts)
+- * Jmol "font" --> JmolFont
+- * Jmol "fontMetrics" --> HTML5 "context(2d)"
++ * Jmol "display" → HTML5 "canvas"
++ * Jmol "image" → HTML5 "canvas" (because we need width and
height)
++ * Jmol "graphics" → HTML5 "context(2d)" (one for display,
one off-screen for fonts)
++ * Jmol "font" → JmolFont
++ * Jmol "fontMetrics" → HTML5 "context(2d)"
+ * (Not fully implemented)
+ *
+ * @author Bob Hanson
+--- src/org/jmol/awtjs/swing/SwingController.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/awtjs/swing/SwingController.java 2020-09-29 17:20:13.191710362 -0600
+@@ -26,7 +26,7 @@ public interface SwingController {
+ * var component = Jmol.Swing.htDialogs[element.id];
+ * var info = component.toString();
+ *
+- * if (info.indexOf("JCheck") >= 0)
++ * if (info.indexOf("JCheck") ≥ 0)
+ * component.selected = element.checked;
+ * var id = $("div.JDialog:has(#" + element.id + ")")[0].id
+ * var dialog = Jmol.Swing.htDialogs[id];
+--- src/org/jmol/bspt/Bspt.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/bspt/Bspt.java 2020-09-29 17:20:13.191710362 -0600
+@@ -46,13 +46,15 @@ import javajs.util.T3;
+ * We are working with three dimensions. For the purposes of the Bspt code these
+ * dimensions are stored as 0, 1, or 2. Each node of the tree splits along the
+ * next dimension, wrapping around to 0.
++ * </p>
+ *
+ * <pre>
+ * mySplitDimension = (parentSplitDimension + 1) % 3;
+ * </pre>
+ *
+- * A split value is stored in the node. Values which are <= splitValue are
+- * stored down the left branch. Values which are >= splitValue are stored down
++ * <p>
++ * A split value is stored in the node. Values which are ≤ splitValue are
++ * stored down the left branch. Values which are ≥ splitValue are stored down
+ * the right branch. If searchValue == splitValue then the search must proceed
+ * down both branches.
+ *</p>
+--- src/org/jmol/bspt/PointIterator.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/bspt/PointIterator.java 2020-09-29 17:20:13.192710362 -0600
+@@ -39,7 +39,7 @@ public class PointIterator {
+ * @param pt if not null and pt.x == Float.NaN, this is an internal comparison, to
return a "cleaned" list of points
+ * @param ap3 the list of points, required
+ * @param ap31 a second list of points, optional
+- * @param ret null, "", int[], Lst<T3>, or P3
++ * @param ret null, "", int[], Lst<T3>, or P3
+ * @return T.nada, T.string, T.array, T.list, T.point
+ */
+ public static int withinDistPoints(float distance, P3 pt, P3[] ap3, P3[] ap31,
Object[] ret) {
+--- src/org/jmol/dssx/AnnotationParser.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/dssx/AnnotationParser.java 2020-09-29 17:20:13.192710362 -0600
+@@ -310,7 +310,7 @@ public class AnnotationParser implements
+ }
+
+ /**
+- * Returns a Lst<Object> of property data in the form name(String),
++ * Returns a Lst<Object> of property data in the form name(String),
+ * data(float[]), modelIndex (Integer), isGroup (Boolean);
+ *
+ */
+--- src/org/jmol/dssx/DSSP.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/dssx/DSSP.java 2020-09-29 17:20:13.193710362 -0600
+@@ -363,9 +363,9 @@ public class DSSP {
+ * the interatomic distance from A to B. In chemical units, r is in angstroms,
+ * the dimensional factor f = 332, and E is in kcal/mol. We ... assign an H
+ * bond between C=O of residue i and N-H of residue j if E is less than the
+- * cutoff, i.e., "Hbond(i,j) =: [E < -0.5 kcal/mol]."
++ * cutoff, i.e., "Hbond(i,j) =: [E < -0.5 kcal/mol]."
+ *
+- * @return array of dual-minmum NH-->O=C H bonds
++ * @return array of dual-minmum NH→O=C H bonds
+ *
+ */
+ private int[][][][] getDualHydrogenBondArray() {
+@@ -704,9 +704,9 @@ public class DSSP {
+ *
+ * A basic turn pattern (Fig. 2) is a single H bond of type (i,i+n). We
+ * assign an n-turn at residue i if there is an H bond from CO(i) to NH(i+n)....
+- * When the pattern is found, the ends of the H bond are indicated using
">" at i
+- * and "<" at i+n...; the residues bracketed by the H bond are noted
"3," "4," or "5"
+- * unless they are also end points of other H bonds. Coincidence of ">"
and "<" at
++ * When the pattern is found, the ends of the H bond are indicated using
">" at i
++ * and "<" at i+n...; the residues bracketed by the H bond are noted
"3," "4," or "5"
++ * unless they are also end points of other H bonds. Coincidence of
">" and "<" at
+ * one residue is indicated by "X." ... Residues bracketed by the hydrogen
bond
+ * are marked "T," unless they are part of an n-helix (defined below).
+ *
+--- src/org/jmol/i18n/Language.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/i18n/Language.java 2020-09-29 17:20:13.193710362 -0600
+@@ -135,7 +135,7 @@ public class Language {
+ * @param nativeLanguage Language name in its own language (see ISO 639-1 for the
values)
+ * @param display True if this language has a good percentage of translations done
+ *
+- * {@link "http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes"}
++ * See <a
href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">the list of
ISO-639-1 codes</a>.
+ */
+ private Language(String code, String language, String nativeLanguage, boolean display)
{
+ this.code = code;
+--- src/org/jmol/jvxl/api/VertexDataServer.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/jvxl/api/VertexDataServer.java 2020-09-29 17:20:13.193710362 -0600
+@@ -42,7 +42,7 @@ public interface VertexDataServer {
+ * where fraction is generally calculated as:
+ *
+ * fraction = (cutoff - valueA) / (valueB - valueA);
+- * if (isCutoffAbsolute && (fraction < 0 || fraction > 1))
++ * if (isCutoffAbsolute && (fraction < 0 || fraction >
1))
+ * fraction = (-cutoff - valueA) / (valueB - valueA);
+ *
+ * This method is also used by MarchingCubes to deliver the appropriate
+--- src/org/jmol/jvxl/data/JvxlCoder.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/jvxl/data/JvxlCoder.java 2020-09-29 17:20:13.194710362 -0600
+@@ -431,12 +431,12 @@ public class JvxlCoder {
+
+ /**
+ * contour data are appended to a string buffer in the form of a
+- * <jmolContourData count="[nContours]">
+- * <jmolContour index="0" value="-0.033"
color="[xff0000]" encoding="base90iff1" data="fractional
data">triangle bitset data</jmolContour>
+- * <jmolContour index="1" value=" 0.000"
color="[xffff00]" encoding="base90iff1" data="fractional
data">triangle bitset data</jmolContour>
+- * <jmolContour index="2" value=" 0.033"
color="[x00ffff]" encoding="base90iff1" data="fractional
data">triangle bitset data</jmolContour>
++ * <jmolContourData count="[nContours]">
++ * <jmolContour index="0" value="-0.033"
color="[xff0000]" encoding="base90iff1" data="fractional
data">triangle bitset data</jmolContour>
++ * <jmolContour index="1" value=" 0.000"
color="[xffff00]" encoding="base90iff1" data="fractional
data">triangle bitset data</jmolContour>
++ * <jmolContour index="2" value=" 0.033"
color="[x00ffff]" encoding="base90iff1" data="fractional
data">triangle bitset data</jmolContour>
+ * ...
+- * </jmolContourData>
++ * </jmolContourData>
+ *
+ * One presumes an ordered set of triangles.
+ * The contour intersects these triangles along two edges or at two vertices.
+@@ -672,7 +672,7 @@ public class JvxlCoder {
+ *
+ * ASCII:
+ * -30 -20 -10 0 +10 +20 +30
+- * <=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|
++ *
<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|
+ *
+ * So the above sequence would simply be:
+ *
+@@ -780,8 +780,8 @@ public class JvxlCoder {
+ *
+ * The tag will indicate the minimum and maximum values:
+ *
+- * <jvxlVertexData count="150" min="(15.218472, -28.304049,
34.71112)"
+- * max="(97.8228, 54.011948, 109.95208)" data="....">
</jvxlVertexData>
++ * <jvxlVertexData count="150" min="(15.218472, -28.304049,
34.71112)"
++ * max="(97.8228, 54.011948, 109.95208)" data="....">
</jvxlVertexData>
+ *
+ * The resultant string is really two strings of length nData where the first
+ * string lists the "high" part of the positions, and the second string
lists
+--- src/org/jmol/jvxl/data/VolumeData.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/jvxl/data/VolumeData.java 2020-09-29 17:20:13.194710362 -0600
+@@ -428,7 +428,7 @@ public class VolumeData {
+ * periodic grids should have val[0] == val[xMax]
+ *
+ * voxelCount: 1....2....3....4....5 xMax/index: 0....1....2....3....4....
+- * nonper. ^ ---> [0,0] ^ --> [4, 4] periodic ^ ---> [3,4] ^ --> [0, 1]
++ * nonper. ^ → [0,0] ^ → [4, 4] periodic ^ → [3,4] ^
→ [0, 1]
+ *
+ * @param x
+ * @param xMax
+--- src/org/jmol/jvxl/readers/BCifDensityReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/jvxl/readers/BCifDensityReader.java 2020-09-29 17:20:13.195710362 -0600
+@@ -45,7 +45,7 @@ import org.jmol.util.Logger;
+ * Binary CIF density reader. See
https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box,
+ * for example:
+ *
+- *
https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/...
++ *
https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/...
+ *
+ * Reads a MessagePack file and extracts either 2Fo-Fc or Fo-Fc.
+ *
+--- src/org/jmol/jvxl/readers/CifDensityReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/jvxl/readers/CifDensityReader.java 2020-09-29 17:20:13.195710362 -0600
+@@ -36,7 +36,7 @@ import javajs.util.PT;
+ * CIF density reader. See
https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box,
+ * for example:
+ *
+- *
https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/...
++ *
https://www.ebi.ac.uk/pdbe/densities/x-ray/1eve/box/-4.413,55.607,64.124/...
+ *
+ * Extends BCifDensityReader just enough to handle nonbinary CIF data.
+ *
+--- src/org/jmol/jvxl/readers/JvxlXmlReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/jvxl/readers/JvxlXmlReader.java 2020-09-29 17:20:13.196710362 -0600
+@@ -735,7 +735,7 @@ public class JvxlXmlReader extends Volum
+
+ /**
+ * retrieve Jvxl 2.0 format vertex/triangle/edge/color data found
+- * within <jvxlSurfaceData> element
++ * within <jvxlSurfaceData> element
+ *
+ * @throws Exception
+ */
+@@ -777,7 +777,7 @@ public class JvxlXmlReader extends Volum
+ }
+
+ /**
+- * decode vertex data found within <jvxlVertexData> element as created by
++ * decode vertex data found within <jvxlVertexData> element as created
by
+ * jvxlEncodeVertexData (see above)
+ *
+ * @param data
+@@ -842,7 +842,7 @@ public class JvxlXmlReader extends Volum
+ }
+
+ /**
+- * decode triangle data found within <jvxlTriangleData> element as created
++ * decode triangle data found within <jvxlTriangleData> element as
created
+ * with jvxlEncodeTriangleData (see above)
+ *
+ * @param tdata
+--- src/org/jmol/jvxl/readers/KinemageReader.java.orig 2020-09-26 11:17:39.000000000
-0600
++++ src/org/jmol/jvxl/readers/KinemageReader.java 2020-09-29 17:20:13.196710362 -0600
+@@ -219,7 +219,7 @@ class KinemageReader extends PmeshReader
+ */
+
+ /**
+- * C++ code gives these as " value > x.x ? "xxxxx", etc.
++ * C++ code gives these as " value > x.x ? "xxxxx", etc.,
+ * so technically we are off by a smidgeon. But they are the
+ * reference numbers, so we will use them inclusively instead.
+ *
+--- src/org/jmol/minimize/forcefield/ForceFieldMMFF.java.orig 2020-09-26
11:17:39.000000000 -0600
++++ src/org/jmol/minimize/forcefield/ForceFieldMMFF.java 2020-09-29 17:20:13.197710362
-0600
+@@ -64,7 +64,7 @@ import org.jmol.viewer.JmolAsyncExceptio
+ *
+ * T. A. Halgren; "Merck Molecular Force Field. V. Extension of MMFF94
+ * Using Experimental Data, Additional Computational Data,
+- * and Empirical Rules", J. Comp. Chem. 5 & 6 616-641 (1996).
++ * and Empirical Rules", J. Comp. Chem. 5 & 6 616-641 (1996).
+ *
+ * Parameter files are clipped from the original Wiley FTP site supplemental material:
+ *
+@@ -73,17 +73,17 @@ import org.jmol.viewer.JmolAsyncExceptio
+ * Original work, as listed at
http://towhee.sourceforge.net/forcefields/mmff94.html:
+ *
+ * T. A. Halgren; "Merck Molecular Force Field. I. Basis, Form, Scope,
+- * Parameterization, and Performance of MMFF94", J. Comp. Chem. 5 & 6
490-519 (1996).
++ * Parameterization, and Performance of MMFF94", J. Comp. Chem. 5 & 6
490-519 (1996).
+ * T. A. Halgren; "Merck Molecular Force Field. II. MMFF94 van der Waals
+ * and Electrostatic Parameters for Intermolecular Interactions",
+- * J. Comp. Chem. 5 & 6 520-552 (1996).
++ * J. Comp. Chem. 5 & 6 520-552 (1996).
+ * T. A. Halgren; "Merck Molecular Force Field. III. Molecular Geometries and
+- * Vibrational Frequencies for MMFF94", J. Comp. Chem. 5 & 6 553-586
(1996).
++ * Vibrational Frequencies for MMFF94", J. Comp. Chem. 5 & 6 553-586
(1996).
+ * T. A. Halgren; R. B. Nachbar; "Merck Molecular Force Field. IV.
+- * Conformational Energies and Geometries for MMFF94", J. Comp. Chem. 5 &
6 587-615 (1996).
++ * Conformational Energies and Geometries for MMFF94", J. Comp. Chem. 5
& 6 587-615 (1996).
+ * T. A. Halgren; "Merck Molecular Force Field. V. Extension of MMFF94
+ * Using Experimental Data, Additional Computational Data,
+- * and Empirical Rules", J. Comp. Chem. 5 & 6 616-641 (1996).
++ * and Empirical Rules", J. Comp. Chem. 5 & 6 616-641 (1996).
+ * T. A. Halgren; "MMFF VII. Characterization of MMFF94, MMFF94s,
+ * and Other Widely Available Force Fields for Conformational Energies
+ * and for Intermolecular-Interaction Energies and Geometries",
+--- src/org/jmol/minimize/Util.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/minimize/Util.java 2020-09-29 17:20:13.198710362 -0600
+@@ -119,7 +119,7 @@ public class Util {
+
+ /**
+ *
+- * calculates angle of a to plane bcd, returning a value > pi/2 in
++ * calculates angle of a to plane bcd, returning a value > pi/2 in
+ * highly distorted trigonal pyramidal situations
+ *
+ * @param a
+--- src/org/jmol/modelkit/ModelKitPopup.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/modelkit/ModelKitPopup.java 2020-09-29 17:20:13.198710362 -0600
+@@ -1307,7 +1307,6 @@ abstract public class ModelKitPopup exte
+ *
+ * @param pressed
+ * @param dragged
+- * @param index
+ * @param countPlusIndices
+ * @return true if handled here
+ */
+--- src/org/jmol/modelsetbio/AlphaPolymer.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/modelsetbio/AlphaPolymer.java 2020-09-29 17:20:13.199710362 -0600
+@@ -143,12 +143,13 @@ public class AlphaPolymer extends BioPol
+ /////////////////////////////////////////////////////////////
+
+ /**
+- * Uses Levitt & Greer algorithm to calculate protein secondary
++ * Uses Levitt & Greer algorithm to calculate protein secondary
+ * structures using only alpha-carbon atoms.
+ *<p>
+- * Levitt and Greer <br />
+- * Automatic Identification of Secondary Structure in Globular Proteins <br />
+- * J.Mol.Biol.(1977) 114, 181-293 <br />
++ * Levitt and Greer <br>
++ * Automatic Identification of Secondary Structure in Globular Proteins <br>
++ * J.Mol.Biol.(1977) 114, 181-293
++ *</p>
+ *<p>
+ * <a
+ *
href='http://csb.stanford.edu/levitt/Levitt_JMB77_Secondary_structure...
+--- src/org/jmol/modelsetbio/AminoPolymer.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/modelsetbio/AminoPolymer.java 2020-09-29 17:20:13.199710362 -0600
+@@ -279,7 +279,7 @@ public class AminoPolymer extends AlphaP
+ * checkDistances:
+ *
+ * When we are seriously looking for H bonds, we want to
+- * also check that distCN > distCH and that the OH distance
++ * also check that distCN > distCH and that the OH distance
+ * is less than 3 Angstroms. Otherwise that's just too strange
+ * a hydrogen bond. (We get hydrogen bonds from i to i+2, for example)
+ *
+--- src/org/jmol/modelsetbio/BioResolver.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/modelsetbio/BioResolver.java 2020-09-29 17:20:13.199710362 -0600
+@@ -1525,7 +1525,7 @@ public final class BioResolver implement
+ * FF8060 - light tomato
+ * 00FF7F - springgreen
+ *
+-cpk on; select atomno>100; label %i; color chain; select selected & hetero; cpk
off
++cpk on; select atomno>100; label %i; color chain; select selected &
hetero; cpk off
+ ****************************************************************/
+
+ private final static int[] argbsChainAtom = {
+--- src/org/jmol/modelsetbio/Monomer.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/modelsetbio/Monomer.java 2020-09-29 17:20:13.200710362 -0600
+@@ -55,7 +55,7 @@ import java.util.Map;
+ public abstract class Monomer extends Group {
+
+ /**
+- * @j2sIngore
++ * @j2sIgnore
+ */
+
+ public Monomer() {
+--- src/org/jmol/modelset/Group.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/modelset/Group.java 2020-09-29 17:20:13.200710362 -0600
+@@ -92,7 +92,7 @@ public class Group implements Structure
+
+
+ /**
+- * @j2sIngore
++ * @j2sIgnore
+ */
+ public Group() {}
+
+--- src/org/jmol/modelset/ModelLoader.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/modelset/ModelLoader.java 2020-09-29 17:20:13.201710361 -0600
+@@ -672,7 +672,7 @@ public final class ModelLoader {
+ * file * 1000000 + modelInFile (1-based)
+ *
+ * Used all over the place. Note that if there is only one file, then
+- * modelFileNumber < 1000000.
++ * modelFileNumber < 1000000.
+ *
+ * String modelNumberDotted
+ *
+--- src/org/jmol/modelset/ModelSet.java.orig 2020-09-26 11:17:39.000000000 -0600
++++ src/org/jmol/modelset/ModelSet.java 2020-09-29 17:20:13.201710361 -0600
+@@ -3800,7 +3800,7 @@ public class ModelSet extends BondCollec
+ *
+ * @param pt point to invert around if not null
+ * @param plane plane to invert across if not null
+- * @param iAtom atom to switch two groups on if >= 0
++ * @param iAtom atom to switch two groups on if ≥ 0
+ * @param bsAtoms atoms to switch for the atom option
+ */
+ public void invertSelected(P3 pt, P4 plane, int iAtom, BS bsAtoms) {
+--- src/org/jmol/multitouch/sparshui/TwoPointGesture.java.orig 2020-09-26
11:17:40.000000000 -0600
++++ src/org/jmol/multitouch/sparshui/TwoPointGesture.java 2020-09-29 17:20:13.202710362
-0600
+@@ -29,8 +29,8 @@ import com.sparshui.server.TouchPoint;
+ *
+ * v00 from pt(1,0) to pt(2,0)
+ *
+- * ZOOM IN: <---- x -----> (at any angle)
+- * ZOOM OUT: ----> x <----- (at any angle)
++ * ZOOM IN: <---- x -----> (at any angle)
++ * ZOOM OUT: ----> x <----- (at any angle)
+ *
+ * ROTATE CW: ^ |
+ * | x | (at any angle, not implemented)
+@@ -42,9 +42,9 @@ import com.sparshui.server.TouchPoint;
+ *
+ * 2-point drag:
+ *
+- * --------->
++ * --------->
+ * x (any direction)
+- * --------->
++ * --------->
+ *
+ * Bob Hanson 12/13/2009
+ *
+--- src/org/jmol/popup/JmolPopup.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/popup/JmolPopup.java 2020-09-29 17:20:13.202710362 -0600
+@@ -255,7 +255,7 @@ abstract public class JmolPopup extends
+ }
+
+ /**
+- * (1) setOption --> set setOption true or set setOption false
++ * (1) setOption → set setOption true or set setOption false
+ *
+ * @param item
+ *
+--- src/org/jmol/quantum/NciCalculation.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/quantum/NciCalculation.java 2020-09-29 17:20:13.202710362 -0600
+@@ -362,7 +362,7 @@ public class NciCalculation extends Quan
+ * that are too far away to make a difference before we waste
+ * time doing exponentiation.
+ *
+- * If index >= 0, then this is just a check for intra- vs. inter-
++ * If index ≥ 0, then this is just a check for intra- vs. inter-
+ * molecularity based on promolecular density. This is needed for
+ * applying intra- and inter-molecular filters to SCF CUBE data.
+ *
+--- src/org/jmol/quantum/NMRCalculation.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/quantum/NMRCalculation.java 2020-09-29 17:20:13.203710362 -0600
+@@ -314,7 +314,7 @@ public class NMRCalculation implements J
+ /**
+ * Creates the data set necessary for doing NMR calculations. Values are
+ * retrievable using getProperty "nmrInfo" "Xx"; each entry is
+- * float[+/-isotopeNumber, g, Q], where [0] < 0 for the default value.
++ * float[+/-isotopeNumber, g, Q], where [0] < 0 for the default value.
+ *
+ */
+ @SuppressWarnings("resource")
+--- src/org/jmol/quantum/NMRNoeMatrix.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/quantum/NMRNoeMatrix.java 2020-09-29 17:20:13.203710362 -0600
+@@ -87,7 +87,7 @@ import org.jmol.viewer.Viewer;
+ * if the atoms have not been set up properly.
+ *
+ * @author YE91009
+- * @created 28 February 2007
++ * @since 28 February 2007
+ */
+ public class NMRNoeMatrix {
+
+--- src/org/jmol/scriptext/MathExt.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/scriptext/MathExt.java 2020-09-29 17:20:13.204710361 -0600
+@@ -1705,7 +1705,7 @@ public class MathExt {
+ * _(key) prepends "auxiliaryInfo.models", delivering a modelCount-length
+ * array of information
+ *
+- * $ print _("aflowInfo[SELECT auid WHERE H__eV___VASP_ < 0]")
++ * $ print _("aflowInfo[SELECT auid WHERE H__eV___VASP_ < 0]")
+ *
+ *
+ * {atomset}._(key) selects for model Auxiliary info related to models of the
+@@ -1716,9 +1716,9 @@ public class MathExt {
+ *
+ * Examples:
+ *
+- * print _("aflowInfo[select sg where volume_cell > 70]")
++ * print _("aflowInfo[select sg where volume_cell > 70]")
+ *
+- * print {model>10}._("aflowInfo[select sg where volume_cell > 70]")
++ * print {model>10}._("aflowInfo[select sg where volume_cell >
70]")
+ *
+ * @param mp
+ * @param args
+@@ -1935,7 +1935,7 @@ public class MathExt {
+ }
+
+ /**
+- * [ {...},{...}... ] ==> [[...],[...]]
++ * [ {...},{...}... ] → [[...],[...]]
+ *
+ * @param listIn
+ * @param formatList
+--- src/org/jmol/script/ScriptCompiler.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/script/ScriptCompiler.java 2020-09-29 17:20:13.204710361 -0600
+@@ -1079,7 +1079,7 @@ public class ScriptCompiler extends Scri
+ *
+ * Check for special parameters, including:
+ *
+- * +, -, \, *, /, &, |, =, period, or [, single or double quote,
++ * +, -, \, *, /, &, |, =, period, or [, single or double quote,
+ * command-specific parameters, $.... identifiers, exponential notation,
+ * decimal numbers, sequence codes, integers, bitsets ({....}) or [{....}], or
+ * matrices
+@@ -2503,7 +2503,7 @@ public class ScriptCompiler extends Scri
+ /**
+ *
+ * look for end-of-line character \r, \n, or ; that is not within a command
+- * such as for (var i=0;i < 10; i++)
++ * such as {@code for (var i=0;i < 10; i++)}
+ *
+ * @param ch
+ * @return true if end of line
+@@ -2678,7 +2678,7 @@ public class ScriptCompiler extends Scri
+ * An "implied string" is a parameter that is not quoted but because of
its
+ * position in a command is implied to be a string. First we must exclude the
+ *
+- * @xxxx. Then we consume the entire math syntax @{......} or any set of
++ * {@literal @}xxxx. Then we consume the entire math syntax {@literal @}{......} or
any set of
+ * characters not involving white space. echo, hover, message, and
+ * pause are odd-valued; no initial parsing of variables for them.
+ *
+--- src/org/jmol/script/ScriptEval.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/script/ScriptEval.java 2020-09-29 17:20:13.205710362 -0600
+@@ -488,7 +488,7 @@ public class ScriptEval extends ScriptEx
+ * program counter is incremented to skip the initiating statement, and all
+ * parent contexts up the line are set with mustResumeEval = true.
+ *
+- * @param sc
++ * @param sco
+ */
+
+ @Override
+--- src/org/jmol/script/ScriptParam.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/script/ScriptParam.java 2020-09-29 17:20:13.206710362 -0600
+@@ -1070,7 +1070,7 @@ abstract public class ScriptParam extend
+ }
+
+ /**
+- * reads standard n.m float-as-integer n*1000000 + m and returns (n % 7) << 5
++ * reads standard n.m float-as-integer n*1000000 + m and returns (n % 7)
<< 5
+ * + (m % 0x1F)
+ *
+ * @param bondOrderInteger
+--- src/org/jmol/shapebio/BioShape.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/shapebio/BioShape.java 2020-09-29 17:20:13.206710362 -0600
+@@ -120,32 +120,32 @@ public class BioShape extends AtomShape
+ * <a
href='http://www.rcsb.org/pdb/lists/pdb-l/200303/000609.html'>
+ *
http://www.rcsb.org/pdb/lists/pdb-l/200303/000609.html
+ * </a>
+- * <code>
+- * > -----Original Message-----
+- * > From: pdb-l-admin(a)sdsc.edu [mailto:pdb-l-admin@sdsc.edu] On
+- * > Behalf Of Philipp Heuser
+- * > Sent: Thursday, March 27, 2003 6:05 AM
+- * > To: pdb-l(a)sdsc.edu
+- * > Subject: pdb-l: temperature factor; occupancy
+- * >
+- * >
+- * > Hi all!
+- * >
+- * > Does anyone know where to find proper definitions for the
+- * > temperature factors
+- * > and the values for occupancy?
+- * >
+- * > Alright I do know, that the atoms with high temperature
+- * > factors are more
+- * > disordered than others, but what does a temperature factor of
+- * > a specific
+- * > value mean exactly.
+- * >
+- * >
+- * > Thanks in advance!
+- * >
+- * > Philipp
+- * >
++ * <pre><code>
++ * > -----Original Message-----
++ * > From: pdb-l-admin(a)sdsc.edu [mailto:pdb-l-admin@sdsc.edu] On
++ * > Behalf Of Philipp Heuser
++ * > Sent: Thursday, March 27, 2003 6:05 AM
++ * > To: pdb-l(a)sdsc.edu
++ * > Subject: pdb-l: temperature factor; occupancy
++ * >
++ * >
++ * > Hi all!
++ * >
++ * > Does anyone know where to find proper definitions for the
++ * > temperature factors
++ * > and the values for occupancy?
++ * >
++ * > Alright I do know, that the atoms with high temperature
++ * > factors are more
++ * > disordered than others, but what does a temperature factor of
++ * > a specific
++ * > value mean exactly.
++ * >
++ * >
++ * > Thanks in advance!
++ * >
++ * > Philipp
++ * >
+ * pdb-l: temperature factor; occupancy
+ * Bernhard Rupp br(a)llnl.gov
+ * Thu, 27 Mar 2003 08:01:29 -0800
+@@ -154,7 +154,7 @@ public class BioShape extends AtomShape
+ * * Next message: pdb-l: Structural alignment?
+ * * Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
+ *
+- * Isotropic B is defined as 8*pi**2<u**2>.
++ * Isotropic B is defined as 8*pi**2<u**2>.
+ *
+ * Meaning: eight pi squared =79
+ *
+@@ -174,7 +174,7 @@ public class BioShape extends AtomShape
+ * for more examples.
+ *
+ * BR
+- *</code>
++ *</code></pre>
+ *
+ * @param bFactor100
+ * @return ?
+--- src/org/jmol/shapespecial/Polyhedra.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/shapespecial/Polyhedra.java 2020-09-29 17:20:13.206710362 -0600
+@@ -645,7 +645,7 @@ public class Polyhedra extends AtomShape
+ /**
+ *
+ * @param id may be null
+- * @param iatom may be < 0 to (along with id==null) to get matching polyhedron
++ * @param iatom may be < 0 to (along with id==null) to get matching polyhedron
+ * @param allowCollapsed
+ * @return Polyhedron or null
+ */
+@@ -1382,7 +1382,7 @@ public class Polyhedra extends AtomShape
+ * Objective is to find all triangles with *essentially* the same normal and to
+ * then group them into a face. But we have to be careful here; not everything is
+ * perfect. We can have be so slightly off in a 4- or 6-face, and we still want it
+- * to be called a face. We allow a normal dot product (i.e. cos(theta)) to be <
0.05.
++ * to be called a face. We allow a normal dot product (i.e. cos(theta)) to be <
0.05.
+ * This empirically seems to work.
+ *
+ * @param triangles
+--- src/org/jmol/shapesurface/IsosurfaceMesh.java.orig 2020-09-26 11:17:40.000000000
-0600
++++ src/org/jmol/shapesurface/IsosurfaceMesh.java 2020-09-29 17:20:13.207710361 -0600
+@@ -77,7 +77,6 @@ public class IsosurfaceMesh extends Mesh
+
+ /**
+ * @param vwr
+- * @XXXXj2sIgnoreSuperConstructor
+ *
+ * @param thisID
+ * @param colix
+@@ -376,9 +375,9 @@ public class IsosurfaceMesh extends Mesh
+ }
+
+ /**
+- * two values -- v1, and v2, which need not be ordered v1 < v2. v == v1 --> 0
+- * v == v2 --> 1 v1 < v < v2 --> f in (0,1) v2 < v < v1 --> f in
(0,1) i.e.
+- * (v1 < v) == (v < v2)
++ * two values -- v1, and v2, which need not be ordered v1 < v2. v == v1
→ 0
++ * v == v2 → 1 v1 < v < v2 → f in (0,1) v2 < v
< v1 → f in (0,1) i.e.
++ * (v1 < v) == (v < v2)
+ *
+ * We check AB, then (usually) BC, then (sometimes) CA.
+ *
+@@ -388,14 +387,14 @@ public class IsosurfaceMesh extends Mesh
+ * A 1.0 0.5 1.0 1.0 / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ C-----B 1.0--0.5
+ * 1.0--1.0 0.5--1.0 1.0---1.0 case I case II case III case IV
+ *
+- * case I: AB[0] and BC[1], type == 3 --> CA not tested. case II: AB[1] and
+- * CA[0]; f1 == 1.0 --> BC not tested. case III: AB[0] and BC[0], type == 3
+- * --> CA not tested. case IV: AB[0] and BC[0], type == 3 --> CA not tested.
++ * case I: AB[0] and BC[1], type == 3 → CA not tested. case II: AB[1] and
++ * CA[0]; f1 == 1.0 → BC not tested. case III: AB[0] and BC[0], type == 3
++ * → CA not tested. case IV: AB[0] and BC[0], type == 3 → CA not
tested.
+ *
+ * what if v = 0.5?
+ *
+- * case I: AB[1]; BC not tested --> type == 1, invalid. case II: AB[0]; type
+- * == 1, f1 == 0.0 --> CA not tested. case III: BC[1]; f2 == 1.0 --> CA not
++ * case I: AB[1]; BC not tested → type == 1, invalid. case II: AB[0]; type
++ * == 1, f1 == 0.0 → CA not tested. case III: BC[1]; f2 == 1.0 → CA
not
+ * tested.
+ *
+ * @param vertexValues
+--- src/org/jmol/smiles/package.html.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/smiles/package.html 2020-09-29 17:20:13.207710361 -0600
+@@ -63,7 +63,7 @@ the term <a href="#aromaticity">aromatic
+
+
+ <br><br>
+- <h3>Comparision to <a target="_blank"
href="http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html&...
SMILES</a></h3>
++ <h2>Comparision to <a target="_blank"
href="http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html&...
SMILES</a></h2>
+ All single-component aspects of Daylight SMILES are implemented, including
+ aromaticity and atom- and bond-based stereochemistry ("chirality").
+ <br><br>
+@@ -83,7 +83,8 @@ and may dramatically increase processing
+ Jmol SMILES adds the following two aspects to Daylight SMILES:
+ <br>
+ <br>
+-<table border="1" cellpadding="5" width="500">
++<table border="1">
++<caption>Daylight SMILES aspects</caption>
+ <tr><td
valign="top"><b>%(n)</b></td><td>Jmol SMILES adds
unlimited branching. Daylight SMILES
+ allows indication of "rings" using the digits 1-9, for example,
<b>C1CCCC1</b>. Actually, these numbers
+ do not necessarily indicate rings. Rather, in association with "." component
notation,
+@@ -136,7 +137,8 @@ the Jmol version used for its creation a
+ Jmol bioSMILES adds the following to Jmol SMILES:
+ <br>
+ <br>
+-<table border="1" cellpadding="5" width="500">
++<table border="1">
++<caption>bioSMILES additions</caption>
+ <tr><td valign=top>~X~</td><td>
+ Jmol bioSMILES separates all protein, nucleic, and carbohydrate polymers into separate
SMILES components,
+ separated by ".".
+@@ -196,7 +198,7 @@ indicating a branched manose hexamer. No
+ <br>
+
+
+- <h3>Comparision to <a target="_blank"
href="http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html&...
SMARTS</a></h3>
++ <h2>Comparision to <a target="_blank"
href="http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html&...
SMARTS</a></h2>
+ <ul>
+ <li>[H1] interpreted as [*H1] -- "an atom with one connected H atom".
+
+@@ -227,7 +229,6 @@ Note that these variables are any string
+ </pre>
+ Note that $(...) need not be within [...], and
+ wherever it is, it always means "just the first atom".
+-</li>
+
+ </li><li>All primitives that are not element names, <b>*</b>,
<b>A</b>, or <b>a</b> must be
+ enclosed in brackets. In addition, the following elements must be enclosed in
brackets
+@@ -236,10 +237,10 @@ Note that these variables are any string
+
+ </li><li>Allows any order of bracketed primitives: [H2C13] same as
[13CH2].
+
+-</li><li>All atom and bond logic implemented:
[X,!X,X&X,X&X&X;X&X]-,=X
++</li><li>All atom and bond logic implemented:
[X,!X,X&X,X&X&X;X&X]-,=X
+
+-</li><li>"&" is optional: [13CH2] same as [13&C&H2]
+- except in cases of ambiguity with element symbols: [Rh] is rhodium, not [R&h].
++</li><li>"&" is optional: [13CH2] same as
[13&C&H2]
++ except in cases of ambiguity with element symbols: [Rh] is rhodium, not
[R&h].
+
+ </li><li>Jmol SMARTS does NOT implement:
+ <ul><li> "zero-level parentheses", since the match is
+@@ -259,7 +260,8 @@ Note that these variables are any string
+ <br><br>
+ All Daylight SMARTS primitives are implemented. These include:
+ <br>
+-<table border="1" cellpadding="5" width="500">
++<table border="1">
++<caption>Daylight SMARTS primitives</caption>
+ <tr><td>[Element]</td><td>capitalized - standard notation Na,
Si, etc. -- specific non-aromatic atom</td></tr>
+ <tr><td>[element]</td><td>uncapitalized - specific aromatic atom
(as for standard notation, no limitations)</td></tr>
+ <tr><td>*</td><td>any atom</td></tr>
+@@ -282,20 +284,21 @@ All Daylight SMARTS primitives are imple
+ Jmol SMARTS adds the following primitives:
+ <br>
+ <br>
+-<table border="1" cellpadding="5" width="800">
++<table border="1">
++<caption>SMARTS primitives</caption>
+ <tr><td>d</td><td>non-hydrogen degree -- number of non-hydrogen
connections</td></tr>
+ <tr><td>=</td><td>Jmol atom index, for example:
[=23]</td></tr>
+ <tr><td>"xxx"</td><td>atom type, in double quotes, for
example: ["39"r5] (After <b>calculate partialcharge</b> this will be
the MMFF94 atom type. [Jmol 12.3.24]</td></tr>
+-<tr><td>$(select xxx)"</td><td>external selection method.
For Jmol, this is an atom expression. For example: [c$(select temperature>10)] [Jmol
12.3.26]</td></tr>
++<tr><td>$(select xxx)"</td><td>external selection method.
For Jmol, this is an atom expression. For example: [c$(select temperature>10)]
[Jmol 12.3.26]</td></tr>
+ <tr><td>r500</td><td>a specifically aromatic 5-membered ring
[Jmol 12.3.24]</td></tr>
+ <tr><td>r600</td><td>a specifically aromatic 6-membered ring
[Jmol 12.3.24]</td></tr>
+ <tr><td>number?</td><td>mass number or undefined (so, for
example, [C12?] means any carbon that isn't explicitly C13 or
C14</td></tr>
+ <tr><td>$n(pattern)</td><td>A specific number of occurances of
<b>pattern</b>. For example, <b>C[$3(C=C)]C</b> is synonymous with
<b>CC=CC=CC=CC</b>.</td></tr>
+ <tr><td>$min-max(pattern)</td><td>A variable number of
occurances of <b>pattern</b>.
+ For example: <b>A[$0-2(C:G)]A</b> is synonymous with <b>AA</b>
or <b>AC(:G)A</b> or <b>AC(:G)C(:G)A</b>.</td></tr>
+-<tr><td>residueName#resno^insCode.atomName#atomicNumber</b>
</td><td>
++<tr><td><b>residueName#resno^insCode.atomName#atomicNumber</b>
</td><td>
+ All five fields are optional; only the period itself is required.
+-This primitive may appear with other primitives provided (a) it is first, and (b) it is
followed by an operator ("," ,"&", or ";").
++This primitive may appear with other primitives provided (a) it is first, and (b) it is
followed by an operator ("," ,"&", or ";").
+ This allows searching a bioSMILES string using SMARTS patterns that only involve
standard atom types. In the above example,
+ notice that the connecting atoms to protein chains within the non-bioSEQUENCE component
indicates the
+ connections to the protein using this extended notation. Thus, both the actual 3D model
and the bioSMARTS string for 1d66
+@@ -312,7 +315,8 @@ the phosphorus atom in nucleic acids, or
+ Jmol SMARTS adds the following in-line options:
+ <br>
+ <br>
+-<table border="1" cellpadding="5" width="500">
++<table border="1">
++<caption>SMARTS in-line options</caption>
+ <tr><td valign=top>
+ /..../</td><td>
+ <b>processing directives</b> Jmol recognizes <b>/..../</b> at
the beginning of a pattern as processing directives.
+@@ -322,7 +326,7 @@ These directives can be introduced indiv
+ <b>invertStereo</b> reverses the sense of chirality (R-, S-
stereochemistry). Double-bond stereochemistry is not reverse.
+ <b>noStereo</b> turns off all stereochemical checking.
+ </li><li><b>aromaticDouble</b> allows for using "="
between two aromatic atoms to indicate an explicitly double aromatic bond.
+-To specify an explicitly single aromatic bond, use <b>@&!=</b>.
++To specify an explicitly single aromatic bond, use <b>{@literal
@}&!=</b>.
+ <b>aromaticStrict</b> uses a 6-electron Hueckel model for specifying
aromaticity.
+ </li><li><b>noAromatic</b> turns off all aromaticity checks.It
may be desirable when no distinction between
+ aromatic and nonaromatic atoms is desired. For large biomolecules /noAromatic/ can
+@@ -419,7 +423,8 @@ in this case being equivalent to (and sl
+ Jmol bioSMARTS adds the following pattern options to Jmol SMARTS:
+ <br>
+ <br>
+-<table border="1" cellpadding="5" width="500">
++<table border="1">
++<caption>bioSMARTS pattern options</caption>
+ <tr><td>
+ <b>"~"</b>
+ </td><td>Any biopolymer.
+@@ -497,7 +502,7 @@ includes:
+
+
+ <br><br>
+-<a name="smilesspecs"><h3>Detailed Jmol SMILES/bioSMILES
Specification</h3></a>
++<h2><a id="smilesspecs">Detailed Jmol SMILES/bioSMILES
Specification</a></h2>
+ <br><br>
+ <pre>
+ # note: prior to parsing, all white space is removed
+@@ -521,7 +526,7 @@ includes:
+ | "[" [bracketedExpression] "]" }
+
+ [unbracketedAtomType] == [atomType]
+- & ! { "Ac" | "Ba" |
"Ca" | "Na" | "Pa" | "Sc"
++ & ! { "Ac" | "Ba" |
"Ca" | "Na" | "Pa" | "Sc"
+ | "ac" | "ba" | "ca"
| "na" | "pa" | "sc" }
+ # note: Brackets are required for these elements: [Na], [Ca], etc.
+ # These elements Xy are instead interpreted as "X" "y",
a single-letter
+@@ -558,7 +563,7 @@ includes:
+ # and must be preceded by an atomExpression for the
+ # first occurance and either an atomExpression or a bond
+ # for the second occurance
+- # note: Jmol bioSMARTS extends the possible number of rings to > 100 by
++ # note: Jmol bioSMARTS extends the possible number of rings to > 100 by
+ # allowing %(n)
+
+ [connections] == [connection] | NULL }
+@@ -590,7 +595,7 @@ includes:
+ </pre>
+ <br><br>
+
+-<a name="specs"><h3>Detailed Jmol SMARTS/Jmol bioSMARTS
Specification</h3></a>
++<h2><a id="specs">Detailed Jmol SMARTS/Jmol bioSMARTS
Specification</a></h2>
+ <br><br>
+ <pre>
+
+@@ -638,7 +643,7 @@ includes:
+
+
+ [unbracketedAtomType] == [atomType]
+- & ! { "Ac" | "Ba" |
"Ca" | "Na" | "Pa" | "Sc"
++ & ! { "Ac" | "Ba" |
"Ca" | "Na" | "Pa" | "Sc"
+ | "ac" | "ba" | "ca"
| "na" | "pa" | "sc" }
+ # note: Brackets are required for these elements: [Na], [Ca], etc.
+ # These elements Xy are instead interpreted as "X" "y",
a single-letter
+@@ -653,21 +658,21 @@ includes:
+ [bracketedExpression] == "[" { [atomOrSet] | [atomOrSet] ";"
[atomAndSet] } "]"
+
+ [atomOrSet] == { [atomAndSet] | [atomAndSet] "," [atomAndSet] }
+- [atomAndSet] == { [atomPrimitives] | [atomPrimitives] "&"
[atomAndSet]
++ [atomAndSet] == { [atomPrimitives] | [atomPrimitives] "&"
[atomAndSet]
+ | "!" [atomPrimitive]
+- | "!" [atomPrimitive] "&"
[atomAndSet] }
++ | "!" [atomPrimitive] "&"
[atomAndSet] }
+
+ ######## ATOM PRIMITIVES ########
+
+ [atomPrimitives] == { [atomPrimitive] | [atomPrimitive] [atomPrimitives] }
+- # note -- if & is not used, certain combinations of primitiveDescritors
++ # note -- if & is not used, certain combinations of primitiveDescritors
+ # are not allowed. Specifically, combinations that together
+ # form the symbol for an element will be read as the element (Ar, Rh,
etc.)
+ # when NOT followed by a digit and no element has already been defined
+- # So, for example, [Ar] is argon, [Ar3] is [A&r3], [ORh] is
[O&R&h],
+- # but [Ard2] is [Ar&d2] -- "argon with two non-hydrogen
connections"
+- # Also, "!" may not be use with implied "&".
+- # Thus, [!a], [!a&!h2], and [h2&!a] are all valid, but [!ah2] is
invalid.
++ # So, for example, [Ar] is argon, [Ar3] is [A&r3], [ORh] is
[O&R&h],
++ # but [Ard2] is [Ar&d2] -- "argon with two non-hydrogen
connections"
++ # Also, "!" may not be use with implied "&".
++ # Thus, [!a], [!a&!h2], and [h2&!a] are all valid, but
[!ah2] is invalid.
+ [atomPrimitive] == { [isotope] | [atomType] | [charge] | [stereochemistry]
+ | [a_Prop] | [A_Prop] | [D_Prop] | [H_Prop] | [h_Prop]
+ | [R_Prop] | [r_Prop] | [v_Prop] | [X_Prop]
+@@ -786,9 +791,9 @@ includes:
+ [bondExpression] == { [bondOrSet] | [bondOrSet] ";" [bondAndSet] }
+
+ [bondOrSet] == { [bondAndSet] | [bondAndSet] "," [bondAndSet] }
+- [bondAndSet] == { [bondPrimitives] | [bondPrimitives] "&"
[bondAndSet]
++ [bondAndSet] == { [bondPrimitives] | [bondPrimitives] "&"
[bondAndSet]
+ | "!" [bondPrimitive]
+- | "!" [bondPrimitive] "&"
[bondAndSet] }
++ | "!" [bondPrimitive] "&"
[bondAndSet] }
+
+ ######## BOND PRIMITIVES ########
+
+@@ -797,9 +802,9 @@ includes:
+ # note: All bondExpressions are not valid. Stereochemistry should not
+ # be mixed with the others, as it represents a single bond always.
+ # In addition, "." ("no bond") cannot be mixed with any
bond type.
+- # Nothing would be retrieved by "-&=", as a bond cannot be
both single
++ # Nothing would be retrieved by "-&=", as a bond cannot be
both single
+ # and double. However, "-@" is potentially very useful --
"ring single-bonds"
+- # or "=&!@" -- "doubly-bonded atoms where the double bond
is not in a ring"
++ # or "=&!@" -- "doubly-bonded atoms where the double
bond is not in a ring"
+ # note: Jmol will not match two totally independent molecular pieces. For
example,
+ # Jmol will not math [Na+].[Cl-]
+ # note: "+" indicates "adjacent biomolecular groups in a
chain"
+@@ -822,7 +827,7 @@ includes:
+ </pre>
+ <br><br>
+
+-<a name="aromaticity"><h3>Jmol SMILES and Jmol SMARTS Definition
of "aromatic"</h3></a>
++<h2><a id="aromaticity">Jmol SMILES and Jmol SMARTS Definition of
"aromatic"</a></h2>
+
+ <br><br>
+
+@@ -878,7 +883,7 @@ assume a bonding scheme (PDB, GAUSSIAN,
+ <br>updated 8/26/2015: switch to HTML5; added measure option for multiple ranges
+ <br>updated 5/21/2012: added $(select...)
+ <br>updated 5/13/2012: added /aromaticStrict/ and /aromaticDouble/
+- <br>updated 5/13/2012: added [<atomType>]
++ <br>updated 5/13/2012: added [<atomType>]
+ <br>updated 4/10/2012: fix for [$(...)n] and [$(...)min-max]
+ <br>original5/19/2010
+ <br><br>
+--- src/org/jmol/smiles/SmilesAromatic.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/smiles/SmilesAromatic.java 2020-09-29 17:20:13.207710361 -0600
+@@ -336,7 +336,7 @@ public class SmilesAromatic {
+ * @param vMean
+ * @param n
+ * @param cutoff
+- * @return true if stddev < cutoff
++ * @return true if stddev < cutoff
+ */
+ private final static boolean checkStandardDeviation(V3[] vNorms, V3 vMean,
+ int n, float cutoff) {
+--- src/org/jmol/smiles/SmilesMatcher.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/smiles/SmilesMatcher.java 2020-09-29 17:20:13.208710361 -0600
+@@ -57,13 +57,13 @@ import org.jmol.viewer.JC;
+ *
+ * Specification for this implementation can be found in package.html.
+ *
+- * <p>
++ * </p>
+ *
+ * <pre>
+ * <code>
+ * public methods:
+ *
+- * int areEqual -- checks a SMILES string against a reference (-1 for error; 0 for no
finds; >0 for number of finds)
++ * int areEqual -- checks a SMILES string against a reference (-1 for error; 0 for no
finds; >0 for number of finds)
+ *
+ * BitSet[] find -- finds one or more occurances of a SMILES or SMARTS string within a
SMILES string
+ *
+--- src/org/jmol/smiles/SmilesParser.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/smiles/SmilesParser.java 2020-09-29 17:20:13.208710361 -0600
+@@ -119,7 +119,7 @@ public class SmilesParser {
+ *
+ * @param pattern
+ * SMILES String
+- * @return Molecule corresponding <ctode>pattern</code>
++ * @return Molecule corresponding <code>pattern</code>
+ * @throws InvalidSmilesException
+ */
+ SmilesSearch parse(String pattern) throws InvalidSmilesException {
+@@ -863,7 +863,7 @@ public class SmilesParser {
+ * @param isBracketed
+ * true if a bracketed definition [...]
+ * @param isAND
+- * being called from checkLogic for & or ;
++ * being called from checkLogic for & or ;
+ * @param isBranchAtom
+ * @return New atom
+ * @throws InvalidSmilesException
+--- src/org/jmol/symmetry/CIPChirality.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/symmetry/CIPChirality.java 2020-09-29 17:20:13.208710361 -0600
+@@ -68,7 +68,7 @@ import org.jmol.viewer.JC;
+ *
+ * - implemented in Java (Jmol) and JavaScript (JSmol)
+ *
+- * - only a few Java classes; < 1000 lines
++ * - only a few Java classes; < 1000 lines
+ *
+ * - efficient, one-pass process for each center using a single finite digraph
+ * for all auxiliary descriptors
+@@ -265,10 +265,10 @@ import org.jmol.viewer.JC;
+ * isotopic mass and, in all other cases, as their element's atomic weight.
+ *
+ * Rationale: BB is not self-consistent, including both "mass number" (in
the
+- * rule) and "atomic mass" in the description, where "79Br < Br <
81Br". And
++ * rule) and "atomic mass" in the description, where "79Br < Br
< 81Br". And
+ * again we have the same Kekule-ambiguous issue as in Rule 1b. The added
+ * clarification fixes the Kekule issue (not using isotope mass number for
+- * duplicate atoms), solves the problem that F < 19F (though 100% nat.
++ * duplicate atoms), solves the problem that F < 19F (though 100% nat.
+ * abundance), and is easily programmable.
+ *
+ * In Jmol the logic is very simple, actually using the isotope mass number, but
+@@ -809,7 +809,7 @@ public class CIPChirality {
+ * Check if an atom is 1st row.
+ *
+ * @param a
+- * @return elemno > 2 && elemno <= 10
++ * @return elemno > 2 && elemno ≤ 10
+ */
+ static boolean isFirstRow(SimpleNode a) {
+ int n = a.getElementNumber();
+@@ -1334,7 +1334,7 @@ public class CIPChirality {
+ /**
+ * Rule 2 isotope mass number if identified or average atomic mass if not
+ *
+- * C (12.011) > 12C, O (15.999) < 16O, and F (18.998) < 19F
++ * C (12.011) > 12C, O (15.999) < 16O, and F (18.998) < 19F
+ *
+ * Source:
+ *
+@@ -1491,7 +1491,7 @@ public class CIPChirality {
+ /**
+ * auxiliary chirality as determined in createAuxiliaryRule4Data;
+ * possibilities include R/S, r/s, M/P, m/p, C/T (but not c/t), or ~ (ASCII
+- * 126, no stereochemistry); for sorting purposes C=M=R < p=r=s < ~
++ * 126, no stereochemistry); for sorting purposes C=M=R < p=r=s < ~
+ */
+ private char auxChirality = '~';
+
+--- src/org/jmol/symmetry/SpaceGroup.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/symmetry/SpaceGroup.java 2020-09-29 17:20:13.209710361 -0600
+@@ -162,7 +162,7 @@ class SpaceGroup {
+ /**
+ *
+ * @param name
+- * @param data Lst<SymmetryOperation> or Lst<M4>
++ * @param data Lst<SymmetryOperation> or Lst<M4>
+ * @return a new SpaceGroup if successful or null
+ */
+ private static SpaceGroup createSGFromList(String name, Lst<?> data) {
+--- src/org/jmol/symmetry/Symmetry.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/symmetry/Symmetry.java 2020-09-29 17:20:13.209710361 -0600
+@@ -166,8 +166,8 @@ public class Symmetry implements Symmetr
+ *
+ * @param desiredSpaceGroupIndex
+ * @param name
+- * @param data a Lst<SymmetryOperation> or Lst<M4>
+- * @param d in [3+d] modulation dimension
++ * @param data a Lst<SymmetryOperation> or Lst<M4>
++ * @param modDim in [3+d] modulation dimension
+ * @return true if a known space group
+ */
+ @Override
+--- src/org/jmol/symmetry/UnitCellIterator.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/symmetry/UnitCellIterator.java 2020-09-29 17:20:13.209710361 -0600
+@@ -44,7 +44,7 @@ public class UnitCellIterator implements
+ * @param atoms
+ * @param bsAtoms
+ * @param distance
+- * <= 0 indicates that distance will be set later, probably from a
++ * ≤ 0 indicates that distance will be set later, probably from a
+ * point
+ * @return this
+ */
+--- src/org/jmol/thread/SpinThread.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/thread/SpinThread.java 2020-09-29 17:20:13.209710361 -0600
+@@ -101,8 +101,8 @@ public class SpinThread extends JmolThre
+ *
+ * JavaScript:
+ *
+- * run1(INIT) run1(MAIN) --> setTimeout to run1(CHECK) or run1(FINISH) and
+- * return run1(CHECK) --> setTimeout to run1(CHECK) or run1(MAIN) or
++ * run1(INIT) run1(MAIN) → setTimeout to run1(CHECK) or run1(FINISH) and
++ * return run1(CHECK) → setTimeout to run1(CHECK) or run1(MAIN) or
+ * run1(FINISH) and return
+ *
+ */
+--- src/org/jmol/util/BSUtil.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/BSUtil.java 2020-09-29 17:20:13.210710361 -0600
+@@ -110,8 +110,8 @@ final public class BSUtil {
+ * For each set bit in b: a) if a is also set, then clear a's bit UNLESS b) if
+ * a is not set, then add to a all set bits of b
+ *
+- * Thus, if a equals b --> clear all if a is a subset of b, then --> b if b is
+- * a subset of a, then --> a not b if a only intersects with b, then --> a or
++ * Thus, if a equals b → clear all if a is a subset of b, then → b
if b is
++ * a subset of a, then → a not b if a only intersects with b, then →
a or
+ * b if a does not intersect with b, then a or b
+ *
+ * In "toggle" mode, when you click on any atom of the molecule, you want
+@@ -145,7 +145,7 @@ final public class BSUtil {
+ /**
+ * this one slides deleted bits out of a pattern.
+ *
+- * deleteBits 101011b, 000011b --> 1010b
++ * deleteBits 101011b, 000011b → 1010b
+ *
+ * Java 1.4, not 1.3
+ *
+@@ -174,7 +174,7 @@ final public class BSUtil {
+ /**
+ * this one slides bits to higher positions based on a pattern.
+ *
+- * shiftBits 101011b, 000011b --> 10101100b
++ * shiftBits 101011b, 000011b → 10101100b
+ *
+ * @param bs
+ * @param bsAdded
+--- src/org/jmol/util/ColorEncoder.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/ColorEncoder.java 2020-09-29 17:20:13.210710361 -0600
+@@ -172,7 +172,7 @@ import javajs.util.P3;
+ * @param name
+ * @param scale if null, then this is a reset.
+ * @param isOverloaded if TRUE,
+- * @return >= 0 for a default color scheme
++ * @return ≥ 0 for a default color scheme
+ */
+ private synchronized int makeColorScheme(String name, int[] scale,
+ boolean isOverloaded) {
+--- src/org/jmol/util/CommandHistory.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/CommandHistory.java 2020-09-29 17:20:13.210710361 -0600
+@@ -169,9 +169,9 @@ final public class CommandHistory {
+ /**
+ * Options include:
+ * all Integer.MAX_VALUE
+- * n prev n >= 1
++ * n prev n ≥ 1
+ * next -1
+- * set max to -2 - n n <= -3
++ * set max to -2 - n n ≤ -3
+ * just clear -2
+ * clear and turn off; return "" 0
+ * clear and turn on; return "" Integer.MIN_VALUE;
+--- src/org/jmol/util/Elements.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/Elements.java 2020-09-29 17:20:13.210710361 -0600
+@@ -883,7 +883,7 @@ public class Elements {
+ * that contains the atomic number, the charge, and the radius in two
+ * consecutive values, encoded as follows:
+ *
+- * (atomicNumber << 4) + (charge + 4), radiusAngstroms*1000
++ * (atomicNumber << 4) + (charge + 4), radiusAngstroms*1000
+ *
+ * That is, (atomicNumber * 16 + charge + 4), milliAngstromRadius
+ *
+--- src/org/jmol/util/MeshCapper.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/MeshCapper.java 2020-09-29 17:20:13.210710361 -0600
+@@ -37,7 +37,7 @@ import javajs.util.V3;
+ * - no push/pop stacks
+ *
+ * INPUT: stream of [a b] ordered-vertex edges such that triangle a-b-c is
+- * interior if (ab.cross.ac).dot.planeNormal > 0 (right-hand rule;
++ * interior if (ab.cross.ac).dot.planeNormal > 0 (right-hand rule;
+ * counter-clockwise edge flow)
+ *
+ * Bob Hanson - Jan 11, 2015
+@@ -804,7 +804,7 @@ public class MeshCapper {
+ * @param v0
+ * @param v1
+ * @param v2
+- * @return true if properly wound -- (v1-v0).cross.(v2-v0).dot.norm > 0
++ * @return true if properly wound -- (v1-v0).cross.(v2-v0).dot.norm > 0
+ */
+ private boolean checkWinding(CapVertex v0, CapVertex v1, CapVertex v2) {
+ return (v1.x - v0.x) * (v2.y - v0.y) > (v1.y - v0.y) * (v2.x - v0.x);
+--- src/org/jmol/util/Modulation.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/Modulation.java 2020-09-29 17:20:13.210710361 -0600
+@@ -305,7 +305,7 @@ public class Modulation {
+ }
+
+ /**
+- * Check that left < x4 < right, but allow for folding
++ * Check that left < x4 < right, but allow for folding
+ *
+ * @param x4
+ * @return true only if x4 is in the (possibly folded) range of left and right
+--- src/org/jmol/util/Node.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/Node.java 2020-09-29 17:20:13.211710361 -0600
+@@ -73,7 +73,7 @@ public interface Node extends SimpleNode
+ public int getModelIndex();
+ public int getAtomNumber();
+ /**
+- * can be > 0 for PDB model with no H atoms or for SMILES string CCC
++ * can be > 0 for PDB model with no H atoms or for SMILES string CCC
+ *
+ * @return number of missing H atoms
+ */
+--- src/org/jmol/util/SimpleUnitCell.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/SimpleUnitCell.java 2020-09-29 17:20:13.211710361 -0600
+@@ -381,16 +381,16 @@ public class SimpleUnitCell {
+ /**
+ * Expanded cell notation:
+ *
+- * 111 - 1000 --> center 5,5,5; range 0 to 9 or -5 to +4
++ * 111 - 1000 → center 5,5,5; range 0 to 9 or -5 to +4
+ *
+- * 1000000 - 1999999 --> center 50,50,50; range 0 to 99 or -50 to +49
+- * 1000000000 - 1999999999 --> center 500, 500, 500; range 0 to 999 or -500 to
++ * 1000000 - 1999999 → center 50,50,50; range 0 to 99 or -50 to +49
++ * 1000000000 - 1999999999 → center 500, 500, 500; range 0 to 999 or -500
to
+ * +499
+ *
+ * @param nnn
+ * @param cell
+ * @param offset
+- * 0 or 1 typically; < 0 means "apply no offset"
++ * 0 or 1 typically; < 0 means "apply no offset"
+ * @param kcode
+ * Generally the multiplier is just {ijk ijk scale}, but when we have
+ * 1iiijjjkkk 1iiijjjkkk scale, floats lose kkk due to Java float
+--- src/org/jmol/util/Tensor.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/Tensor.java 2020-09-29 17:20:13.211710361 -0600
+@@ -289,7 +289,7 @@ public class Tensor {
+ /**
+ * width of the signal; |e2 - e0|
+ *
+- * @return unitless; >= 0
++ * @return unitless; ≥ 0
+ */
+ public float span() {
+ return Math.abs(eigenValues[2] - eigenValues[0]);
+@@ -654,13 +654,13 @@ public class Tensor {
+ /**
+ * The expression:
+ *
+- * |sigma_3 - sigma_iso| >= |sigma_1 - sigma_iso| >= |sigma_2 - sigma_iso|
++ * |sigma_3 - sigma_iso| ≥ |sigma_1 - sigma_iso| ≥ |sigma_2 -
sigma_iso|
+ *
+ * simply sorts the values from largest to smallest or smallest to largest,
+ * depending upon the direction of the asymmetry, always setting the last
+ * value to be the farthest from the mean. We use a simpler form here:
+ *
+- * |sigma_3 - sigma_1| >= |sigma_3 - sigma_2| >= |sigma_2 - sigma_1|
++ * |sigma_3 - sigma_1| ≥ |sigma_3 - sigma_2| ≥ |sigma_2 - sigma_1|
+ *
+ * which amounts to the same thing and is prettier. (Think about it!)
+ *
+--- src/org/jmol/util/Vibration.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/util/Vibration.java 2020-09-29 17:20:13.211710361 -0600
+@@ -26,7 +26,7 @@ public class Vibration extends V3 {
+ // public static final int TYPE_DISPLACEMENT = -3; // not used
+
+ /**
+- * modDim will be > 0 for modulation
++ * modDim will be > 0 for modulation
+ */
+ public int modDim = TYPE_VIBRATION;
+ public float modScale = Float.NaN; // modulation only
+--- src/org/jmol/viewer/OutputManager.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/viewer/OutputManager.java 2020-09-29 17:20:13.211710361 -0600
+@@ -630,7 +630,7 @@ abstract class OutputManager {
+ * jmolStatusListener interface
+ *
+ * @param params
+- * include: fileName: starts with ? --> use file dialog; type: PNG,
++ * include: fileName: starts with ? → use file dialog; type: PNG,
+ * JPG, etc.; text: String to output; bytes: byte[] or null if an
+ * image; scripts for scenes; quality: for JPG and PNG; width: image
+ * width; height: image height; fullPath: String[] return
+--- src/org/jmol/viewer/TransformManager.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/viewer/TransformManager.java 2020-09-29 17:20:13.212710361 -0600
+@@ -2190,8 +2190,8 @@ public class TransformManager {
+ }
+
+ /**
+- * sets the period of vibration -- period > 0: sets the period and turns
+- * vibration on -- period < 0: sets the period but does not turn vibration on
++ * sets the period of vibration -- period > 0: sets the period and turns
++ * vibration on -- period < 0: sets the period but does not turn vibration on
+ * -- period = 0: sets the period to zero and turns vibration off -- period
+ * Float.NaN: uses current setting (frame change)
+ *
+@@ -2725,7 +2725,7 @@ public class TransformManager {
+
+ /**
+ * sets the position of the navigation offset relative to the model (50%
+- * center; 0% rear, 100% front; can be <0 or >100)
++ * center; 0% rear, 100% front; can be <0 or >100)
+ *
+ * @param percent
+ */
+@@ -2735,7 +2735,7 @@ public class TransformManager {
+ }
+
+ /**
+- * seconds < 0 means "to (x,y)"; >= 0 mean "to (x%, y%)"
++ * seconds < 0 means "to (x,y)"; ≥ 0 mean "to (x%,
y%)"
+ *
+ * @param seconds
+ * @param x
+--- src/org/jmol/viewer/Viewer.java.orig 2020-09-26 11:17:40.000000000 -0600
++++ src/org/jmol/viewer/Viewer.java 2020-09-29 17:20:13.213710361 -0600
+@@ -721,9 +721,9 @@ public class Viewer extends JmolViewer i
+ *
+ * disables command threading
+ *
+- * disables DELAY, TIMEOUT, PAUSE, LOOP, GOTO, SPIN <rate>, ANIMATION ON
++ * disables DELAY, TIMEOUT, PAUSE, LOOP, GOTO, SPIN <rate>, ANIMATION
ON
+ *
+- * turns SPIN <rate> <end> into just ROTATE <end>
++ * turns SPIN <rate> <end> into just ROTATE
<end>
+ */
+
+ public boolean headless;
+@@ -3035,7 +3035,7 @@ public class Viewer extends JmolViewer i
+ *
+ * data[1] -- string or float[] or float[][] or float[][][]
+ *
+- * data[2] -- selection bitset or int[] atomMap when field > 0
++ * data[2] -- selection bitset or int[] atomMap when field > 0
+ *
+ * data[3] -- arrayDepth 0(String),1(float[]),2(float[][]),3(float[][][]) or
-1
+ * to indidate that it is set by data type
+@@ -3099,7 +3099,7 @@ public class Viewer extends JmolViewer i
+ *
+ * data[1] -- string or float[] or float[][] or float[][][]
+ *
+- * data[2] -- selection bitset or int[] atomMap when field > 0
++ * data[2] -- selection bitset or int[] atomMap when field > 0
+ *
+ * data[3] -- arrayDepth
+ * 0(String),1(float[]),2(float[][]),3(float[][][]) or -1 to indicate
+@@ -7890,7 +7890,7 @@ public class Viewer extends JmolViewer i
+ }
+
+ /**
+- * fills an array with data -- if nX < 0 and this would involve JavaScript,
++ * fills an array with data -- if nX < 0 and this would involve JavaScript,
+ * then this reads a full set of Double[][] in one function call. Otherwise it
+ * reads the values using individual function calls, which each return Double.
+ *
+@@ -8112,8 +8112,8 @@ public class Viewer extends JmolViewer i
+ }
+
+ /**
+- * Options include: ; all n == Integer.MAX_VALUE ; n prev n >= 1 ; next n ==
+- * -1 ; set max to -2 - n n <= -3 ; just clear n == -2 ; clear and turn off;
++ * Options include: ; all n == Integer.MAX_VALUE ; n prev n ≥ 1 ; next n ==
++ * -1 ; set max to -2 - n n ≤ -3 ; just clear n == -2 ; clear and turn off;
+ * return "" n == 0 ; clear and turn on; return "" n ==
Integer.MIN_VALUE;
+ *
+ * @param howFarBack
+@@ -8690,9 +8690,9 @@ public class Viewer extends JmolViewer i
+ *
+ * @param eval
+ * @param steps
+- * Integer.MAX_VALUE --> use defaults
++ * Integer.MAX_VALUE → use defaults
+ * @param crit
+- * -1 --> use defaults
++ * -1 → use defaults
+ * @param bsSelected
+ * @param bsFixed
+ * @param rangeFixed
+@@ -9434,10 +9434,10 @@ public class Viewer extends JmolViewer i
+ *
+ *
+ * @param id
+- * < 256 is just the character of a single-character upper-case chain
++ * < 256 is just the character of a single-character upper-case chain
+ * id, upper or lower case query;
+ *
+- * >= 256 < 300 is lower case found in structure
++ * ≥ 256 < 300 is lower case found in structure
+ *
+ * @param isAssign
+ * from a file reader, not a select query
+@@ -9873,7 +9873,7 @@ public class Viewer extends JmolViewer i
+ * @param options
+ * if nonzero, a option, currently just T.offset, indicating that pt1
+ * is an {i j k} offset from cell 555
+- * @return string, Object[], or Lst<Object[]>
++ * @return string, Object[], or Lst<Object[]>
+ */
+ public Object getSymmetryInfo(int iatom, String xyz, int iOp, P3 pt1, P3 pt2,
+ int type, String desc, float scaleFactor,
+--- src/org/openscience/jmol/app/jsonkiosk/JsonNioService.java.orig 2020-09-26
11:17:41.000000000 -0600
++++ src/org/openscience/jmol/app/jsonkiosk/JsonNioService.java 2020-09-29
17:20:13.213710361 -0600
+@@ -173,7 +173,7 @@ import naga.packetwriter.RawPacketWriter
+ *
+ * sync 30000 "backgrund blue"
+ *
+- * {"type":"reply","reply":"SCRIPT:script compiler
ERROR: command expected\n----\n >>>> backgrund blue
<<<<"}
++ * {"type":"reply","reply":"SCRIPT:script compiler
ERROR: command expected\n----\n >>>> background blue
<<<<"}
+ *
+ * Note that the ERROR callback does not fire for compile errors,
+ * only for errors found while running a parsed script:
+@@ -192,7 +192,7 @@ import naga.packetwriter.RawPacketWriter
+ *
+ * gives the simple reply:
+ *
+- *
{"type":"reply","reply":"LOADSTRUCT:https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&get3d=true"}
++ *
{"type":"reply","reply":"LOADSTRUCT:https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&get3d=true"}
+ *
+ * but after
+ *
+@@ -201,8 +201,8 @@ import naga.packetwriter.RawPacketWriter
+ * we get additional details, and array of data with nine elements:
+ *
+ * {"type":"reply","reply":["LOADSTRUCT",
+- *
"https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&get3d=true",
+- * "file?format=sdf&get3d=true",
++ *
"https://cactus.nci.nih.gov/chemical/structure/caffeine/file?format=sdf&get3d=true",
++ * "file?format=sdf&get3d=true",
+ * "C8H10N4O2", null, 3, "1.1",
"1.1", null]}
+ *
+ * Exact specifications for these callbacks are not well documented.
+@@ -243,22 +243,22 @@ import naga.packetwriter.RawPacketWriter
+ * Note that all of the move and sync commands utilize the Jmol sync functionality
originally
+ * intended for applets. So any valid sync command may be used with the
"sync" style. These include
+ * essentially all the actions that a user can make with a mouse, including the
+- * following, where the notation <....> represents a number of a given type.
These
++ * following, where the notation <....> represents a number of a given
type. These
+ * events interrupt any currently running script, just as with typical mouse actions.
+ *
+- * "centerAt <int:x> <int:y> <float:ptx> <float:pty>
<float:ptz>"
++ * "centerAt <int:x> <int:y>
<float:ptx> <float:pty> <float:ptz>"
+ * -- set {ptx,pty,ptz} at screen (x,y)
+- * "rotateMolecule <float:deltaX> <float:deltaY>"
+- * "rotateXYBy <float:deltaX> <float:deltaY>"
+- * "rotateZBy <int:degrees>"
+- * "rotateZBy <int:degrees> <int:x> <int:y>" (with center
reset)
+- * "rotateArcBall <int:x> <int:y> <float:factor>"
+- * "spinXYBy <int:x> <int:y> <float:speed>"
++ * "rotateMolecule <float:deltaX>
<float:deltaY>"
++ * "rotateXYBy <float:deltaX> <float:deltaY>"
++ * "rotateZBy <int:degrees>"
++ * "rotateZBy <int:degrees> <int:x>
<int:y>" (with center reset)
++ * "rotateArcBall <int:x> <int:y>
<float:factor>"
++ * "spinXYBy <int:x> <int:y>
<float:speed>"
+ * -- a "flick" gesture
+- * "translateXYBy <float:deltaX, float:deltaY>"
+- * "zoomBy <int:pixels>"
+- * "zoomByFactor <float:factor>"
+- * "zoomByFactor <float:factor> <int:x> <int:y>" (with
center reset)
++ * "translateXYBy <float:deltaX, float:deltaY>"
++ * "zoomBy <int:pixels>"
++ * "zoomByFactor <float:factor>"
++ * "zoomByFactor <float:factor> <int:x>
<int:y>" (with center reset)
+ *
+ * In addition, a Jmol client send "raw" JSON strings over the socket via the
SYNC command:
+ *
diff --git a/jmol-xslt.patch b/jmol-xslt.patch
new file mode 100644
index 0000000..911d663
--- /dev/null
+++ b/jmol-xslt.patch
@@ -0,0 +1,347 @@
+--- build.xml.orig 2020-09-29 17:19:38.952711528 -0600
++++ build.xml 2020-09-29 17:19:50.040711152 -0600
+@@ -333,7 +333,7 @@ Release Note: When releasing stable vers
+ </target>
+
+ <target name="setup" id="setup">
+- <condition property="docbook-xsl.uptodate">
++ <!--<condition property="docbook-xsl.uptodate">
+ <and>
+ <uptodate targetfile="build/${docbook-xsl}"
+ srcfile="doc/${docbook-xsl}.tar.gz" />
+@@ -349,7 +349,7 @@ Release Note: When releasing stable vers
+ <uptodate targetfile="build/docbook-xml.timestamp"
+ srcfile="build/docbook-xml" />
+ </and>
+- </condition>
++ </condition>-->
+
+ <condition property="jmolGuide.uptodate">
+ <and>
+@@ -1645,9 +1645,9 @@ all support for previous versions remove
+ <target name="doc" id="doc"
+
depends="jmolGuide,jmolDevelopersGuide,jmolAppletGuide,jmolHistory,javadoc"/>
+
+- <target name="initdoc"
depends="init,check.docbook-xml,check.docbook-xsl,check.xsl" />
++ <target name="initdoc" depends="init" />
+
+- <target name="check.docbook-xsl" depends="setup"
unless="docbook-xsl.uptodate" >
++ <!--<target name="check.docbook-xsl" depends="setup"
unless="docbook-xsl.uptodate" >
+ <delete file="build/${docbook-xsl}.timestamp" />
+ <delete dir="build/${docbook-xsl}" />
+ <mkdir dir="build/${docbook-xsl}" />
+@@ -1667,7 +1667,7 @@ all support for previous versions remove
+ <target name="check.xsl" depends="setup"
unless="xsl.available" >
+ <echo message="XSLT class '${saxon.main}' not found." />
+ <echo message="Note that the documentation is NOT generated now."
/>
+- </target>
++ </target>-->
+
+ <target name="javadoc" depends="initdoc"
unless="javadoc.uptodate"
+ description="Generation of Javadoc">
+@@ -1689,24 +1689,22 @@ all support for previous versions remove
+ description="Generation of User's guide">
+ <echo message="Generating user's guide"
level="info"/>
+ <mkdir dir="build/doc/JmolUserGuide" />
+- <java fork="true" dir="build/doc/JmolUserGuide"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
+- <jvmarg value="${proxyHost}" />
+- <jvmarg value="${proxyPort}" />
++ <exec executable="xsltproc"
dir="build/doc/JmolUserGuide">
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/chunk.xsl"
/>
+ <arg value="../../../doc/source/JmolGuide.docbook.xml" />
+- <arg value="../../${docbook-xsl}/html/chunk.xsl" />
+- </java>
++ </exec>
+ <echo message="Generating user's guide (fr)"
level="info"/>
+ <mkdir dir="build/doc/JmolUserGuide_fr" />
+- <java fork="true" dir="build/doc/JmolUserGuide_fr"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
+- <jvmarg value="${proxyHost}" />
+- <jvmarg value="${proxyPort}" />
++ <exec executable="xsltproc"
dir="build/doc/JmolUserGuide_fr">
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/chunk.xsl"
/>
+ <arg value="../../../doc/source/JmolGuide_fr.docbook.xml" />
+- <arg value="../../${docbook-xsl}/html/chunk.xsl" />
+- </java>
++ </exec>
++ <echo message="Generating user's guide (de)"
level="info"/>
++ <mkdir dir="build/doc/JmolUserGuide_de" />
++ <exec executable="xsltproc"
dir="build/doc/JmolUserGuide_de">
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/chunk.xsl"
/>
++ <arg value="../../../doc/source/JmolGuide_de.docbook.xml" />
++ </exec>
+ </target>
+
+ <target name="jmolHistory" id="jmolHistory"
+@@ -1714,108 +1712,94 @@ all support for previous versions remove
+ description="Generation of history of changes">
+ <echo message="Generating history of changes"
level="info"/>
+ <mkdir dir="build/doc/JmolHistory" />
+- <java fork="true" dir="build/doc/JmolHistory"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc/JmolHistory">
+ <arg value="-o" />
+ <arg value="ChangeLog.html" />
+- <arg value="../../../doc/source/JmolHistory.xml" />
+ <arg value="../../../doc/source/JmolHistoryToHtml.xsl" />
+- </java>
++ <arg value="../../../doc/source/JmolHistory.xml" />
++ </exec>
+ <echo message="Generating history of changes (fr)"
level="info"/>
+- <java fork="true" dir="build/doc/JmolHistory"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc/JmolHistory">
+ <arg value="-o" />
+ <arg value="ChangeLog_fr.html" />
+- <arg value="../../../doc/source/JmolHistory_fr.xml" />
++ <arg value="--stringparam" />
++ <arg value="lang" />
++ <arg value="fr" />
+ <arg value="../../../doc/source/JmolHistoryToHtml.xsl" />
+- <arg value="lang=fr" />
+- </java>
++ <arg value="../../../doc/source/JmolHistory_fr.xml" />
++ </exec>
+ <echo message="Generating history of changes (nl)"
level="info"/>
+- <java fork="true" dir="build/doc/JmolHistory"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc/JmolHistory">
+ <arg value="-o" />
+ <arg value="ChangeLog_nl.html" />
+- <arg value="../../../doc/source/JmolHistory_nl.xml" />
++ <arg value="--stringparam" />
++ <arg value="lang" />
++ <arg value="nl" />
+ <arg value="../../../doc/source/JmolHistoryToHtml.xsl" />
+- <arg value="lang=nl" />
+- </java>
++ <arg value="../../../doc/source/JmolHistory_nl.xml" />
++ </exec>
+ <echo message="Generating history of changes (ro)"
level="info"/>
+- <java fork="true" dir="build/doc/JmolHistory"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc/JmolHistory">
+ <arg value="-o" />
+ <arg value="ChangeLog_ro.html" />
+- <arg value="../../../doc/source/JmolHistory_ro.xml" />
++ <arg value="--stringparam" />
++ <arg value="lang" />
++ <arg value="ro" />
+ <arg value="../../../doc/source/JmolHistoryToHtml.xsl" />
+- <arg value="lang=ro" />
+- </java>
++ <arg value="../../../doc/source/JmolHistory_ro.xml" />
++ </exec>
+ </target>
+
+ <target name="jmolDevelopersGuide" id="jmolDevelopersGuide"
+ depends="initdoc" unless="jmolDevelopersGuide.uptodate"
+ description="Generation of Developer's guide">
+ <echo message="Generating developer's guide"
level="info"/>
+- <java fork="true" dir="build/doc"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc">
+ <arg value="-o" />
+ <arg value="JmolDevelopersGuide.html" />
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"
/>
+ <arg value="../../doc/source/JmolDevelopersGuide.docbook.xml" />
+- <arg value="../${docbook-xsl}/html/docbook.xsl" />
+- </java>
++ </exec>
+ <echo message="Generating developer's guide (fr)"
level="info"/>
+- <java fork="true" dir="build/doc"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc">
+ <arg value="-o" />
+ <arg value="JmolDevelopersGuide_fr.html" />
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"
/>
+ <arg value="../../doc/source/JmolDevelopersGuide_fr.docbook.xml"
/>
+- <arg value="../${docbook-xsl}/html/docbook.xsl" />
+- </java>
++ </exec>
+ <echo message="Generating developer's guide (de)"
level="info"/>
+- <java fork="true" dir="build/doc"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc">
+ <arg value="-o" />
+ <arg value="JmolDevelopersGuide_de.html" />
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"
/>
+ <arg value="../../doc/source/JmolDevelopersGuide_de.docbook.xml"
/>
+- <arg value="../${docbook-xsl}/html/docbook.xsl" />
+- </java>
++ </exec>
+ </target>
+
+ <target name="jmolAppletGuide" id="jmolAppletGuide"
depends="initdoc"
+ unless="jmolAppletGuide.uptodate"
+ description="Generation of Applet guide">
+ <echo message="Generating applet guide" level="info"/>
+- <java fork="true" dir="build/doc"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc">
+ <arg value="-o" />
+ <arg value="JmolAppletGuide.html" />
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"
/>
+ <arg value="../../doc/source/JmolAppletGuide.docbook.xml" />
+- <arg value="../${docbook-xsl}/html/docbook.xsl" />
+- </java>
++ </exec>
+ <echo message="Generating applet guide (fr)"
level="info"/>
+- <java fork="true" dir="build/doc"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc">
+ <arg value="-o" />
+ <arg value="JmolAppletGuide_fr.html" />
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"
/>
+ <arg value="../../doc/source/JmolAppletGuide_fr.docbook.xml" />
+- <arg value="../${docbook-xsl}/html/docbook.xsl" />
+- </java>
++ </exec>
+ <echo message="Generating applet guide (de)"
level="info"/>
+- <java fork="true" dir="build/doc"
+- classname="${saxon.main}"
+- classpath="${lib.dir}/${saxon.jar}" >
++ <exec executable="xsltproc" dir="build/doc">
+ <arg value="-o" />
+ <arg value="JmolAppletGuide_de.html" />
++ <arg value="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"
/>
+ <arg value="../../doc/source/JmolAppletGuide_de.docbook.xml" />
+- <arg value="../${docbook-xsl}/html/docbook.xsl" />
+- </java>
++ </exec>
+ </target>
+
+ <target name="test" id="test"
depends="main,compile-tests">
+--- doc/source/guide/scriptCommands.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/guide/scriptCommands.docbook.xml 2020-09-29 17:19:50.042711152 -0600
+@@ -379,7 +379,7 @@ color atoms white
+ </variablelist><para>See also:<xref linkend="echo"/>
<xref linkend="font"/> <xref linkend="label"/> <xref
linkend="sethighlights"/> </para>
+ </section>
+ <section xreflabel="isosurface"
id="isosurface"><title>isosurface</title>
+-<para><img style="clear:right" src="isosurface.gif"
alt="" />Jmol can generate isosurfaces from scalar field data in files of the
gaussian .cube format, which contains both atom positions and scalar data. The load
command reads only the atom position data from the .cube file.</para><para>A
separate isosurface command is used to read the scalar field data and construct the
isosurface. This surface represents the points in space where scalar values cross a
specified "cutoff" value. Inside the surface, values are greater or equal to a
specified positive cutoff or less than or equal to a specified negative cutoff. The
default cutoff is 0.02. Note that positive and negative surfaces are created separately.
You can give them distinct names and control their display properties independently.
</para><para>Parameters to the isosurface command control the cutoff value and
the display characteristics of the surface. Any number of display characteristics (such as
"DOTS MESH NOFILL") may be included in a single isosurface command. By reading
the same .cube file more than once with different parameters, or by reading different
.cube files, you can construct different isosurfaces with different shapes and sizes. By
naming these individual surfaces with unique identifiers you can control display settings
and color for each of the surfaces independently. </para><para>The isosurface
command is similar to the pmesh command in terms of options. The isosurface command takes
the overall format:</para><para>isosurface surfaceID cutoff [option]
"filename.cube".</para><para>Starting in version 10.00.42, you can
map a function (based on values in another .cube file) onto an isosurface. This is done by
adding to the isosurface command the keywords COLOR ABSOLUTE followed by the negative
cutoff, the positive cutoff, and the name of another .cube file. Surface are then colored
using a red-->orange-->yellow-->green-->blue rainbow, where red represents
minimum values and blue represents maximum values. If absolute cutoff values are not
provided, then Jmol will calculate the range based upon the actual data values calculated
for the surface points.</para><para>(The filename must be in double quotes,
but the extension '.cube' is not necessary.) The .cube file may be
gzip-compressed. isosurfaceID is any name that you want to use later to refer to this
particular surface.</para>
++<para><imagedata align="right" fileref="isosurface.gif"
/>Jmol can generate isosurfaces from scalar field data in files of the gaussian .cube
format, which contains both atom positions and scalar data. The load command reads only
the atom position data from the .cube file.</para><para>A separate isosurface
command is used to read the scalar field data and construct the isosurface. This surface
represents the points in space where scalar values cross a specified "cutoff"
value. Inside the surface, values are greater or equal to a specified positive cutoff or
less than or equal to a specified negative cutoff. The default cutoff is 0.02. Note that
positive and negative surfaces are created separately. You can give them distinct names
and control their display properties independently. </para><para>Parameters to
the isosurface command control the cutoff value and the display characteristics of the
surface. Any number of display characteristics (such as "DOTS MESH NOFILL") may
be included in a single isosurface command. By reading the same .cube file more than once
with different parameters, or by reading different .cube files, you can construct
different isosurfaces with different shapes and sizes. By naming these individual surfaces
with unique identifiers you can control display settings and color for each of the
surfaces independently. </para><para>The isosurface command is similar to the
pmesh command in terms of options. The isosurface command takes the overall
format:</para><para>isosurface surfaceID cutoff [option]
"filename.cube".</para><para>Starting in version 10.00.42, you can
map a function (based on values in another .cube file) onto an isosurface. This is done by
adding to the isosurface command the keywords COLOR ABSOLUTE followed by the negative
cutoff, the positive cutoff, and the name of another .cube file. Surface are then colored
using a red-->orange-->yellow-->green-->blue rainbow, where red represents
minimum values and blue represents maximum values. If absolute cutoff values are not
provided, then Jmol will calculate the range based upon the actual data values calculated
for the surface points.</para><para>(The filename must be in double quotes,
but the extension '.cube' is not necessary.) The .cube file may be
gzip-compressed. isosurfaceID is any name that you want to use later to refer to this
particular surface.</para>
+ <variablelist><title>Syntax</title>
+ <varlistentry><term><command id="k137"
xreflabel="isosurface isosurfaceID{default: all isosurfaces}">isosurface
isosurfaceID{default: all isosurfaces}</command></term>
+ <listitem><para>Selects a specific isosurface (or all isosurfaces) for
subsequent color commands.</para></listitem></varlistentry>
+@@ -510,7 +510,7 @@ slab off; # all done!
+ </variablelist><para>See also:<xref linkend="animation"/>
<xref linkend="delay"/> <xref linkend="exit"/> <xref
linkend="frame"/> <xref linkend="loop"/> <xref
linkend="model"/> <xref linkend="moveto"/> <xref
linkend="quit"/> <xref linkend="script"/> <xref
linkend="setspin"/> <xref linkend="show"/> <xref
linkend="spin"/> <xref linkend="translate"/> <xref
linkend="zoom"/> </para>
+ </section>
+ <section xreflabel="moveto"
id="moveto"><title>moveto</title>
+-<para><img src="examples/moveto.gif" alt="" />The moveto
command rotates the molecule to a predefined orientation. The first parameter specifies
the number of seconds during which the molecule should rotate smoothly from the current
orientation to the new orientation. A 0 for this first parameter specifies an
instantaneous reorientation. The next three parameters (x, y, and z) define the axis
relative to the default orientation about which the molecule should be rotated. The fifth
parameter defines the counterclockwise (right-hand) rotation in degrees about this axis.
"moveto 0 0 0 0 0" rotates the model to the default orientation (equivalent to
"reset"). If the fifth parameter is 0 but any one of x, y, or z is nonzero, then
no reorientation occurs (because the axis has been specified, but the rotation is 0
degrees). In conjunction with "show orientation" this command allows reading and
restoring specific user-specified orientations.</para>
++<para><imagedata fileref="examples/moveto.gif" />The moveto
command rotates the molecule to a predefined orientation. The first parameter specifies
the number of seconds during which the molecule should rotate smoothly from the current
orientation to the new orientation. A 0 for this first parameter specifies an
instantaneous reorientation. The next three parameters (x, y, and z) define the axis
relative to the default orientation about which the molecule should be rotated. The fifth
parameter defines the counterclockwise (right-hand) rotation in degrees about this axis.
"moveto 0 0 0 0 0" rotates the model to the default orientation (equivalent to
"reset"). If the fifth parameter is 0 but any one of x, y, or z is nonzero, then
no reorientation occurs (because the axis has been specified, but the rotation is 0
degrees). In conjunction with "show orientation" this command allows reading and
restoring specific user-specified orientations.</para>
+ <variablelist><title>Syntax</title>
+ <varlistentry><term><command id="k198" xreflabel="moveto
[time-in-seconds] [coord-value] [coord-value] [coord-value] [cw-rotation-deg]
[percent-zoom]">moveto [time-in-seconds] [coord-value] [coord-value] [coord-value]
[cw-rotation-deg] [percent-zoom]</command></term><listitem><para>
</para></listitem></varlistentry>
+ </variablelist>
+@@ -1027,7 +1027,7 @@ select *;star OFF
+ </variablelist>
+ </section>
+ <section xreflabel="stereo"
id="stereo"><title>stereo</title>
+-<para>Jmol supports two forms of stereo rendering for molecules. In the first
form, the two images are placed side by side and rotated so as to appear from slightly
different perspectives, creating the illusion of 3D when a practiced user trains one eye
on one image and the other eye on the other image. </para><para><img
src="glasses.gif" style="clear:right" alt="" />A second
form of stereo rendering, analglyphic rendering, nearly superimposes two identical models
that are slightly rotated relative to each other. These models are each of a different
color (red and one of blue, cyan, or green). The illusion of depth can then be created
when the user wears an inexpensive pair of "3D glasses" that have differently
colored lenses. </para><para>One should experiment with different background
colors when using redcyan or redblue stereo rendering. For many users background grey
looks better than background white or background black.</para>
++<para>Jmol supports two forms of stereo rendering for molecules. In the first
form, the two images are placed side by side and rotated so as to appear from slightly
different perspectives, creating the illusion of 3D when a practiced user trains one eye
on one image and the other eye on the other image. </para><para><imagedata
fileref="glasses.gif" align="right" />A second form of stereo
rendering, analglyphic rendering, nearly superimposes two identical models that are
slightly rotated relative to each other. These models are each of a different color (red
and one of blue, cyan, or green). The illusion of depth can then be created when the user
wears an inexpensive pair of "3D glasses" that have differently colored lenses.
</para><para>One should experiment with different background colors when using
redcyan or redblue stereo rendering. For many users background grey looks better than
background white or background black.</para>
+ <variablelist><title>Syntax</title>
+ <varlistentry><term><command id="k391" xreflabel="stereo
[stereo-viewing-angle]{default: 5}">stereo [stereo-viewing-angle]{default:
5}</command></term>
+ <listitem><para>Turns side-by-side stereo viewing on. (Note that if this
form of stereo viewing is desired, you will probably want to have the applet width twice
the applet height.) If a number of degrees is not given or has not already been specified
in a previous command,, the default rotation is 5 degrees. Sets the number of degrees of
counter-clockwise vertical-axis rotation of the RIGHT-hand image relative to the LEFT-hand
image (which itself does not change rotation when stereo viewing is turned on and off).
Positive values correspond to cross-eyed viewing, where the left eye is trained on the
right image, and the right eye is trained on the left image. Negative values (clockwise
rotation) correspond to "wall-eyed" viewing, where the right eye is trained on
the right image and the left eye is trained on the left image. Note that stereo 90 may be
useful, as it shows two views of a model that rotate synchronously, a "front
view" on the left and a "right side view" on the
right.</para></listitem></varlistentry>
+--- doc/source/JmolAppletGuide_de.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/JmolAppletGuide_de.docbook.xml 2020-09-29 17:19:50.042711152 -0600
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="utf-8"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"../../build/docbook-xml/docbookx.dtd" [
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd" [
+ <!ENTITY appletIntro SYSTEM "applet/intro.docbook.xml">
+ <!ENTITY appletBrowsers SYSTEM "applet/browsers.docbook.xml">
+ <!ENTITY appletHardware SYSTEM "applet/hardware.docbook.xml">
+--- doc/source/JmolAppletGuide.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/JmolAppletGuide.docbook.xml 2020-09-29 17:19:50.043711152 -0600
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+- "../../build/docbook-xml/docbookx.dtd"
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
++ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd"
+ [
+ <!ENTITY appletIntro SYSTEM "applet/intro.docbook.xml">
+ <!ENTITY appletBrowsers SYSTEM "applet/browsers.docbook.xml">
+--- doc/source/JmolAppletGuide_fr.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/JmolAppletGuide_fr.docbook.xml 2020-09-29 17:19:50.043711152 -0600
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+- "../../build/docbook-xml/docbookx.dtd"
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
++ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd"
+ [
+ <!ENTITY appletIntro SYSTEM "applet/intro_fr.docbook.xml">
+ <!ENTITY appletBrowsers SYSTEM "applet/browsers_fr.docbook.xml">
+--- doc/source/JmolDevelopersGuide_de.docbook.xml.orig 2020-09-26 11:17:41.000000000
-0600
++++ doc/source/JmolDevelopersGuide_de.docbook.xml 2020-09-29 17:19:50.044711152 -0600
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="utf-8"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"../../build/docbook-xml/docbookx.dtd">
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd">
+ <book id="jmol-devel-guide" lang="de">
+
+ <bookinfo>
+--- doc/source/JmolDevelopersGuide.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/JmolDevelopersGuide.docbook.xml 2020-09-29 17:19:50.044711152 -0600
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+ <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
+- "../../build/docbook-xml/docbookx.dtd">
++ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd">
+
+ <book id="jmol-devel-guide" lang="en">
+
+--- doc/source/JmolDevelopersGuide_fr.docbook.xml.orig 2020-09-26 11:17:41.000000000
-0600
++++ doc/source/JmolDevelopersGuide_fr.docbook.xml 2020-09-29 17:19:50.045711152 -0600
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+- "../../build/docbook-xml/docbookx.dtd"
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
++ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd"
+ >
+ <!--
+ French translation
+--- doc/source/JmolGuide_de.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/JmolGuide_de.docbook.xml 2020-09-29 17:19:50.045711152 -0600
+@@ -1,5 +1,5 @@
+ <?xml version="1.0" encoding="utf-8"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"../../build/docbook-xml/docbookx.dtd" [
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
"/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd" [
+ <!ENTITY guideIntro SYSTEM "guide/intro.docbook.xml">
+ <!ENTITY guideCommandLine SYSTEM "guide/commandline.docbook.xml">
+ <!ENTITY guideMenus SYSTEM "guide/menus.docbook.xml">
+--- doc/source/JmolGuide.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/JmolGuide.docbook.xml 2020-09-29 17:19:50.046711152 -0600
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+- "../../build/docbook-xml/docbookx.dtd"
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
++ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd"
+ [
+ <!ENTITY guideIntro SYSTEM "guide/intro.docbook.xml">
+ <!ENTITY guideCommandLine SYSTEM "guide/commandline.docbook.xml">
+--- doc/source/JmolGuide_fr.docbook.xml.orig 2020-09-26 11:17:41.000000000 -0600
++++ doc/source/JmolGuide_fr.docbook.xml 2020-09-29 17:19:50.046711152 -0600
+@@ -1,6 +1,6 @@
+ <?xml version="1.0"?>
+-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+- "../../build/docbook-xml/docbookx.dtd"
++<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
++ "/usr/share/sgml/docbook/xml-dtd-4.4/docbookx.dtd"
+ [
+ <!ENTITY guideIntro SYSTEM "guide/intro_fr.docbook.xml">
+ <!ENTITY guideCommandLine SYSTEM
"guide/commandline_fr.docbook.xml">
diff --git a/jmol.spec b/jmol.spec
index db28eb9..57de3d9 100644
--- a/jmol.spec
+++ b/jmol.spec
@@ -1,52 +1,81 @@
-%global pkgdate 2016.06.30
-# Build jsmol by default
-%bcond_without jsmol
-
-Name: jmol
-Version: 14.6.0
-Release: 8.%{pkgdate}%{?dist}
-Summary: An open-source Java viewer for chemical structures in 3D
-# most is LGPLv2+, src/com/obrador is combination of IJG and BSD
-# src/org@/jmol/export/image is partially 2 clause BSD
-License: LGPLv2+ and IJG and BSD
-URL:
http://jmol.sourceforge.net
-BuildArch: noarch
-Source0:
http://downloads.sourceforge.net/%{name}/Jmol-%{version}_%{pkgdate}-full....
-Source1:
http://wiki.jmol.org/images/1/1c/Jmol_icon13.png
-# Patch to get Jmol to build in Fedora (location of JAR files)
-Patch0: jmol-14.2.12-fedorabuild.patch
-# Don't try to sign jars
-Patch1: jmol-14.0.11-dontsign.patch
-
-
-BuildRequires: ant, ant-contrib
-BuildRequires: desktop-file-utils
-BuildRequires: gettext-devel
-BuildRequires: apache-commons-cli
-BuildRequires: java-devel >= 1:1.6.0
-BuildRequires: jpackage-utils
-BuildRequires: jspecview >= 2-6.1464svn
-BuildRequires: naga
-# In newer releases some of the necessary Java classes are
-# in the browser plugin package
-BuildRequires: icedtea-web
-Requires: icedtea-web
-Requires: java >= 1:1.6.0
-Requires: jpackage-utils
-Requires: apache-commons-cli
-Requires: jspecview >= 2-6.1464svn
-Requires: naga
+# NOTE: This package requires the netscape.javascript classes. These classes
+# are provided by jsobject.jar in the icedtea-web package for Fedora 32 and
+# below. In Fedora 33, the jar is no longer part of the icedtea-web package.
+# The classes are provided by JDK 9 and greater instead. This means that JDK 8
+# in Fedora 33 and later is not able to run this code. Since the next greater
+# JDK in Fedora is JDK 11, we target that release.
+
+Name: jmol
+Version: 14.31.8
+Release: 1%{?dist}
+Summary: Java viewer for chemical structures in 3D
+
+# JSpecView, JMol, and Sparsh-UI are all LGPLv2+.
+# src/javajs/img/GifEncoder.java is BSD.
+# src/javajs/img/JpgEncoder.java and src/javajs/img/Jpg64Encoder.java are IJG.
+# The icon is CC0.
+# The Nuvola icons are GPLv2.
+License: LGPLv2+ and BSD and IJG and CC0 and GPLv2
+URL:
http://www.jmol.org/
+BuildArch: noarch
+Source0:
http://downloads.sourceforge.net/%{name}/Jmol-%{version}-full.tar.gz
+Source1:
http://biomodel.uah.es/Jmol/logos/Jmol_icon13.svg
+# Fedora-specific patch to the ant build rules
+Patch0: %{name}-build.patch
+# Use xsltproc instead of saxon
+Patch1: %{name}-xslt.patch
+# Fix code that is invalid with JDK 9+
+Patch2: %{name}-java9.patch
+# Fix javadoc errors
+Patch3: %{name}-javadoc.patch
+
+BuildRequires: ant
+BuildRequires: ant-contrib
+BuildRequires: ant-junit
+BuildRequires: apache-commons-cli
+BuildRequires: desktop-file-utils
+BuildRequires: docbook-dtds
+BuildRequires: docbook-style-xsl
+BuildRequires: gettext
+BuildRequires: java-devel
+BuildRequires: java-javadoc
+BuildRequires: javapackages-tools
+BuildRequires: junit
+BuildRequires: libxslt
+BuildRequires: naga
+BuildRequires: web-assets-devel
+
+Requires: apache-commons-cli
+Requires: hicolor-icon-theme
+Requires: java
+Requires: javapackages-filesystem
+Requires: javapackages-tools
+Requires: naga
+
+# The upstreams for JSpecView and JMol are the same. The JSpecView site appears
+# to have been abandoned. Development of JSpecView has continued in the JMol
+# source tree. Note that JSpecView is now bundled in JMol.
+Provides: bundled(jspecview)
+
+# A modified version of Sparsh-UI is bundled
+Provides: bundled(sparshui)
+
+# Icons from Nuvola are included, but at different sizes than Fedora provides
+Provides: bundled(nuvola-icon-theme)
+
+# This can be removed when F33 reaches EOL
+Obsoletes: jspecview < 2-22
%description
Jmol is a free, open source molecule viewer for students, educators,
and researchers in chemistry and biochemistry.
-%if %{with jsmol}
%package -n jsmol
-Summary: JavaScript-Based Molecular Viewer From Jmol
-Requires: %{name} = %{version}-%{release}
-BuildRequires: web-assets-devel
-Requires: web-assets-filesystem
+Summary: JavaScript-Based Molecular Viewer From Jmol
+License: LGPLv2+
+Requires: web-assets-filesystem
+
+Recommends: js-jquery1
%description -n jsmol
JSmol is the extension of the Java-based molecular visualization
@@ -67,51 +96,52 @@ a popup menu.
JSmol is integrated fully with JSME and JSpecView.
A "lite" version of JSmol provides minimal functionality
-(balls and sticks only) for extremely small-bandwith apps.
-%endif
+(balls and sticks only) for extremely small-bandwidth apps.
%package javadoc
-Summary: Java docs for %{name}
-Requires: %{name} = %{version}-%{release}
-Requires: jpackage-utils
+Summary: Java docs for %{name}
+Requires: javapackages-tools
+
+# This can be removed when F33 reaches EOL
+Obsoletes: jspecview-javadoc < 2-22
%description javadoc
This package contains the API documentation for %{name}.
-
%package doc
Summary: Documentation for %{name}
-Requires: %{name} = %{version}-%{release}
%description doc
The documentation for %{name}.
-
%prep
-%setup -q -n %{name}-%{version}_%{pkgdate}
-%patch0 -p1 -b .fedorabuild
-%patch1 -p1 -b .nosign
+%autosetup -p0
# Remove binaries
-find -name '*.class' -exec rm -f '{}' \;
-find -name '*.exe' -exec rm -f '{}' \;
-find -name '*.jar' -exec rm -f '{}' \;
-rm -f jars/*
+find . \( -name \*.exe -o -name \*.jar -o -name \*.dll \) -delete
+rm doc/*.zip
+
+# Link the system jars
+build-jar-repository -p -s jars commons-cli junit naga-3_0
+
+# Handle netscape.jar. See the comment at the top of the spec file.
+sed -i '/netscape\.jar/d' build.xml
-# Remove executable permissions from documentation
-find -name "*.txt" -exec chmod 644 {} \;
# Fix EOL encoding
-for doc in README.txt COPYRIGHT.txt LICENSE.txt CHANGES.txt; do
-sed "s|\r||g" $doc > $doc.new && \
-touch -r $doc $doc.new && \
-mv $doc.new $doc
+for doc in CHANGES.txt COPYRIGHT.txt LICENSE.txt README.txt; do
+ sed -i.orig "s|\r||g" $doc
+ touch -r $doc.orig $doc
+ rm $doc.orig
done
+# Fix character encoding
+iconv -f ISO8859-1 -t UTF-8 CHANGES.txt > CHANGES.txt.utf8
+touch -r CHANGES.txt CHANGES.txt.utf8
+mv CHANGES.txt.utf8 CHANGES.txt
# Make desktop file
cat > jmol.desktop << EOF
[Desktop Entry]
-Encoding=UTF-8
Name=Jmol
Comment=An open-source Java viewer for chemical structures in 3D
Exec=jmol
@@ -123,60 +153,76 @@ EOF
%build
export ANT_OPTS="-Dfile.encoding=utf-8"
-# Need to be able to find netscape.javascript.*classes
-%if 0%{?fedora} > 25
-PLUGIN_JAR=%{_datadir}/icedtea-web/jsobject.jar
-%else
-PLUGIN_JAR=%{_datadir}/icedtea-web/plugin.jar
-%endif
-unzip $PLUGIN_JAR | grep javascript/JSObject.class
-ant --execdebug -lib $PLUGIN_JAR jar applet-jar doc
+ant jar applet-jar doc
%install
-rm -rf %{buildroot}
-install -D -p -m 644 build/Jmol.jar %{buildroot}%{_javadir}/Jmol.jar
-install -D -p -m 644 build/JmolApplet.jar %{buildroot}%{_javadir}/JmolApplet.jar
-install -D -p -m 644 %{SOURCE1} %{buildroot}%{_datadir}/pixmaps/%{name}.png
+# Install the JARs
+mkdir -p %{buildroot}%{_javadir}/%{name}
+install -D -p -m 644 build/{Jmol{,Data,Lib},Jvxl}.jar \
+ %{buildroot}%{_javadir}/%{name}
-%jpackage_script org.openscience.jmol.app.Jmol "" ""
Jmol:commons-cli:jspecview.app:jspecview.applet jmol true
+# Install wrapper script
+%jpackage_script org.openscience.jmol.app.Jmol "" ""
naga:commons-cli:jmol/Jmol %{name} 1
+
+# Install the icon
+install -D -p -m 644 %{SOURCE1} \
+ %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
# Install desktop file
-desktop-file-install --dir=${RPM_BUILD_ROOT}%{_datadir}/applications jmol.desktop
+desktop-file-install --dir=%{buildroot}%{_datadir}/applications jmol.desktop
# Javadoc files
mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -rp build/javadoc/* %{buildroot}%{_javadocdir}/%{name}
-%if %{with jsmol}
-pushd appletweb
- unzip jsmol.zip
- pushd jsmol
- mkdir -p %{buildroot}%{_jsdir}/jsmol
- cp -pr *.htm *.js j2s js %{buildroot}%{_jsdir}/jsmol
- popd
-popd
-%endif
+# Install the parts of jsmol needed by sagemath
+mkdir -p %{buildroot}%{_jsdir}/jsmol
+cd appletweb
+unzip jsmol.zip
+cd jsmol
+sed -i.orig "s|\r||g" README.TXT
+touch -r README.TXT.orig README.TXT
+cp -p JSmol*js %{buildroot}%{_jsdir}/jsmol
+cp -a idioma j2s %{buildroot}%{_jsdir}/jsmol
+cd ../..
%files
-%doc build/doc/* README.txt COPYRIGHT.txt LICENSE.txt ChangeLog.html CHANGES.txt
+%doc README.txt ChangeLog.html CHANGES.txt
+%license COPYRIGHT.txt LICENSE.txt
%{_bindir}/%{name}
-%{_javadir}/Jmol.jar
-%{_javadir}/JmolApplet.jar
-%{_datadir}/pixmaps/%{name}.png
+%{_javadir}/%{name}/
+%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
%{_datadir}/applications/%{name}.desktop
-%if %{with jsmol}
%files -n jsmol
-%{_jsdir}/jsmol
-%endif
+%doc appletweb/jsmol/README.TXT
+%license COPYRIGHT.txt LICENSE.txt
+%{_jsdir}/jsmol/
%files javadoc
+%license COPYRIGHT.txt LICENSE.txt
%{_javadocdir}/%{name}/
%files doc
-%doc build/doc/*
+%doc %lang(en) build/doc/JmolAppletGuide.html
+%doc %lang(en) build/doc/JmolDevelopersGuide.html
+%doc %lang(en) build/doc/JmolHistory/ChangeLog.html
+%doc %lang(en) build/doc/JmolUserGuide/
+%doc %lang(de) build/doc/JmolAppletGuide_de.html
+%doc %lang(de) build/doc/JmolDevelopersGuide_de.html
+%doc %lang(de) build/doc/JmolUserGuide_de/
+%doc %lang(fr) build/doc/JmolAppletGuide_fr.html
+%doc %lang(fr) build/doc/JmolDevelopersGuide_fr.html
+%doc %lang(fr) build/doc/JmolHistory/ChangeLog_fr.html
+%doc %lang(fr) build/doc/JmolUserGuide_fr/
+%doc %lang(nl) build/doc/JmolHistory/ChangeLog_nl.html
+%doc %lang(ro) build/doc/JmolHistory/ChangeLog_ro.html
+%license COPYRIGHT.txt LICENSE.txt
%changelog
+* Tue Sep 29 2020 Jerry James <loganjerry(a)gmail.com> - 14.31.8-1
+- Bring back to Fedora
+
* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> -
14.6.0-8.2016.06.30
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/sources b/sources
index 212f60e..3a5c47c 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-bbeac27592fb2fb9c6d4862e83bb1163 Jmol-14.6.0_2016.06.30-full.tar.gz
-ec81d40b7583cf4fd9dfac71b84784cd Jmol_icon13.png
+SHA512 (Jmol-14.31.8-full.tar.gz) =
09f1235bb3919476332f621a3a8b46b829470f2ca1a4a365058ccb1cd2e10a987fa52c0fcc8b5cecce381512381f0bfa63dde3d7aba930f01257e423c82a0284
+SHA512 (Jmol_icon13.svg) =
116b94f19e94e822cae9679d4eab7bab8841144b0cf85ba70de31cf59f3e6c82b478a5a38c4afe6c1c34f684667ce3c51fc0487df63673145060a34934fff785
https://src.fedoraproject.org/rpms/jmol/c/6f8fe37fa7ddde529fa534ee8195363...