[med-svn] [mesquite] 02/02: Some rough packaging but lots of work might be left
Andreas Tille
tille at debian.org
Thu Mar 24 22:04:48 UTC 2016
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository mesquite.
commit 3546eb4d9cc08715400801c8eb46b0ef8acea6e8
Author: Andreas Tille <tille at debian.org>
Date: Thu Mar 24 23:01:22 2016 +0100
Some rough packaging but lots of work might be left
---
debian/README.source | 18 +
debian/changelog | 5 +
debian/compat | 1 +
debian/control | 29 +
debian/copyright | 18 +
.../invasive_character_encoding_change.patch | 11 +
debian/patches/series | 2 +
.../unmappable_character_for_encoding.patch | 1903 ++++++++++++++++++++
debian/rules | 23 +
debian/source/format | 1 +
debian/watch | 6 +
11 files changed, 2017 insertions(+)
diff --git a/debian/README.source b/debian/README.source
new file mode 100644
index 0000000..6bf8e78
--- /dev/null
+++ b/debian/README.source
@@ -0,0 +1,18 @@
+The source contains lots of "unmappable characters for encoding ASCII"
+Here is some code that reduces several occurances:
+
+ find . -name "*.java" -exec sed -i 's/�/ /g' \{\} \;
+ find . -name "*.java" -exec sed -i "s/'/'/g" \{\} \;
+ find . -name "*.java" -exec sed -i "s/´/'/g" \{\} \;
+ find . -name "*.java" -exec sed -i "s//'/g" \{\} \;
+ find . -name "*.java" -exec sed -i 's/^^$//g' \{\} \;
+ find . -name "*.java" -exec sed -i 's/ê/e/g' \{\} \;
+
+Some fix can't be done via quilt patches and is done in d/rules:
+
+ LC_ALL=C.UTF-8 for utf16 in `find . -name "*.java" -exec file \{\} \; | grep UTF-16 | sed 's/: .*//'` ; do dos2unix $$utf16 ; done
+
+This will probably prevent to build twice in a row which would need
+some extra care, but this is left for later cleaning up
+
+ -- Andreas Tille <tille at debian.org> Thu, 24 Mar 2016 13:31:16 +0100
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..ba055e1
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+mesquite (3.04+dfsg-1) UNRELEASED; urgency=medium
+
+ * Initial release (Closes: #<bug>)
+
+ -- Andreas Tille <tille at debian.org> Thu, 24 Mar 2016 13:31:16 +0100
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..e0c04b7
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,29 @@
+Source: mesquite
+Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
+Uploaders: Andreas Tille <tille at debian.org>
+Section: science
+Priority: optional
+Build-Depends: debhelper (>= 9),
+ javahelper,
+ default-jdk,
+ dos2unix
+Standards-Version: 3.9.7
+Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/mesquite.git
+Vcs-Git: https://anonscm.debian.org/git/debian-med/mesquite.git
+Homepage: https://github.com/MesquiteProject/MesquiteCore
+
+Package: mesquite
+Architecture: all
+Depends: ${java:Depends},
+ ${misc:Depends}
+Description: modular system for evolutionary analysis
+ Mesquite is modular, extendible software for evolutionary biology,
+ designed to help biologists organize and analyze comparative data about
+ organisms. Its emphasis is on phylogenetic analysis, but some of its
+ modules concern population genetics, while others do non-phylogenetic
+ multivariate analysis. Because it is modular, the analyses available
+ depend on the modules installed.
+ .
+ Mesquite also has many features for managing and processing data,
+ including processing of chromatograms, sequence alignment, editing of
+ morphometric data, and others.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..757f4f9
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,18 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: <pkg>
+Source: <path_to_download>
+Files-Excluded: *.zip
+ *.jar
+ *.jnilib
+ *.class
+ *.app
+ *.exe
+ *.prefs
+
+Files: *
+Copyright: © 20xx-20yy <upstream>
+License: <license>
+
+Files: debian/*
+Copyright: © 2016 maintainername <maintainer at e.mail>
+License: <license>
diff --git a/debian/patches/invasive_character_encoding_change.patch b/debian/patches/invasive_character_encoding_change.patch
new file mode 100644
index 0000000..652ef1b
--- /dev/null
+++ b/debian/patches/invasive_character_encoding_change.patch
@@ -0,0 +1,11 @@
+--- a/Source/mesquite/charMatrices/SelectCharacterRanges/SelectCharacterRanges.java
++++ b/Source/mesquite/charMatrices/SelectCharacterRanges/SelectCharacterRanges.java
+@@ -108,7 +108,7 @@ public class SelectCharacterRanges exten
+ } else {
+ parser.setHyphensArePartOfNumbers(false);
+ while (StringUtil.notEmpty(token)) {
+- if (token.equalsIgnoreCase("-") || token.equalsIgnoreCase("–")) { // now get end of range
++ if (token.equalsIgnoreCase("-")) { // attention: when leaving the "other" '-' sign code does not compile under Debian || token.equalsIgnoreCase("other-sign")) { // now get end of range
+ token = parser.getNextToken();
+ icEnd = MesquiteInteger.fromString(token); //end of range
+ if (MesquiteInteger.isCombinable(icStart) && MesquiteInteger.isCombinable(icEnd))
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..8fd7e63
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+unmappable_character_for_encoding.patch
+invasive_character_encoding_change.patch
diff --git a/debian/patches/unmappable_character_for_encoding.patch b/debian/patches/unmappable_character_for_encoding.patch
new file mode 100644
index 0000000..f7ca3a2
--- /dev/null
+++ b/debian/patches/unmappable_character_for_encoding.patch
@@ -0,0 +1,1903 @@
+--- a/Source/mesquite/ancstates/ExportAncRec/ExportAncRec.java
++++ b/Source/mesquite/ancstates/ExportAncRec/ExportAncRec.java
+@@ -59,7 +59,7 @@ public class ExportAncRec extends TraceC
+ /*.................................................................................................................*/
+ public Object doCommand(String commandName, String arguments, CommandChecker checker) {
+ if (checker.compare(this.getClass(), "Shows the trace as a tree string", null, commandName, "showTreeStringSIMMAP15")) {
+- //todo: if more than one traced, query user which one to store��������������������
++ //todo: if more than one traced, query user which one to store
+
+ if (traces == null || traces.size()<1 || !(traces.elementAt(0) instanceof CharHistoryContainer))
+ return null;
+--- a/Source/mesquite/ancstates/TraceCharacterHistory/TraceCharacterHistory.java
++++ b/Source/mesquite/ancstates/TraceCharacterHistory/TraceCharacterHistory.java
+@@ -497,7 +497,7 @@ public class TraceCharacterHistory exten
+
+ /* The following is disabled for the moment, as storing and retrieving of character histories is not yet supported */
+ else if (enableStore && checker.compare(this.getClass(), "Stores the current character history", null, commandName, "storeHistory")) {
+- //todo: if more than one traced, query user which one to store��������������������
++ //todo: if more than one traced, query user which one to store
+ TraceCharacterOperator tco = (TraceCharacterOperator)traces.elementAt(0);
+ if (tco!=null && tco.traceLegend!=null && tco.history!=null && tco.myTree!=null) {
+ CharacterHistory history = tco.history;
+--- a/Source/mesquite/minimal/Installer/Installer.java
++++ b/Source/mesquite/minimal/Installer/Installer.java
+@@ -77,16 +77,16 @@ import org.dom4j.Element;
+ * -- FUTURE (or in control of modules after they start): permit writing outside Mesquite
+ * -- FUTURE (or in control of modules after they start): permit scripts to run, e.g. to install outside of Mesquite_Folder
+ *
+- * �-- Same protection in menu formation re java/dependencies
+- * �-- have dependency tag that indicates dependencies
+- * �-- make directories needed
+- * �-- permit OS-specific installs
+- * �-- what if dir not writable???
+- * �-- have require tag that indicates minimal Java version
+- * �-- receipt should contain more info
+- * �-- add tag "critical" to updates; these would get installed only if receipt and folders indicate installation already had been done
+- * �-- distinguish install and update, i.e. some do not give messages unless you already have older pakcage installed
+- * �-- check to see that receipts point to files that still exist; if not, then treat receipt as if it hadn't existed
++ * -- Same protection in menu formation re java/dependencies
++ * -- have dependency tag that indicates dependencies
++ * -- make directories needed
++ * -- permit OS-specific installs
++ * -- what if dir not writable???
++ * -- have require tag that indicates minimal Java version
++ * -- receipt should contain more info
++ * -- add tag "critical" to updates; these would get installed only if receipt and folders indicate installation already had been done
++ * -- distinguish install and update, i.e. some do not give messages unless you already have older pakcage installed
++ * -- check to see that receipts point to files that still exist; if not, then treat receipt as if it hadn't existed
+ * */
+ public class Installer extends MesquiteInit {
+ public String getName() {
+@@ -575,7 +575,7 @@ public class Installer extends MesquiteI
+ else if (response == -1)
+ discreetAlert("There was a problem downloading the update from the server. Your internet connection or the server may be down.");
+ else if (response == -2)
+- discreetAlert("There was a problem saving the downloaded files. It is possible that Mesquite doesn’t have permission to make modifications within Mesquite_Folder. This can happen, for example, if Mesquite_Folder is in the Applications or Program Files folder. One possible fix is to move Mesquite_Folder to your own user directory, and try again to update.");
++ discreetAlert("There was a problem saving the downloaded files. It is possible that Mesquite doesn't have permission to make modifications within Mesquite_Folder. This can happen, for example, if Mesquite_Folder is in the Applications or Program Files folder. One possible fix is to move Mesquite_Folder to your own user directory, and try again to update.");
+ else if (response == -3)
+ discreetAlert("You have decided to cancel the update.");
+ else if (response == -4)
+--- a/Source/mesquite/minimal/InterpretNEXUS/InterpretNEXUS.java
++++ b/Source/mesquite/minimal/InterpretNEXUS/InterpretNEXUS.java
+@@ -333,7 +333,7 @@ public class InterpretNEXUS extends Nexu
+ if (piMine)
+ progIndicator.setOwnerThread(null);
+
+- if (abort){ //���
++ if (abort){ //
+ progIndicator.goAway();
+ mNF.closeReading();
+ mNF.close();
+--- a/Source/mesquite/minimal/Simplicity/Simplicity.java
++++ b/Source/mesquite/minimal/Simplicity/Simplicity.java
+@@ -34,7 +34,7 @@ public class Simplicity extends Simplici
+ /*todo
+ * -- have default.xml that is loaded if there is none in prefs yet
+ * -- all hidden; none hidden;
+- ��� -- accomodate packages with no intro
++ * -- accomodate packages with no intro
+ * -- menu searching should say that item is hidden??? or at least warn some not found because simple interface?
+ * -- manual pages for simplification
+ * -- design several simplifications
+@@ -476,7 +476,7 @@ public class Simplicity extends Simplici
+ }*/
+ else if (checker.compare(this.getClass(), "Saves the current simplification", null, commandName, "saveCurrent")) {
+ MesquiteString result = new MesquiteString("Custom Simplification");
+- if (QueryDialogs.queryString(containerOfModule(), "Simplification Name", "Name of �Simplification:", result)){
++ if (QueryDialogs.queryString(containerOfModule(), "Simplification Name", "Name of Simplification:", result)){
+ String contents = makeSettingsFile(result.getValue());
+ String path = MesquiteFile.getUniqueModifiedFileName(getInstallationSettingsPath() + "simplification", "xml");
+
+--- a/Source/mesquite/charMatrices/AlterData/AlterData.java
++++ b/Source/mesquite/charMatrices/AlterData/AlterData.java
+@@ -58,18 +58,18 @@ public class AlterData extends DataWindo
+
+ /* possible alterers:
+ recode (as in MacClade)
+- reverse (sequences) �
+- shuffle �
+- random fill �
+- fill (via dialog) �
++ reverse (sequences)
++ shuffle
++ random fill
++ fill (via dialog)
+ search and replace
+
+ DNA only:
+- complement �
++ complement
+
+ continuous only:
+- log transform �
+- scale �
++ log transform
++ scale
+ standardize (mean 0, variance 1)
+ */
+ /*.................................................................................................................*/
+--- a/Source/mesquite/io/lib/InterpretHennig86Base.java
++++ b/Source/mesquite/io/lib/InterpretHennig86Base.java
+@@ -1476,7 +1476,7 @@ class HennigDREAD extends HennigXDREAD {
+ ownerModule.logln("MATCH subcommand could not be found.");
+ return false;
+ }
+- c = parser.nextDarkChar(); //�� set matchchar to this, set matchcharon;
++ c = parser.nextDarkChar(); // set matchchar to this, set matchcharon;
+ return true;
+ }
+ /*.................................................................................................................*/
+--- a/Source/mesquite/charts/Histogram/Histogram.java
++++ b/Source/mesquite/charts/Histogram/Histogram.java
+@@ -2243,7 +2243,7 @@ x axis can represent different things (i
+ double xIntervalWidth = getIntervalWidth();
+
+ markerWidth = xToPixel(xIntervalWidth + xMin, chart) - xToPixel(xMin, chart);
+- if (markerWidth == 0) //���� divide by zero
++ if (markerWidth == 0) // divide by zero
+ markerWidth =1;
+
+ for (int i= 0; i<numIntervalsUsed +1; i++) {
+--- a/Source/mesquite/lib/MesquiteBoolean.java
++++ b/Source/mesquite/lib/MesquiteBoolean.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+
+ /*========================== Mesquite Basic Class Library ==========================*/
+ /*=== the basic classes used by the trunk of Mesquite and available to the modules
+-/* ���������������������������bits������������������������������� */
++/* bits */
+
+ /* ======================================================================== */
+ /** This boolean wrapper class is used to be able to pass integers by reference and have the
+--- a/Source/mesquite/lib/Projects.java
++++ b/Source/mesquite/lib/Projects.java
+@@ -18,7 +18,7 @@ import mesquite.lib.duties.*;
+ import java.util.*;
+
+
+-/* ��������������������������� projects & files ������������������������������� */
++/* projects & files */
+ /* ======================================================================== */
+ /** A class with a vector storing the projects currently active (one instantiation of this belongs to MesquiteTrunk)*/
+ public class Projects implements HNode {
+--- a/Source/mesquite/lib/characters/CellBlock.java
++++ b/Source/mesquite/lib/characters/CellBlock.java
+@@ -539,7 +539,7 @@ public class CellBlock {
+ }
+ else {
+ for (int i=icEnd; i<data.getNumChars(); i++) { // find first gap to the right of this point
+- if (data.inapplicableBlock(i,i, whichTaxa)){ // should be isToolInapplicable�
++ if (data.inapplicableBlock(i,i, whichTaxa)){ // should be isToolInapplicable
+ lastInBlock.setValue(i-1);
+ return;
+ } else if (i>icEnd &&!data.applicableInBothCharacters(i,i-1,whichTaxa)) {
+--- a/Source/mesquite/lib/MiniScrollButton.java
++++ b/Source/mesquite/lib/MiniScrollButton.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /* ======================================================================== */
+--- a/Source/mesquite/lib/MiniSlider.java
++++ b/Source/mesquite/lib/MiniSlider.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /* ======================================================================== */
+--- a/Source/mesquite/basic/ManageFileComments/ManageFileComments.java
++++ b/Source/mesquite/basic/ManageFileComments/ManageFileComments.java
+@@ -265,7 +265,7 @@ class FileCommentsBlock extends NexusBlo
+ public boolean contains(FileElement e) {
+ return false;
+ }
+- public boolean mustBeAfter(NexusBlock block){ //� 13 Dec 01
++ public boolean mustBeAfter(NexusBlock block){ // 13 Dec 01
+ return false;
+ }
+ public String getBlockName(){
+--- a/Source/mesquite/batchArch/ExportMatricesBatch/ExportMatricesBatch.java
++++ b/Source/mesquite/batchArch/ExportMatricesBatch/ExportMatricesBatch.java
+@@ -346,11 +346,11 @@ public class ExportMatricesBatch extends
+ if (tempDataFile !=null)
+ tempDataFile.close();
+ if (progIndicator!=null)//&& outputBuffer != null)
+- progIndicator.setText("Saving batch files");//���
++ progIndicator.setText("Saving batch files");//
+ template.composeAccessoryFilesEnd(baseName, directoryPath + MesquiteFile.fileSeparator);
+
+ if (progIndicator!=null)
+- progIndicator.goAway();//���
++ progIndicator.goAway();//
+ getProject().decrementProjectWindowSuppression();
+ return null;
+ }
+--- a/Source/mesquite/batchArch/lib/TemplateRecord.java
++++ b/Source/mesquite/batchArch/lib/TemplateRecord.java
+@@ -410,7 +410,7 @@ public class TemplateRecord implements
+ ListableVector v = snippetsNeeded();
+ outputBuffer = new StringBuffer[numFiles];
+ for (int i=0; i<numFiles; i++) {
+- outputBuffer[i] = new StringBuffer(numReplicates*(200));//���
++ outputBuffer[i] = new StringBuffer(numReplicates*(200));//
+ if (!StringUtil.blank(startText[i]))
+ outputBuffer[i].append(replaceUniversalCode(startText[i].toString(), baseName,v));
+ }
+@@ -421,7 +421,7 @@ public class TemplateRecord implements
+ return;
+ ListableVector v = snippetsNeeded();
+ for (int i=0; i<numFiles; i++) {
+- if (outputBuffer[i] !=null){//���
++ if (outputBuffer[i] !=null){//
+ if (!StringUtil.blank(textForEachFile[i])){
+ String s = StringUtil.replace(textForEachFile[i].toString(),"<number>",""+iMatrix);
+ if (matrixName != null)
+@@ -440,7 +440,7 @@ public class TemplateRecord implements
+ return;
+ ListableVector v = snippetsNeeded();
+ for (int i=0; i<numFiles; i++) {
+- if (outputBuffer[i] != null) {//���
++ if (outputBuffer[i] != null) {//
+ if (!StringUtil.blank(endText[i])){
+ String s = replaceUniversalCode(endText[i].toString(), baseName,v);
+ if (outputBuffer[i].length()>0 && !StringUtil.blank(s))
+--- a/Source/mesquite/categ/lib/CategoricalData.java
++++ b/Source/mesquite/categ/lib/CategoricalData.java
+@@ -2115,12 +2115,12 @@ public class CategoricalData extends Cha
+ }
+
+ /*.......................................... CategoricalData ..................................................*/
+- /** appends to buffer string describing the state(s) of character ic in taxon it. �*/
++ /** appends to buffer string describing the state(s) of character ic in taxon it. */
+ public void statesIntoStringBufferCore(int ic, long s, StringBuffer sb, boolean forDisplay){
+ statesIntoStringBufferCore(ic,s,sb,forDisplay, true, true);
+ }
+ /*.......................................... CategoricalData ..................................................*/
+- /** appends to buffer string describing the state(s) of character ic in taxon it. �*/
++ /** appends to buffer string describing the state(s) of character ic in taxon it. */
+ public void statesIntoStringBufferCore(int ic, long s, StringBuffer sb, boolean forDisplay, boolean includeInapplicable, boolean includeUnassigned){
+ if (s==CategoricalState.inapplicable) {
+ if (includeInapplicable)
+@@ -2153,7 +2153,7 @@ public class CategoricalData extends Cha
+ }
+ }
+ /*.......................................... CategoricalData ..................................................*/
+- /** appends to buffer string describing the state(s) of character ic in taxon it.�*/
++ /** appends to buffer string describing the state(s) of character ic in taxon it. */
+ public void statesIntoStringBuffer(int ic, int it, StringBuffer sb, boolean forDisplay, boolean includeInapplicable, boolean includeUnassigned){
+ if (notInStorage(ic, it)) //illegal check
+ return;
+@@ -2161,12 +2161,12 @@ public class CategoricalData extends Cha
+ statesIntoStringBufferCore(ic,s,sb, forDisplay, includeInapplicable, includeUnassigned);
+ }
+ /*.......................................... CategoricalData ..................................................*/
+- /** appends to buffer string describing the state(s) of character ic in taxon it.�*/
++ /** appends to buffer string describing the state(s) of character ic in taxon it. */
+ public void statesIntoStringBuffer(int ic, int it, StringBuffer sb, boolean forDisplay){
+ statesIntoStringBuffer(ic,it,sb, forDisplay, true, true);
+ }
+ /*.......................................... CategoricalData ..................................................*/
+- /** appends to buffer string describing the state(s) of character ic in taxon it.�*/
++ /** appends to buffer string describing the state(s) of character ic in taxon it. */
+ public void statesIntoStringBuffer(int ic, int it, StringBuffer sb, String separatorForMultistate, String bracketForMultistateStart, String bracketForMultistateEnd){
+ if (notInStorage(ic, it)) //illegal check
+ return;
+@@ -2196,7 +2196,7 @@ public class CategoricalData extends Cha
+ }
+ }
+ /*.......................................... CategoricalData ..................................................*/
+- /** appends to buffer string describing the state(s) of character ic in taxon it. �*/
++ /** appends to buffer string describing the state(s) of character ic in taxon it. */
+ public void statesIntoNEXUSStringBuffer(int ic, int it, StringBuffer sb){
+ if (notInStorage(ic, it)) //illegal check
+ return;
+@@ -2246,7 +2246,7 @@ public class CategoricalData extends Cha
+ CategoricalState tempState = (CategoricalState)makeCharacterState(); //a utility CategoricalState for the fromChar method, which isn't static
+
+ /*.......................................... CategoricalData ..................................................*/
+- /**Set the state at character ic from the string s, beginning at position pos in the string. �*/
++ /**Set the state at character ic from the string s, beginning at position pos in the string. */
+ public long fromString(int ic, Parser parser, boolean fromEditor, MesquiteInteger resultCode, MesquiteString result){
+ if (ic>=numChars || ic < 0) { //does not allow request for state for character other than those in matrix
+ if (resultCode!=null)
+@@ -2393,7 +2393,7 @@ public class CategoricalData extends Cha
+ return 0L;
+ }
+ /*.......................................... CategoricalData ..................................................*/
+- /**Set the state at character ic from the string s, beginning at position pos in the string. �*/
++ /**Set the state at character ic from the string s, beginning at position pos in the string. */
+ public long fromStringQuickNexusReading(int ic, Parser parser, MesquiteInteger resultCode){
+ long stateSet = 0;
+ int multi = 0;
+@@ -2465,7 +2465,7 @@ public class CategoricalData extends Cha
+ return stateSet;
+ }
+ /*.......................................... CategoricalData ..................................................*/
+- /** Given a character, what state set is implied. Looks up character among current symbols. �*/
++ /** Given a character, what state set is implied. Looks up character among current symbols. */
+ public long fromChar(char state){
+ if (state == getInapplicableSymbol())
+ return CategoricalState.inapplicable;
+--- a/Source/mesquite/categ/lib/CategoricalState.java
++++ b/Source/mesquite/categ/lib/CategoricalState.java
+@@ -771,7 +771,7 @@ public class CategoricalState extends Ch
+ }
+ }
+ /*..........................................CategoricalState.....................................*/
+- /** sets its value to the value given by the String passed to it starting at position pos �*
++ /** sets its value to the value given by the String passed to it starting at position pos *
+ public void setValue(String s, MesquiteInteger pos){
+ if (s==null){
+ set = unassigned;
+@@ -811,7 +811,7 @@ public class CategoricalState extends Ch
+ setValue(stateSet);
+ }
+ /*..........................................CategoricalState.....................................*/
+- /* Sets the value of this CharacterState according to the string, assuming the parent data is as given �*/
++ /* Sets the value of this CharacterState according to the string, assuming the parent data is as given */
+ public void setValue(String s, CharacterData parentData) {
+ if (s==null){
+ set = unassigned;
+@@ -857,7 +857,7 @@ public class CategoricalState extends Ch
+ }
+ /*..........................................CategoricalState.....................................*/
+ /**return the state set containing the state represented by the character (e.g., '0' to {0});
+- Used default symbols since no CharacterData is specified �*/
++ Used default symbols since no CharacterData is specified */
+ public long fromChar(char c) { //this doesn't work with symbols!
+ if (c == '?')
+ return unassigned;
+@@ -871,7 +871,7 @@ public class CategoricalState extends Ch
+ }
+ }
+ /*..........................................CategoricalState.....................................*/
+- /*find which state this character refers to, comparing against default symbols �*/
++ /*find which state this character refers to, comparing against default symbols */
+ public int whichState(char c){
+ for (int i=0; i<CategoricalData.defaultSymbols.length; i++){
+ if (CategoricalData.defaultSymbols[i] == c)
+@@ -900,7 +900,7 @@ public class CategoricalState extends Ch
+ return toString(s, data, ic, useBraces, false);
+ }
+ /*..........................................CategoricalState.....................................*/
+- /** converts passed long (treated as CategoricalState) to string. Uses character state names if available. �*/
++ /** converts passed long (treated as CategoricalState) to string. Uses character state names if available. */
+ public static String toString(long s, CategoricalData data, int ic, boolean useBraces, boolean useSymbols) {
+ if (s == impossible)
+ return "impossible";
+@@ -948,7 +948,7 @@ public class CategoricalState extends Ch
+ return temp;
+ }
+ /*..........................................CategoricalState.....................................*/
+- /** Returns string as would be displayed to user (not necessarily internal shorthand). �*/
++ /** Returns string as would be displayed to user (not necessarily internal shorthand). */
+ public String toDisplayString(){
+ if (isInapplicable(set))
+ return "" + CharacterData.defaultInapplicableChar;
+@@ -1017,7 +1017,7 @@ public class CategoricalState extends Ch
+ return temp;
+ }
+ /*..........................................CategoricalState.....................................*/
+- /** converts passed long (treated as CategoricalState) to string. Uses default symbols for states. Includes High Bits. Used for development/debugging. �*/
++ /** converts passed long (treated as CategoricalState) to string. Uses default symbols for states. Includes High Bits. Used for development/debugging. */
+ public static String toSimpleStringHB(long s) {
+ if (isInapplicable(s))
+ return "" + CharacterData.defaultInapplicableChar;
+--- a/Source/mesquite/categ/lib/DNAData.java
++++ b/Source/mesquite/categ/lib/DNAData.java
+@@ -1392,7 +1392,7 @@ public class DNAData extends MolecularDa
+ }
+
+ /* .......................................... DNAData .................................................. */
+- /* Appends to buffer state symbol for state e � */
++ /* Appends to buffer state symbol for state e */
+ protected void appendStateSymbol(int e, boolean lowerCase, StringBuffer sb) {
+ if (lowerCase) {
+ if (e == 0)
+@@ -1425,7 +1425,7 @@ public class DNAData extends MolecularDa
+ }
+
+ /* .......................................... DNAData .................................................. */
+- /* Fills buffer with string version of state in char ic and taxon it � */
++ /* Fills buffer with string version of state in char ic and taxon it */
+ public void statesIntoNEXUSStringBuffer(int ic, int it, StringBuffer sb) {
+ boolean first = true;
+ long s = getStateRaw(ic, it);
+@@ -1505,7 +1505,7 @@ public class DNAData extends MolecularDa
+ }
+ }
+ /* .......................................... DNAData .................................................. */
+- /* Returns state set from single state symbol � */
++ /* Returns state set from single state symbol */
+ public long fromChar(char state) {
+ if (state == getInapplicableSymbol())
+ return CategoricalState.inapplicable;
+--- a/Source/mesquite/categ/lib/DNAState.java
++++ b/Source/mesquite/categ/lib/DNAState.java
+@@ -65,7 +65,7 @@ public class DNAState extends MolecularS
+ return new DNACharacterHistory(taxa, numNodes);
+ }
+
+- /** Returns string as would be displayed to user (not necessarily internal shorthand). �*/
++ /** Returns string as would be displayed to user (not necessarily internal shorthand). */
+ public String toDisplayString(){
+ if (isInapplicable(set))
+ return "" + CharacterData.defaultInapplicableChar;
+@@ -138,7 +138,7 @@ public class DNAState extends MolecularS
+ return setLowerCase(s1, false) == setLowerCase(s2, false) ;
+ }
+ /*..........................................DNAState.....................................*/
+- /** converts passed int (treated as DNAState) to string. Uses character state names if available. �*/
++ /** converts passed int (treated as DNAState) to string. Uses character state names if available. */
+ public static String toString(int e, boolean isLowerCase) {
+ if (isLowerCase){
+ if (e==0)
+@@ -166,7 +166,7 @@ public class DNAState extends MolecularS
+ }
+ }
+ /*..........................................DNAState.....................................*/
+- /** converts passed int (treated as DNAState) to string. Uses character state names if available. �*/
++ /** converts passed int (treated as DNAState) to string. Uses character state names if available. */
+ public static String toString(int e) {
+ if (e==0)
+ return "A";
+@@ -180,7 +180,7 @@ public class DNAState extends MolecularS
+ return Integer.toString(e);
+ }
+ /*..........................................DNAState.....................................*/
+- /** converts passed int (treated as DNAState) to string. Uses character state names if available. �*/
++ /** converts passed int (treated as DNAState) to string. Uses character state names if available. */
+ public static char toChar(int e, CharacterData data, boolean lowerCase) {
+ if (lowerCase){
+ if (e==0)
+@@ -249,7 +249,7 @@ public class DNAState extends MolecularS
+ return toString(s, data, ic, useBraces, false);
+ }
+ /*..........................................DNAState.....................................*/
+- /** converts passed long (treated as DNAState) to string. �*/
++ /** converts passed long (treated as DNAState) to string. */
+ public static String toString(long s, CategoricalData data, int ic, boolean useBraces, boolean useSymbols) {
+ if (s == impossible)
+ return "impossible";
+@@ -361,12 +361,12 @@ public class DNAState extends MolecularS
+ return isElement(s, 1) || isElement (s, 3);
+ }
+ /*..........................................DNAState.....................................*/
+- /**return the state set containing the state represented by the character (e.g., '0' to {0}) �*/
++ /**return the state set containing the state represented by the character (e.g., '0' to {0}) */
+ public long fromChar(char c) {
+ return fromCharStatic(c);
+ }
+ /*..........................................DNAState.....................................*/
+- /**return the state set containing the state represented by the character (e.g., '0' to {0}) �*/
++ /**return the state set containing the state represented by the character (e.g., '0' to {0}) */
+ public static long fromCharStatic(char c) {
+ if (c == '?')
+ return unassigned;
+@@ -416,7 +416,7 @@ public class DNAState extends MolecularS
+ return CategoricalState.impossible;
+ }
+ /*..........................................DNAState.....................................*/
+- /**return the state set containing the state represented by the character (e.g., '0' to {0}) �*/
++ /**return the state set containing the state represented by the character (e.g., '0' to {0}) */
+ public static char toCharStatic(long c) {
+ if (c == unassigned)
+ return '?';
+--- a/Source/mesquite/categ/lib/ProteinData.java
++++ b/Source/mesquite/categ/lib/ProteinData.java
+@@ -384,7 +384,7 @@ public class ProteinData extends Molecul
+ }
+ int ecount = 0;
+ /*.......................................... ProteinData ..................................................*/
+- /* Returns state set from single state symbol �*/
++ /* Returns state set from single state symbol */
+ public long fromChar(char state){
+ if (state == getInapplicableSymbol())
+ return CategoricalState.inapplicable;
+--- a/Source/mesquite/categ/lib/ProteinState.java
++++ b/Source/mesquite/categ/lib/ProteinState.java
+@@ -79,7 +79,7 @@ public class ProteinState extends Molecu
+ }
+ /*..........................................ProteinState.....................................*/
+
+- /** Returns string as would be displayed to user (not necessarily internal shorthand). �*/
++ /** Returns string as would be displayed to user (not necessarily internal shorthand). */
+ public String toDisplayString(){
+ if (isInapplicable(set))
+ return "" + CharacterData.defaultInapplicableChar;
+@@ -163,12 +163,12 @@ public class ProteinState extends Molecu
+ return temp;
+ }
+ /*..........................................ProteinState.....................................*/
+- /**return the state set containing the state represented by the character (e.g., '0' to {0}) �*/
++ /**return the state set containing the state represented by the character (e.g., '0' to {0}) */
+ public long fromChar(char c) {
+ return fromCharStatic(c);
+ }
+ /*..........................................ProteinState.....................................*/
+- /**return the state set containing the state represented by the character (e.g., '0' to {0}) �*/
++ /**return the state set containing the state represented by the character (e.g., '0' to {0}) */
+ public static long fromCharStatic(char c) {
+ if (c == '?')
+ return unassigned;
+--- a/Source/mesquite/categ/lib/RNAData.java
++++ b/Source/mesquite/categ/lib/RNAData.java
+@@ -59,7 +59,7 @@ public class RNAData extends DNAData {
+ return Integer.toString(state);
+ }
+ /*.......................................... RNAData ..................................................*/
+- /* Appends to buffer state symbol for state e �*/
++ /* Appends to buffer state symbol for state e */
+ protected void appendStateSymbol(int e, boolean lowerCase, StringBuffer sb){
+ if (lowerCase){
+ if (e==0)
+@@ -83,7 +83,7 @@ public class RNAData extends DNAData {
+ }
+ }
+ /*.......................................... RNAData ..................................................*/
+- /* Returns state set from single state symbol �*/
++ /* Returns state set from single state symbol */
+ public long fromChar(char state){
+ if (state == getInapplicableSymbol())
+ return CategoricalState.inapplicable;
+--- a/Source/mesquite/categ/lib/RNAState.java
++++ b/Source/mesquite/categ/lib/RNAState.java
+@@ -68,7 +68,7 @@ public class RNAState extends DNAState{
+ return RNAData.getIUPACSymbol(s);
+ }
+ /*..........................................RNAState.....................................*/
+- /** converts passed int (treated as RNAState) to string. Uses character state names if available. �*/
++ /** converts passed int (treated as RNAState) to string. Uses character state names if available. */
+ public static String toString(int e) {
+ if (e==0)
+ return "A";
+@@ -82,7 +82,7 @@ public class RNAState extends DNAState{
+ return Integer.toString(e);
+ }
+ /*..........................................RNAState.....................................*/
+- /** Returns string as would be displayed to user (not necessarily internal shorthand). Repeated from DNAState so it uses RNAState's toString(e) �*/
++ /** Returns string as would be displayed to user (not necessarily internal shorthand). Repeated from DNAState so it uses RNAState's toString(e) */
+ public String toDisplayString(){
+ if (isInapplicable(set))
+ return "" + CharacterData.defaultInapplicableChar;
+@@ -124,7 +124,7 @@ public class RNAState extends DNAState{
+ return toString(s, data, ic, useBraces, false);
+ }
+ /*..........................................RNAState.....................................*/
+- /** converts passed long (treated as RNAState) to string. Repeated from DNAState so that it uses RNAState's toChar. �*/
++ /** converts passed long (treated as RNAState) to string. Repeated from DNAState so that it uses RNAState's toChar. */
+ public static String toString(long s, CategoricalData data, int ic, boolean useBraces, boolean useSymbols) {
+ if (s == impossible)
+ return "impossible";
+@@ -167,7 +167,7 @@ public class RNAState extends DNAState{
+ return temp;
+ }
+ /*..........................................RNAState.....................................*/
+- /** converts passed int (treated as RNAState) to string. Uses character state names if available. �*/
++ /** converts passed int (treated as RNAState) to string. Uses character state names if available. */
+ public static char toChar(int e, CharacterData data, boolean lowerCase) {
+ if (lowerCase){
+ if (e==0)
+--- a/Source/mesquite/categ/ManageCategoricalChars/ManageCategoricalChars.java
++++ b/Source/mesquite/categ/ManageCategoricalChars/ManageCategoricalChars.java
+@@ -371,7 +371,7 @@ public class ManageCategoricalChars exte
+ file.write(endLine);
+ }
+ //if (data.getTaxa().getName()!=null && getProject().getNumberTaxas(cB.getFile())>1){ //before 13 Dec 01 had been this
+- if (( !file.useSimplifiedNexus && !file.useConservativeNexus) && data.getTaxa().getName()!=null && getProject().getNumberTaxas()>1){ //��� should have an isUntitled method??
++ if (( !file.useSimplifiedNexus && !file.useConservativeNexus) && data.getTaxa().getName()!=null && getProject().getNumberTaxas()>1){ // should have an isUntitled method??
+ file.write("\tLINK TAXA = ");
+ file.write(StringUtil.tokenize(data.getTaxa().getName()));
+ file.write(endLine);
+--- a/Source/mesquite/categ/ManageDNARNAChars/ManageDNARNAChars.java
++++ b/Source/mesquite/categ/ManageDNARNAChars/ManageDNARNAChars.java
+@@ -263,7 +263,7 @@ public class ManageDNARNAChars extends C
+ blocks.append(endLine);
+ }
+ //if (data.getTaxa().getName()!=null && getProject().getNumberTaxas(cB.getFile())>1){ //before 13 Dec 01 had been this
+- if ((file==null || !file.useSimplifiedNexus) && data.getTaxa().getName()!=null && getProject().getNumberTaxas()>1){ //��� should have an isUntitled method??
++ if ((file==null || !file.useSimplifiedNexus) && data.getTaxa().getName()!=null && getProject().getNumberTaxas()>1){ // should have an isUntitled method??
+ blocks.append("\tLINK TAXA = ");
+ blocks.append(StringUtil.tokenize(data.getTaxa().getName()));
+ blocks.append(endLine);
+--- a/Source/mesquite/categ/StateNamesEditor/StateNamesEditor.java
++++ b/Source/mesquite/categ/StateNamesEditor/StateNamesEditor.java
+@@ -1033,7 +1033,7 @@ class StateNamesTable extends MesquiteTa
+ super.selectColumns(first, last);
+ }
+ /*.................................................................................................................*/
+- public void copyIt(StringBuffer s, boolean literal){//���may change on transpose
++ public void copyIt(StringBuffer s, boolean literal){// may change on transpose
+ if (s==null)
+ return;
+ int count = 0;
+--- a/Source/mesquite/diverse/BiSSELikelihoodCalculator/BiSSELikelihoodCalculator.java
++++ b/Source/mesquite/diverse/BiSSELikelihoodCalculator/BiSSELikelihoodCalculator.java
+@@ -60,7 +60,7 @@ public class BiSSELikelihoodCalculator e
+ public static final int ROOT_IGNOREPRIOR = 0; // likelihoodignore's model's prior
+ public static final int ROOT_USEPRIOR = 1; // calculates ancestral states imposing model's prior
+ public boolean showRootModeChoices = true;
+- //TODO: allow user choice ������������������������
++ //TODO: allow user choice
+ int rootMode = ROOT_USEPRIOR; //what if anything is done with prior probabilities of states at subroot?
+ StringArray rootModes;
+ MesquiteString rootModeName;
+--- a/Source/mesquite/diverse/DivCategCharMLCalculator/DivCategCharMLCalculator.java
++++ b/Source/mesquite/diverse/DivCategCharMLCalculator/DivCategCharMLCalculator.java
+@@ -59,7 +59,7 @@ public class DivCategCharMLCalculator ex
+ public static final int ROOT_IGNOREPRIOR = 0; // likelihoodignore's model's prior
+ public static final int ROOT_USEPRIOR = 1; // calculates ancestral states imposing model's prior
+ public boolean showRootModeChoices = true;
+- //TODO: allow user choice ������������������������
++ //TODO: allow user choice
+ int rootMode = ROOT_USEPRIOR; //what if anything is done with prior probabilities of states at subroot?
+ StringArray rootModes;
+ MesquiteString rootModeName;
+--- a/Source/mesquite/lib/Arguments.java
++++ b/Source/mesquite/lib/Arguments.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import java.util.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls */
+
+ public class Arguments {
+--- a/Source/mesquite/lib/Bits.java
++++ b/Source/mesquite/lib/Bits.java
+@@ -902,7 +902,7 @@ public class Bits implements Listable{
+ }
+
+ /*..........................................Bits.....................................*/
+- /** converts passed int to string, as its bits representation. Used for development/debugging. �*/
++ /** converts passed int to string, as its bits representation. Used for development/debugging. */
+ public static String toString(byte s) {
+ String temp="";
+ for (int e=7; e>=0; e--) {
+@@ -914,7 +914,7 @@ public class Bits implements Listable{
+ return temp;
+ }
+ /*..........................................Bits.....................................*/
+- /** converts passed int to string, as its bits representation. Used for development/debugging. �*/
++ /** converts passed int to string, as its bits representation. Used for development/debugging. */
+ public static String toString(short s) {
+ String temp="";
+ for (int e=15; e>=0; e--) {
+@@ -926,7 +926,7 @@ public class Bits implements Listable{
+ return temp;
+ }
+ /*..........................................Bits.....................................*/
+- /** converts passed int to string, as its bits representation. Used for development/debugging. �*/
++ /** converts passed int to string, as its bits representation. Used for development/debugging. */
+ public static String toString(int s) {
+ String temp="";
+ for (int e=SIZECHUNKMINUS1; e>=0; e--) {
+@@ -938,7 +938,7 @@ public class Bits implements Listable{
+ return temp;
+ }
+ /*..........................................Bits.....................................*/
+- /** converts passed long to string, as its bits representation. Used for development/debugging. �*/
++ /** converts passed long to string, as its bits representation. Used for development/debugging. */
+ public static String toString(long s) {
+ String temp="";
+ for (int e=63; e>=0; e--) {
+--- a/Source/mesquite/lib/ChartTool.java
++++ b/Source/mesquite/lib/ChartTool.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ /** This subclass of MesquiteTool is used in charts.
+--- a/Source/mesquite/lib/Commandable.java
++++ b/Source/mesquite/lib/Commandable.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /* ======================================================================== */
+--- a/Source/mesquite/lib/CommandableOwner.java
++++ b/Source/mesquite/lib/CommandableOwner.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /* ======================================================================== */
+--- a/Source/mesquite/lib/CommandChecker.java
++++ b/Source/mesquite/lib/CommandChecker.java
+@@ -18,7 +18,7 @@ import java.util.*;
+ import java.io.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /*
+ * includes commands, buttons, miniscrolls
+ * /* ========================================================================
+@@ -168,7 +168,7 @@ public class CommandChecker {
+ checker.accumulateOnlyFrom(c.getClass());
+
+
+- c.doCommand(null, null, checker);// �
++ c.doCommand(null, null, checker);//
+ if (c instanceof MesquiteModule) {
+ MesquiteModule mb = (MesquiteModule) c;
+ MesquiteMenuItemSpec.checkerMMI = checker;
+@@ -248,7 +248,7 @@ public class CommandChecker {
+ checker.setHTMLMode(useHTMLmode);
+ checker.includeParameters = includeParameters;
+ command.getOwner().doCommand(command.getName(), null,
+- checker);// �
++ checker);//
+ Vector exp = checker.getAccumulatedExplanations();
+ if (exp == null || exp.size() == 0)
+ return null;
+@@ -471,7 +471,7 @@ public class CommandChecker {
+ checker.addString("<li>"
+ + MesquiteModule.getShortClassName(representing)
+ + "<ul>");
+- instance.doCommand(null, null,checker);// �
++ instance.doCommand(null, null,checker);//
+ checker.addString("</ul>");
+ } catch (Exception e) {
+ if (c != null)
+--- a/Source/mesquite/lib/CommandRecord.java
++++ b/Source/mesquite/lib/CommandRecord.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.util.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls */
+
+ public class CommandRecord extends Listened {
+--- a/Source/mesquite/lib/duties/FileInterpreter.java
++++ b/Source/mesquite/lib/duties/FileInterpreter.java
+@@ -219,7 +219,7 @@ public abstract class FileInterpreter ex
+ progIndicator.goAway();
+ if (file!=null)
+ file.closeReading();
+- if (abort){ //���
++ if (abort){ //
+ if (file!=null)
+ file.close();
+ resetAllMenuBars();
+--- a/Source/mesquite/lib/EnterButton.java
++++ b/Source/mesquite/lib/EnterButton.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ /** enter button for MiniScroll & MiniTextEditor*/
+--- a/Source/mesquite/lib/Journal.java
++++ b/Source/mesquite/lib/Journal.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /**
+--- a/Source/mesquite/lib/ListableVector.java
++++ b/Source/mesquite/lib/ListableVector.java
+@@ -418,7 +418,7 @@ public class ListableVector extends File
+ }
+ /*.................................................................................................................*/
+ /** notifies listeners that element has been disposed*/
+- public void notifyListenersOfDisposed(Object disp){ //{ ��� need in file element removeal to have all in one (dispose & remove) thjat calls this
++ public void notifyListenersOfDisposed(Object disp){ //{ need in file element removeal to have all in one (dispose & remove) thjat calls this
+ if (listeners!=null) {
+ Enumeration e = listeners.elements();
+ while (e.hasMoreElements()) {
+--- a/Source/mesquite/lib/MenuOwner.java
++++ b/Source/mesquite/lib/MenuOwner.java
+@@ -24,7 +24,7 @@ import mesquite.distance.lib.TaxaDistFro
+ import mesquite.lib.duties.*;
+ import mesquite.lib.simplicity.InterfaceManager;
+
+-/* ��������������������������� Menus ������������������������������� */
++/* Menus */
+
+ /* ======================================================================== */
+ /**Menus in Mesquite are composed by the code in the MenuOwner class, which is designed to be a superclass only for
+@@ -452,27 +452,27 @@ public abstract class MenuOwner implemen
+ public void defineMenus(boolean accumulating){
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a dividing line to the module's containing menu. */
+ public final MesquiteMenuItemSpec addMenuLine(){
+ return addMenuItem("-",null);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a menu item to the module's containing menu. When selected, the given command will be executed. */
+ public final MesquiteMenuItemSpec addMenuItem(String itemName, MesquiteCommand command){
+ MesquiteMenuItemSpec mmis = MesquiteMenuItemSpec.getMMISpec(null, itemName, module, command);
+ return (mmis);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a menu item to the given menu. When selected, the given command will be executed. */
+ public final MesquiteMenuItemSpec addMenuItem(MesquiteMenuSpec whichMenu, String itemName, MesquiteCommand command){
+ MesquiteMenuItemSpec mmis =MesquiteMenuItemSpec.getMMISpec(whichMenu, itemName, module, command);
+ return (mmis);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a menu item to the given menu.. */
+ public final MesquiteMenuItemSpec addMenuItem(MesquiteMenuSpec whichMenu, MesquiteMenuItemSpec item){
+ item.setInMenu(whichMenu);
+@@ -491,7 +491,7 @@ public abstract class MenuOwner implemen
+ return (mmis);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a submenu of the given name. This submenu will not have a command associated with it. Instead, menu items with their
+ own independent commands can be added to it using addItemToSubmenu. */
+ public final MesquiteSubmenuSpec addSubmenu(MesquiteMenuSpec whichMenu, String submenuName){
+@@ -499,7 +499,7 @@ public abstract class MenuOwner implemen
+ return (mmis);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a submenu of the given name. What to fill the submenu with SHOULD BE INDICATED BY A SUBSEQUENT CALL TO MesquiteSubmenuSpec.setList.
+ Then, submenu created will be automatically
+ formulated, and additional items should *not* be added using addItemToSubmenu. The submenu itself has a command
+@@ -511,7 +511,7 @@ public abstract class MenuOwner implemen
+ return (mmis);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a submenu of the given name with all the modules belonging to the given dutyClass. The submenu created will be automatically
+ formulated, and additional items should *not* be added using addItemToSubmenu. The submenu itself has a command
+ stored with it, and upon receiving a selection even it will append the <strong>item name</strong> selected as argument.*/
+@@ -545,13 +545,13 @@ public abstract class MenuOwner implemen
+ return (mmis);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a dividing line to the given submenu of the given menu. */
+ public final MesquiteMenuItemSpec addLineToSubmenu(MesquiteMenuSpec whichMenu, MesquiteSubmenuSpec submenu){
+ return addItemToSubmenu(whichMenu, submenu, "-", null);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a menu item to the given submenu of the given menu. When selected, the given command will be executed. */
+ public final MesquiteMenuItemSpec addItemToSubmenu(MesquiteMenuSpec whichMenu, MesquiteSubmenuSpec submenu, String itemName, MesquiteCommand command){
+ MesquiteMenuItemSpec mmis =MesquiteMenuItemSpec.getMMISpec(whichMenu, itemName, module, command);
+@@ -560,7 +560,7 @@ public abstract class MenuOwner implemen
+ return (mmis);
+ }
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a menu item to the given submenu of the given menu. When selected, the given command will be executed. */
+ public final MesquiteCMenuItemSpec addCheckMenuItemToSubmenu(MesquiteMenuSpec whichMenu, MesquiteSubmenuSpec submenu, String itemName, MesquiteCommand command, MesquiteBoolean b){
+ MesquiteCMenuItemSpec mmis =MesquiteCMenuItemSpec.getMCMISpec(whichMenu, itemName, module, command, b);
+@@ -570,7 +570,7 @@ public abstract class MenuOwner implemen
+ }
+
+ /*.................................................................................................................*/
+- /* ����� */
++ /* */
+ /** Adds a menu item to the given submenu of the given menu. When selected, the given command will be executed. */
+ public final MesquiteMenuItemSpec addItemToSubmenu(MesquiteMenuSpec whichMenu, MesquiteSubmenuSpec submenu, MesquiteMenuItemSpec item){
+ checkMISVector();
+@@ -1039,8 +1039,8 @@ public abstract class MenuOwner implemen
+ wMenu.add(macrosSubmenu);
+ }
+ MesquiteSubmenu scriptingSubmenu=MesquiteSubmenu.getSubmenu("Scripting", wMenu, module); //make submenu
+- scriptingSubmenu.add(whichWindow.snapshotMenuItem); //��� scripting
+- scriptingSubmenu.add(whichWindow.sendScriptMenuItem); //��� scripting
++ scriptingSubmenu.add(whichWindow.snapshotMenuItem); // scripting
++ scriptingSubmenu.add(whichWindow.sendScriptMenuItem); // scripting
+ wMenu.add(scriptingSubmenu);
+ wMenu.add("-");
+ whichWindow.setPopTileMenuItemNames();
+@@ -1084,8 +1084,8 @@ public abstract class MenuOwner implemen
+ wMenu.add(macrosSubmenu);
+ }
+ MesquiteSubmenu scriptingSubmenu=MesquiteSubmenu.getSubmenu("Scripting", wMenu, module); //make submenu
+- scriptingSubmenu.add(whichWindow.snapshotMenuItem); //��� scripting
+- scriptingSubmenu.add(whichWindow.sendScriptMenuItem); //��� scripting
++ scriptingSubmenu.add(whichWindow.snapshotMenuItem); // scripting
++ scriptingSubmenu.add(whichWindow.sendScriptMenuItem); // scripting
+ wMenu.add(scriptingSubmenu);
+ wMenu.add("-");
+ whichWindow.setPopTileMenuItemNames();
+@@ -1137,8 +1137,8 @@ public abstract class MenuOwner implemen
+ wMenu.add(macrosSubmenu);
+ }
+ MesquiteSubmenu scriptingSubmenu=MesquiteSubmenu.getSubmenu("Scripting", wMenu, module); //make submenu
+- scriptingSubmenu.add(whichWindow.snapshotMenuItem); //��� scripting
+- scriptingSubmenu.add(whichWindow.sendScriptMenuItem); //��� scripting
++ scriptingSubmenu.add(whichWindow.snapshotMenuItem); // scripting
++ scriptingSubmenu.add(whichWindow.sendScriptMenuItem); // scripting
+ wMenu.add(scriptingSubmenu);
+ */
+ //wMenu.add("-", insertPoint);
+--- a/Source/mesquite/lib/MesquiteButton.java
++++ b/Source/mesquite/lib/MesquiteButton.java
+@@ -18,7 +18,7 @@ import java.awt.event.*;
+ import mesquite.lib.duties.*;
+ import mesquite.lib.simplicity.InterfaceManager;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ /** A button that responds to a touch by calling its associated command. Has "off" and "on" images associated with it.
+--- a/Source/mesquite/lib/MesquiteCommand.java
++++ b/Source/mesquite/lib/MesquiteCommand.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.util.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /*====================== Mesquite command. ======================*/
+--- a/Source/mesquite/lib/MesquiteCursor.java
++++ b/Source/mesquite/lib/MesquiteCursor.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.awt.event.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls*/
+ /* ======================================================================== */
+ /** A tool (i.e. cursor) that can be active and used on items on the screen.*/
+--- a/Source/mesquite/lib/MesquiteFile.java
++++ b/Source/mesquite/lib/MesquiteFile.java
+@@ -1979,7 +1979,7 @@ public class MesquiteFile extends Listen
+ /** returns the file position of the start of the next block; returns blockName */
+ public String goToNextBlockStart(MesquiteLong startPos) {
+ MesquiteInteger status = new MesquiteInteger(0);
+- StringBuffer command = new StringBuffer(getNextCommand(status, null)); //������������
++ StringBuffer command = new StringBuffer(getNextCommand(status, null)); //
+
+ if (!StringUtil.blank(command)) {
+ if (status.getValue()==0) { //in middle of block; need to continue reading until get to end of block
+--- a/Source/mesquite/lib/MesquiteHTMLWindow.java
++++ b/Source/mesquite/lib/MesquiteHTMLWindow.java
+@@ -37,7 +37,7 @@ public class MesquiteHTMLWindow extends
+ this(module, linkTouchedCommand, assignedTitle, true, showInfoBar);
+ }
+ public MesquiteHTMLWindow(MesquiteModule module, MesquiteCommand linkTouchedCommand, String assignedTitle, boolean showPanel, boolean showInfoBar) {
+- super(module, showInfoBar);// ���
++ super(module, showInfoBar);//
+ this.assignedTitle = assignedTitle;
+ setTitle(assignedTitle);
+ //setBackground(Color.white);
+--- a/Source/mesquite/lib/MesquiteModuleInfo.java
++++ b/Source/mesquite/lib/MesquiteModuleInfo.java
+@@ -101,19 +101,19 @@ public class MesquiteModuleInfo implemen
+ isPrimaryChoice = mb.requestPrimaryChoice();
+ this.hireSubchoice = mb.getHireSubchoice();
+ this.dontHireSubchoice = mb.getDontHireSubchoice();
+- this.name = mb.getName(); //�
+- this.nameForMenuItem = mb.getNameForMenuItem(); //�
+- this.authors =mb.getAuthors();//�
+- this.version =mb.getVersion();//�
++ this.name = mb.getName(); //
++ this.nameForMenuItem = mb.getNameForMenuItem(); //
++ this.authors =mb.getAuthors();//
++ this.version =mb.getVersion();//
+
+ this.versionOfFirstRelease = mb.getVersionOfFirstRelease();
+- this.explanation =mb.getExplanation();//�
++ this.explanation =mb.getExplanation();//
+ this.sCitation = mb.showCitation();
+- this.userChooseable =mb.getUserChooseable();//�
++ this.userChooseable =mb.getUserChooseable();//
+ this.substantive = mb.isSubstantive();
+ this.prerelease = mb.isPrerelease();
+- this.dutyClass =mb.getDutyClass();//�
+- this.dutyName =mb.getDutyName();//�
++ this.dutyClass =mb.getDutyClass();//
++ this.dutyName =mb.getDutyName();//
+ this.defaultForSuper = mb.getDefaultModule();
+ this.keywords = mb.getKeywords();
+ this.versionInt = mb.getVersionInt();
+@@ -132,8 +132,8 @@ public class MesquiteModuleInfo implemen
+ hideable = (( PackageIntroInterface)mb).getHideable();
+ }
+ mb.mesquiteStartup();
+- this.nexusBlockTest = mb.getNexusBlockTest();//�
+- this.nexusCommandTest = mb.getNexusCommandTest();//�
++ this.nexusBlockTest = mb.getNexusBlockTest();//
++ this.nexusCommandTest = mb.getNexusCommandTest();//
+ this.compatibilityTest = mb.getCompatibilityTest();
+ this.searchableAsModule = mb.getSearchableAsModule();
+ try{
+--- a/Source/mesquite/lib/MesquiteModule.java
++++ b/Source/mesquite/lib/MesquiteModule.java
+@@ -1702,7 +1702,7 @@ public abstract class MesquiteModule ext
+ for (int i=0; commandables!=null && i<commandables.length; i++){
+ checker.addString("<ul><li><strong>Commands for " + getShortClassName(commandables[i].getClass())+ "</strong>");
+ checker.accumulateOnlyFrom(commandables[i].getClass());
+- commandables[i].doCommand(null, null, checker);//���
++ commandables[i].doCommand(null, null, checker);//
+ checker.addString("</ul>");
+ }
+ }
+--- a/Source/mesquite/lib/MesquiteProject.java
++++ b/Source/mesquite/lib/MesquiteProject.java
+@@ -1549,7 +1549,7 @@ public class MesquiteProject extends Att
+ return d;
+ }
+ /*.................................................................................................................*/
+- //TODO: ��� have general get number of elements, passing project, or file; counts
++ //TODO: have general get number of elements, passing project, or file; counts
+ /** returns the number of Taxa objects stored in project belonging to a file*/
+ public int getNumberTaxas(MesquiteFile f) {
+ int count = 0;
+@@ -1682,7 +1682,7 @@ public class MesquiteProject extends Att
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+ /** returns number of data sets in file*/
+- public int getNumberCharMatricesVisible() { //���
++ public int getNumberCharMatricesVisible() { //
+ return getNumberCharMatrices(null, null, null, true);
+ }
+ /*......................*/
+@@ -1704,7 +1704,7 @@ public class MesquiteProject extends Att
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+ /** returns number of data sets belonging to given taxa*/
+- public int getNumberCharMatrices(Taxa taxa) { //�����
++ public int getNumberCharMatrices(Taxa taxa) { //
+ return getNumberCharMatrices(null, taxa, null, false);
+ }
+ /*......................*/
+@@ -1714,7 +1714,7 @@ public class MesquiteProject extends Att
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+ /** returns number of data sets belonging to given taxa*/
+- public int getNumberCharMatricesVisible(Taxa taxa) { //�����
++ public int getNumberCharMatricesVisible(Taxa taxa) { //
+ return getNumberCharMatrices(null, taxa, null, true);
+ }
+ /*......................*/
+@@ -1724,7 +1724,7 @@ public class MesquiteProject extends Att
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+ /** returns number of data sets of a given data class (CharacterState subclass is passed)*/
+- public int getNumberCharMatricesVisible(Object dataClass) { //�����
++ public int getNumberCharMatricesVisible(Object dataClass) { //
+ return getNumberCharMatrices(null, null, dataClass, true);
+ }
+ /*......................*/
+@@ -1734,7 +1734,7 @@ public class MesquiteProject extends Att
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+ /** returns number of data sets of a given data class (CharacterState subclass is passed)*/
+- public int getNumberCharMatrices(Object dataClass) { //�����
++ public int getNumberCharMatrices(Object dataClass) { //
+ return getNumberCharMatrices(null, null, dataClass, false);
+ }
+ /*......................*/
+@@ -1744,22 +1744,22 @@ public class MesquiteProject extends Att
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+ /** returns number of data sets of a given data class (CharacterState subclass is passed) belonging to given taxa*/
+- public int getNumberCharMatricesVisible(Taxa taxa, Object dataClass) { //�����
++ public int getNumberCharMatricesVisible(Taxa taxa, Object dataClass) { //
+ return getNumberCharMatrices(null, taxa, dataClass, true);
+ }
+ /*......................*/
+ /** returns the jth data set belonging to given taxa for given CharacterState subclass.*/
+- public mesquite.lib.characters.CharacterData getCharacterMatrixVisible(Taxa taxa, int j, Object dataClass) { //����
++ public mesquite.lib.characters.CharacterData getCharacterMatrixVisible(Taxa taxa, int j, Object dataClass) { //
+ return getCharacterMatrix(null, taxa, dataClass, j, true);
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+ /** returns number of data sets belonging to a given file*/
+- public int getNumberCharMatrices(MesquiteFile f) { //�����
++ public int getNumberCharMatrices(MesquiteFile f) { //
+ return getNumberCharMatrices(f, null, null, false);
+ }
+ /*......................*/
+ /** returns the jth of data sets belonging to a given file*/
+- public mesquite.lib.characters.CharacterData getCharacterMatrix(MesquiteFile f, int j) { //�����
++ public mesquite.lib.characters.CharacterData getCharacterMatrix(MesquiteFile f, int j) { //
+ return getCharacterMatrix(f, null, null, j, false);
+ }
+ /*---------===---------===---------===---------===---------===---------===-------------------*/
+@@ -1806,12 +1806,12 @@ public class MesquiteProject extends Att
+ }
+ /*......................*/
+ /** returns the jth of data sets belonging to a given file*/
+- public mesquite.lib.characters.CharacterData getCharacterMatrixVisible(MesquiteFile f, Taxa taxa, Object dataClass, int j) { //���� not used yet
++ public mesquite.lib.characters.CharacterData getCharacterMatrixVisible(MesquiteFile f, Taxa taxa, Object dataClass, int j) { // not used yet
+ return getCharacterMatrix(f, taxa, dataClass, j, true);
+ }
+ /*......................*/
+ /** returns the jth of data sets belonging to a given file*/
+- private mesquite.lib.characters.CharacterData getCharacterMatrix(MesquiteFile f, Taxa taxa, Object dataClass, int j) { //����
++ private mesquite.lib.characters.CharacterData getCharacterMatrix(MesquiteFile f, Taxa taxa, Object dataClass, int j) { //
+ return getCharacterMatrix(f, taxa, dataClass, j, false);
+ }
+ /*......................*/
+--- a/Source/mesquite/lib/MesquiteScrollbar.java
++++ b/Source/mesquite/lib/MesquiteScrollbar.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.awt.event.*;
+ import mesquite.lib.system.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ /* scrollbar for tree */
+--- a/Source/mesquite/lib/MesquiteSet.java
++++ b/Source/mesquite/lib/MesquiteSet.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+
+ /*========================== Mesquite Basic Class Library ==========================*/
+ /*=== the basic classes used by the trunk of Mesquite and available to the modules
+-/* ���������������������������bits������������������������������� */
++/* bits */
+
+
+ /* ======================================================================== */
+--- a/Source/mesquite/lib/MesquiteTextWindow.java
++++ b/Source/mesquite/lib/MesquiteTextWindow.java
+@@ -31,7 +31,7 @@ public class MesquiteTextWindow extends
+ this(module, assignedTitle, showInfoBar, true, false);
+ }
+ public MesquiteTextWindow(MesquiteModule module, String assignedTitle, boolean showInfoBar, boolean wrap, boolean allowPaste) {
+- super(module, showInfoBar);// ���
++ super(module, showInfoBar);//
+ this.assignedTitle = assignedTitle;
+ //setBackground(Color.white);
+ setWindowSize(400, 450);
+--- a/Source/mesquite/lib/MesquiteTool.java
++++ b/Source/mesquite/lib/MesquiteTool.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.awt.event.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls*/
+ /* ======================================================================== */
+ /** A tool (i.e. cursor) that can be active and used on items on the screen.*/
+--- a/Source/mesquite/lib/MesquiteTree.java
++++ b/Source/mesquite/lib/MesquiteTree.java
+@@ -2753,7 +2753,7 @@ public class MesquiteTree extends Associ
+ if ("(".equals(c)){ //internal node
+ int sprouted = sproutDaughter(node, false);
+ int result = readClade(TreeDescription, sprouted,stringLoc, namer, whitespaceString, punctuationString);
+- if (result == FAILED)//������������������������
++ if (result == FAILED)//
+ return FAILED;
+ c = ParseUtil.getToken(TreeDescription, stringLoc, whitespaceString, punctuationString); //skip comma
+ if (!((",".equals(c))||(")".equals(c)) || (":".equals(c)) || "<".equals(c) || "%".equals(c) || "#".equals(c))){ // name of internal node!!!!
+@@ -2789,7 +2789,7 @@ public class MesquiteTree extends Associ
+ if (result == CONTINUE)
+ sprouted = sproutDaughter(node, false);
+ result = readClade(TreeDescription, sprouted,stringLoc, namer, whitespaceString, punctuationString);
+- if (result == FAILED) //������������������������
++ if (result == FAILED) //
+ return FAILED;
+ c = ParseUtil.getToken(TreeDescription, stringLoc, whitespaceString, punctuationString); //skip parens or next comma
+ if (!((",".equals(c))||(")".equals(c)) || (":".equals(c)) || "<".equals(c)|| "%".equals(c) || "#".equals(c))){ // name of internal node!!!!
+--- a/Source/mesquite/lib/MesquiteTrunk.java
++++ b/Source/mesquite/lib/MesquiteTrunk.java
+@@ -23,7 +23,7 @@ import java.util.*;
+
+
+
+-/* ����������������������������������������������������������������� */
++/* */
+ /* ======================================================================== */
+ /** The superclass of the Mesquite class, which resides within the trunk MesquiteModule, has the "main" for the program
+ Mesquite, and instantiates itself as mesquiteTrunk. MesquiteTrunk is placed in the class library so that all MesquiteModules (modules) can communicate
+--- a/Source/mesquite/lib/MesquiteWindow.java
++++ b/Source/mesquite/lib/MesquiteWindow.java
+@@ -275,7 +275,7 @@ public abstract class MesquiteWindow imp
+
+
+ menuBar = new MesquiteMenuBar(this);
+- //setMenuBar(menuBar); //���
++ //setMenuBar(menuBar); //
+ parentFrame.setWindowLocation(60, 10, false, false); //default window position
+ addKeyListenerToAll(graphics[0], palette, true);
+ outerContents.requestFocusInWindow(); //this may address a MRJ 2.2.3 bug
+--- a/Source/mesquite/lib/MiniControl.java
++++ b/Source/mesquite/lib/MiniControl.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ public interface MiniControl {
+--- a/Source/mesquite/lib/MiniNumberEditor.java
++++ b/Source/mesquite/lib/MiniNumberEditor.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /*=================*/
+ public class MiniNumberEditor extends MiniStringEditor{
+--- a/Source/mesquite/lib/MiniScroll.java
++++ b/Source/mesquite/lib/MiniScroll.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.awt.event.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /* ======================================================================== */
+--- a/Source/mesquite/lib/MiniSliderWithText.java
++++ b/Source/mesquite/lib/MiniSliderWithText.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.awt.event.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /* ======================================================================== */
+--- a/Source/mesquite/lib/MiniStringEditor.java
++++ b/Source/mesquite/lib/MiniStringEditor.java
+@@ -17,7 +17,7 @@ import java.awt.event.*;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /*=================*/
+--- a/Source/mesquite/lib/Parser.java
++++ b/Source/mesquite/lib/Parser.java
+@@ -800,7 +800,7 @@ public class Parser extends StringUtil {
+ token.setLength(0);
+ recordStartOfToken();
+ token.append(quoteChar);
+- /*�*/StringUtil.append(token, getQuotedUnaltered(buffer2));
++ /* */StringUtil.append(token, getQuotedUnaltered(buffer2));
+ token.append(quoteChar);
+ }
+ else if (c == '-' && hyphensArePartOfNumbers) {
+--- a/Source/mesquite/lib/ParseUtil.java
++++ b/Source/mesquite/lib/ParseUtil.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+
+
+-/* ��������������������������� parse util ������������������������������� */
++/* parse util */
+ /* this probably should move to a NEXUS library
+ /* ======================================================================== */
+ /** A set of string parsing methods. Should be renamed StringParser or NEXUSParser.*/
+--- a/Source/mesquite/lib/ProgressPanel.java
++++ b/Source/mesquite/lib/ProgressPanel.java
+@@ -94,7 +94,7 @@ public class ProgressPanel extends Mesqu
+ buttons.add("East", stop = new Button(buttonName));
+ //stop.setBackground(Color.white);
+ stop.setFont(f2);
+- stop.setVisible(true);//����
++ stop.setVisible(true);//
+ stop.requestFocusInWindow();
+ add(buttons);
+ buttons.setLocation(0,buttonTop);
+--- a/Source/mesquite/lib/Puppeteer.java
++++ b/Source/mesquite/lib/Puppeteer.java
+@@ -20,7 +20,7 @@ import mesquite.lib.duties.*;
+ import java.util.*;
+ import java.io.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+
+--- a/Source/mesquite/lib/PuppetThread.java
++++ b/Source/mesquite/lib/PuppetThread.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+
+--- a/Source/mesquite/lib/ScrollTextField.java
++++ b/Source/mesquite/lib/ScrollTextField.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /*===============================================*/
+ /** little text field for MiniScroll*/
+--- a/Source/mesquite/lib/Snapshot.java
++++ b/Source/mesquite/lib/Snapshot.java
+@@ -18,7 +18,7 @@ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+
+ /* ======================================================================== */
+--- a/Source/mesquite/lib/table/MatrixPanel.java
++++ b/Source/mesquite/lib/table/MatrixPanel.java
+@@ -245,7 +245,7 @@ timer6.end();
+ lineY = 0;
+ int oldLineY=lineY;
+
+- int numCells = 0;//���
++ int numCells = 0;//
+
+ Shape clip = g.getClip();
+ for (int r=0; (r<table.numRowsTotal); r++) {
+@@ -364,7 +364,7 @@ timer6.end();
+ int resetWidth = getBounds().width;
+ int resetHeight = getBounds().height;
+
+- int numCells = 0;//���
++ int numCells = 0;//
+
+ Font oldFont = g.getFont();
+ FontMetrics fm = g.getFontMetrics(g.getFont());
+--- a/Source/mesquite/lib/table/MesquiteTable.java
++++ b/Source/mesquite/lib/table/MesquiteTable.java
+@@ -3224,14 +3224,14 @@ public class MesquiteTable extends Mesqu
+ }
+
+ /* ............................................................................................................... */
+- /** ���� */
++ /** */
+ public void redrawColumns(int firstColumn, int lastColumn) {
+ for (int column = firstColumn; column <= lastColumn; column++)
+ redrawColumn(column);
+ }
+
+ /* ............................................................................................................... */
+- /** ���� */
++ /** */
+ public void redrawRows(int firstRow, int lastRow) {
+ System.out.println("redraw rows not working yet");
+ }
+@@ -3263,20 +3263,20 @@ public class MesquiteTable extends Mesqu
+ }
+ /* ............................................................................................................... */
+ /**
+- * ���� HAVE THIS BY COLUMNS; ALSO HAVE COLUMN NAMES AND ROW NAMES JUSTIFYABLE
++ * HAVE THIS BY COLUMNS; ALSO HAVE COLUMN NAMES AND ROW NAMES JUSTIFYABLE
+ */
+ public int getJustification() {
+ return justification;
+ }
+
+ /* ............................................................................................................... */
+- /** ���� */
++ /** */
+ public void setJustification(int justification) {
+ this.justification = justification;
+ }
+
+ /* ............................................................................................................... */
+- /** ���� */
++ /** */
+ public void drawMatrixCellString(Graphics g, FontMetrics fm, int x, int y, int w, int h, int column, int row, String supplied) {
+ if (!StringUtil.blank(supplied)){
+ Shape clip = null;
+@@ -3319,12 +3319,12 @@ public class MesquiteTable extends Mesqu
+ }
+
+ /* ............................................................................................................... */
+- /** ���� */
++ /** */
+ public boolean isAttachedNoteAvailable(int column, int row) {
+ return false;
+ }
+ /* ............................................................................................................... */
+- /** ���� */
++ /** */
+ public boolean useString(int column, int row) {
+ return getMatrixTextForDisplay(column, row) != null;
+ }
+--- a/Source/mesquite/lib/table/TableTool.java
++++ b/Source/mesquite/lib/table/TableTool.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import mesquite.lib.duties.*;
+ import mesquite.lib.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ /** This subclass of MesquiteTool is used in data windows for manipulating data.
+--- a/Source/mesquite/lib/TaxaBlock.java
++++ b/Source/mesquite/lib/TaxaBlock.java
+@@ -22,7 +22,7 @@ public class TaxaBlock extends NexusBloc
+ public TaxaBlock(MesquiteFile f, MesquiteModule mb){
+ super(f, mb);
+ }
+- public boolean mustBeAfter(NexusBlock block){ //� 13 Dec 01
++ public boolean mustBeAfter(NexusBlock block){ // 13 Dec 01
+ if (block==null)
+ return false;
+ return block.getBlockName().equalsIgnoreCase("AUTHORS");
+--- a/Source/mesquite/lib/TaxaDrawing.java
++++ b/Source/mesquite/lib/TaxaDrawing.java
+@@ -18,7 +18,7 @@ import mesquite.lib.duties.*;
+
+
+
+-/* ��������������������������� taxa ������������������������������� */
++/* taxa */
+ /* ======================================================================== */
+ /**This is the base class for the drawing of taxa. It contains the information about
+ the number of nodes, and the x and y positions of the nodes. It should be subclassed by taxa drawing modules,
+--- a/Source/mesquite/lib/TaxaTool.java
++++ b/Source/mesquite/lib/TaxaTool.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ /** This subclass of MesquiteTool is used in Taxon windows for manipulating the taxa, etc. Each tool
+--- a/Source/mesquite/lib/Taxon.java
++++ b/Source/mesquite/lib/Taxon.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.math.*;
+
+
+-/* ��������������������������� taxa ������������������������������� */
++/* taxa */
+ /* ======================================================================== */
+ /** A taxon, including the taxon name, its number, an other information (e.g., notes and pictures attached to it).*/
+ public class Taxon implements Listable, Illustratable, Identifiable {
+--- a/Source/mesquite/lib/TaxonPair.java
++++ b/Source/mesquite/lib/TaxonPair.java
+@@ -17,7 +17,7 @@ import java.awt.*;
+ import java.math.*;
+
+
+-/* ��������������������������� taxon pair ������������������������������� */
++/* taxon pair */
+ /* ======================================================================== */
+ /** A pair of taxa.*/
+ public class TaxonPair implements Listable {
+--- a/Source/mesquite/lib/TranslationTable.java
++++ b/Source/mesquite/lib/TranslationTable.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import java.math.*;
+
+-/* ��������������������������� tree stuff ������������������������������� */
++/* tree stuff */
+ /* ======================================================================== */
+ /** A translation table linking taxa with alternative tokens */
+ public class TranslationTable {
+--- a/Source/mesquite/lib/TreeDrawing.java
++++ b/Source/mesquite/lib/TreeDrawing.java
+@@ -23,7 +23,7 @@ import mesquite.trees.lib.TaxonPolygon;
+
+
+
+-/* ��������������������������� trees ������������������������������� */
++/* trees */
+ /* ======================================================================== */
+ /**This is the base class for the drawing of the tree. It contains the information about
+ the number of nodes, and the x and y positions of the nodes. It should be subclassed by tree drawing modules,
+--- a/Source/mesquite/lib/TreeTool.java
++++ b/Source/mesquite/lib/TreeTool.java
+@@ -16,7 +16,7 @@ package mesquite.lib;
+ import java.awt.*;
+ import mesquite.lib.duties.*;
+
+-/* ��������������������������� commands ������������������������������� */
++/* commands */
+ /* includes commands, buttons, miniscrolls
+ /* ======================================================================== */
+ /** This subclass of MesquiteTool is used in Tree windows for manipulating the tree, etc. Each tool
+--- a/Source/mesquite/meristic/ParsimonyMeristicLinear/ParsimonyMeristicLinear.java
++++ b/Source/mesquite/meristic/ParsimonyMeristicLinear/ParsimonyMeristicLinear.java
+@@ -116,14 +116,14 @@ public class ParsimonyMeristicLinear ext
+ {Uses the trick of taking two most distant state sets, applying binary set operator on them, then}
+ {taking result and combine it with third set using binary set operator again}*/
+ if (minD < minE) {
+- if (minE < minF) //{� minF is greatest}
++ if (minE < minF) //{ minF is greatest}
+ combinefromGreatestMin(minA, maxA, minF, maxF, minD, maxD, minE, maxE);
+- else //{� minE greatest}
++ else //{ minE greatest}
+ combinefromGreatestMin(minA, maxA, minE, maxE, minD, maxD, minF, maxF);
+ }
+- else if (minF > minD) //{� minF greatest}
++ else if (minF > minD) //{ minF greatest}
+ combinefromGreatestMin(minA, maxA, minF, maxF, minD, maxD, minE, maxE);
+- else //{� minD greatest}
++ else //{ minD greatest}
+ combinefromGreatestMin(minA, maxA, minD, maxD, minF, maxF, minE, maxE);
+ }
+
+--- a/Source/mesquite/parsimony/ParsimonyLinear/ParsimonyLinear.java
++++ b/Source/mesquite/parsimony/ParsimonyLinear/ParsimonyLinear.java
+@@ -113,14 +113,14 @@ public class ParsimonyLinear extends Par
+ {Uses the trick of taking two most distant state sets, applying binary set operator on them, then}
+ {taking result and combine it with third set using binary set operator again}*/
+ if (minD < minE) {
+- if (minE < minF) //{� minF is greatest}
++ if (minE < minF) //{ minF is greatest}
+ combinefromGreatestMin(minA, maxA, minF, maxF, minD, maxD, minE, maxE);
+- else //{� minE greatest}
++ else //{ minE greatest}
+ combinefromGreatestMin(minA, maxA, minE, maxE, minD, maxD, minF, maxF);
+ }
+- else if (minF > minD) //{� minF greatest}
++ else if (minF > minD) //{ minF greatest}
+ combinefromGreatestMin(minA, maxA, minF, maxF, minD, maxD, minE, maxE);
+- else //{� minD greatest}
++ else //{ minD greatest}
+ combinefromGreatestMin(minA, maxA, minD, maxD, minF, maxF, minE, maxE);
+ }
+
+--- a/Source/mesquite/trees/BasicDrawTaxonNames/BasicDrawTaxonNames.java
++++ b/Source/mesquite/trees/BasicDrawTaxonNames/BasicDrawTaxonNames.java
+@@ -176,7 +176,7 @@ public class BasicDrawTaxonNames extends
+ else
+ current = namesAngle/2/Math.PI*360;
+ MesquiteDouble d = new MesquiteDouble(current);
+- if (!QueryDialogs.queryDouble(containerOfModule(), "Names Angle", "Angle of taxon names, in degrees clockwise from horizontal. Use \"?\" to indicate default. Typical settings are between 0 degrees and -90 degrees. 0 = text reads from left to right (long dash = �); -90 = text reads from bottom to top (long dash = |); -45 = text angled diagonally (long dash = /). This setting applies only when tree is in UP orientation", d))
++ if (!QueryDialogs.queryDouble(containerOfModule(), "Names Angle", "Angle of taxon names, in degrees clockwise from horizontal. Use \"?\" to indicate default. Typical settings are between 0 degrees and -90 degrees. 0 = text reads from left to right (long dash = ); -90 = text reads from bottom to top (long dash = |); -45 = text angled diagonally (long dash = /). This setting applies only when tree is in UP orientation", d))
+ return null;
+ namesAngle = d.getValue();
+ if (MesquiteDouble.isCombinable(namesAngle))
+--- a/Source/mesquite/trees/lib/DrawTreeUtil.java
++++ b/Source/mesquite/trees/lib/DrawTreeUtil.java
+@@ -323,7 +323,7 @@ public class DrawTreeUtil {
+ }
+
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){ //
+ if (xnM>xN){ //leans left
+ xN += width/2+start;
+ xnM += width/2;
+@@ -356,7 +356,7 @@ public class DrawTreeUtil {
+ }
+
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //
+ if (ynM>yN){ //leans right
+ yN += width/2+start;
+ ynM += width/2;
+@@ -386,7 +386,7 @@ public class DrawTreeUtil {
+ }
+ }
+
+- else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){//����
++ else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){//
+ if (xnM>xN) { //leans right
+ //g.setColor(Color.blue);
+ arc = new Arc2D.Double(xN, ynM, (xnM-xN)*2, -(ynM - yN)*2, 90, 90, Arc2D.OPEN); // left
+@@ -410,7 +410,7 @@ public class DrawTreeUtil {
+ //g.drawRect(xnM-(xN-xnM), yN - (ynM - yN), (xN-xnM)*2, (ynM - yN)*2);
+ }
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //
+ if (ynM>yN) { //leans right
+ //g.setColor(Color.blue);
+ arc = new Arc2D.Double(xN - (xnM-xN), yN, -(xN-xnM)*2, (ynM - yN)*2, 0, 90, Arc2D.OPEN);
+@@ -440,7 +440,7 @@ public class DrawTreeUtil {
+ if (xnM > xN) ynM += edgewidth-1-start;
+ else ynM+=start;
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){ //
+ if (xnM > xN) ynM -= edgewidth-1-start;
+ else ynM-=start;
+ xnM +=adj; //why this adj is needed, I don't know. But it seems to work.
+@@ -450,7 +450,7 @@ public class DrawTreeUtil {
+ if (ynM > yN) xnM -= edgewidth-1-start;
+ else xnM-=start;
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //
+ if (ynM > yN) xnM += edgewidth-1-start;
+ else xnM+=start;
+ ynM +=adj;//why this adj is needed, I don't know. But it seems to work.
+@@ -472,7 +472,7 @@ public class DrawTreeUtil {
+ xN++;
+ }
+
+- else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){//����
++ else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){//
+ if (xnM>xN) {
+ g.drawArc(xN - start,ynM, (xnM-xN)*2, (yN -ynM)*2, 90, 90); //right
+ ynM++;
+@@ -494,7 +494,7 @@ public class DrawTreeUtil {
+ }
+ yN++;
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //
+ if (ynM>yN) {
+ g.drawArc(xN - (xnM-xN), yN - start, (xnM-xN)*2, (ynM - yN)*2, 0, 90); //right
+ xnM--;
+@@ -625,7 +625,7 @@ public class DrawTreeUtil {
+ g2.draw(line);
+ }
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){ //
+ xNHor = xN+start+halfLine;
+ if (xN>xnM){ // branch going to right
+ ynMVert = ynM-start-halfLine;
+@@ -671,7 +671,7 @@ public class DrawTreeUtil {
+ g2.draw(line);
+ }
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //
+ yNVert = yN+start+halfLine;
+ if (yN>ynM){ // branch going down
+ xnMHor = xnM+start+halfLine;
+--- a/Source/mesquite/trees/SquareTree/SquareTree.java
++++ b/Source/mesquite/trees/SquareTree/SquareTree.java
+@@ -930,7 +930,7 @@ class SquareTreeDrawing extends TreeDraw
+ arc.lineTo(xnM, ynM);
+ }
+
+- else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){//����
++ else if (treeDisplay.getOrientation()==TreeDisplay.DOWN){//
+ arc = new GeneralPath(); // left
+ arc.moveTo(xN, yN);
+ if (yN - ynM>curveD)
+@@ -946,7 +946,7 @@ class SquareTreeDrawing extends TreeDraw
+ arc.curveTo(xnM, yN, xnM, yN, xnM, ynM);
+ arc.lineTo(xnM, ynM);
+ }
+- else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //����
++ else if (treeDisplay.getOrientation()==TreeDisplay.LEFT){ //
+ arc = new GeneralPath(); // left
+ arc.moveTo(xN, yN);
+ if (xnM - xN>curveD)
+--- a/LibrarySource/JSci/maths/SpecialMath.java
++++ b/LibrarySource/JSci/maths/SpecialMath.java
+@@ -1532,4 +1532,3 @@ public final class SpecialMath extends A
+ }
+ }
+
+-
+--- a/LibrarySource/JSci/GlobalSettings.java
++++ b/LibrarySource/JSci/GlobalSettings.java
+@@ -13,4 +13,3 @@ public final class GlobalSettings extend
+ private GlobalSettings() {}
+ }
+
+-
+--- a/LibrarySource/JSci/maths/NumericalConstants.java
++++ b/LibrarySource/JSci/maths/NumericalConstants.java
+@@ -28,4 +28,3 @@ public interface NumericalConstants {
+ double GOLDEN_RATIO=1.6180339887498948482045868343656381177203091798058;
+ }
+
+-
+--- a/LibrarySource/pal/math/UnivariateMinimum.java
++++ b/LibrarySource/pal/math/UnivariateMinimum.java
+@@ -271,7 +271,7 @@ public class UnivariateMinimum
+ }
+ double u = b - ((b - c) * q - (b - a) * r) / 2.0 / (q - r);
+ u = constrain(u, searchToMax, min, max);
+- double fu = 0; // Don�t evaluate now
++ double fu = 0; // Don't evaluate now
+
+ boolean magnify = false;
+
+--- a/LibrarySource/com/lowagie/text/pdf/BaseField.java
++++ b/LibrarySource/com/lowagie/text/pdf/BaseField.java
+@@ -636,16 +636,16 @@ public abstract class BaseField {
+ this.options = options;
+ }
+
+- /** Gets the maximum length of the field�s text, in characters.
+- * @return the maximum length of the field�s text, in characters.
++ /** Gets the maximum length of the field's text, in characters.
++ * @return the maximum length of the field's text, in characters.
+ */
+ public int getMaxCharacterLength() {
+ return this.maxCharacterLength;
+ }
+
+- /** Sets the maximum length of the field�s text, in characters.
++ /** Sets the maximum length of the field's text, in characters.
+ * It is only meaningful for text fields.
+- * @param maxCharacterLength the maximum length of the field�s text, in characters
++ * @param maxCharacterLength the maximum length of the field's text, in characters
+ */
+ public void setMaxCharacterLength(int maxCharacterLength) {
+ this.maxCharacterLength = maxCharacterLength;
+--- a/LibrarySource/com/lowagie/text/pdf/PdfContentByte.java
++++ b/LibrarySource/com/lowagie/text/pdf/PdfContentByte.java
+@@ -636,7 +636,7 @@ public class PdfContentByte {
+ }
+
+ /**
+- * Appends a B�zier curve to the path, starting from the current point.
++ * Appends a Bezier curve to the path, starting from the current point.
+ *
+ * @param x1 x-coordinate of the first control point
+ * @param y1 y-coordinate of the first control point
+@@ -651,7 +651,7 @@ public class PdfContentByte {
+ }
+
+ /**
+- * Appends a B�zier curve to the path, starting from the current point.
++ * Appends a Bezier curve to the path, starting from the current point.
+ *
+ * @param x2 x-coordinate of the second control point
+ * @param y2 y-coordinate of the second control point
+@@ -664,7 +664,7 @@ public class PdfContentByte {
+ }
+
+ /**
+- * Appends a B�zier curve to the path, starting from the current point.
++ * Appends a Bezier curve to the path, starting from the current point.
+ *
+ * @param x1 x-coordinate of the first control point
+ * @param y1 y-coordinate of the first control point
+--- a/LibrarySource/com/lowagie/text/RomanList.java
++++ b/LibrarySource/com/lowagie/text/RomanList.java
+@@ -132,15 +132,15 @@ public class RomanList extends List {
+ // ****************************************************************************************
+
+ /*
+- * Wandelt eine Integer-Zahl in r�mische Schreibweise um
++ * Wandelt eine Integer-Zahl in roemische Schreibweise um
+ *
+ * Regeln: http://de.wikipedia.org/wiki/R%F6mische_Ziffern
+ *
+- * 1. Die Ziffern werden addiert, wobei sie von gro� nach klein sortiert sind:
++ * 1. Die Ziffern werden addiert, wobei sie von grosz nach klein sortiert sind:
+ *
+ * XVII = 10+5+1+1=17
+ *
+- * 2. Eine kleinere Ziffer, die links von einer gr��eren steht, wird abgezogen:
++ * 2. Eine kleinere Ziffer, die links von einer groeszeren steht, wird abgezogen:
+ *
+ * IV = 5-1=4
+ * CM = 1000-100=900
+@@ -149,25 +149,25 @@ public class RomanList extends List {
+ *
+ * XL = 40 (und nicht XXXX)
+ * IX = 9 (und nicht VIIII)
+- * Diese "Subtraktionsschreibweise" ist erst im Mittelalter allgemein gebr�uchlich geworden.
+- * Vorher wurde oft "IIII" f�r "4" geshrieben.
++ * Diese "Subtraktionsschreibweise" ist erst im Mittelalter allgemein gebraeuchlich geworden.
++ * Vorher wurde oft "IIII" fuer "4" geshrieben.
+ *
+- * 4. Bei mehreren m�glichen Schreibweisen wird in der Regel der k�rzesten der Vorzug gegeben:
++ * 4. Bei mehreren moeglichen Schreibweisen wird in der Regel der kuerzesten der Vorzug gegeben:
+ *
+ * IC = 99 (auch LXLIX)
+ * IL = 49 (auch XLIX oder sogar XLVIV)
+ * Andererseits gibt es die Vorschrift, nach der ein Symbol, das einen Wert von 10n darstellt,
+ * nicht einem Symbol, das einen Wert von 10(n+1) darstellt, direkt voranstehen darf.
+- * Nach dieser Regel w�re die Schreibweise "XCIX" f�r "99" der Schreibweise "IC" vorzuziehen.
++ * Nach dieser Regel waere die Schreibweise "XCIX" fuer "99" der Schreibweise "IC" vorzuziehen.
+ *
+- * 5. Die r�mischen Zahlen V, L und D k�nnen nicht gr��eren Zahlen voran gestellt werden:
++ * 5. Die roemischen Zahlen V, L und D koennen nicht groeszeren Zahlen voran gestellt werden:
+ *
+ * XCV = 95 (nicht VC)
+ *
+- * Zahlen �ber 3000 werden dargestellt durch Einkastung der Tausender: |IX|LIV=9054
++ * Zahlen ueber 3000 werden dargestellt durch Einkastung der Tausender: |IX|LIV=9054
+ *
+ *
+- * Zahlen gr��er als 3.000.000 werden durch Doppelstrich etc. dargestellt.
++ * Zahlen groeszer als 3.000.000 werden durch Doppelstrich etc. dargestellt.
+ */
+
+ /**
+@@ -217,7 +217,7 @@ public class RomanList extends List {
+ number = -number;
+ }
+
+- // gr��er 3000
++ // grueszer 3000
+ if (number > 3000) {
+ // rekursiver Aufruf (ohne tausender-Bereich)
+ buf.append('|');
+@@ -233,9 +233,9 @@ public class RomanList extends List {
+ // roman-array durchlaufen
+ RomanDigit dig = roman[pos];
+
+- // solange Zahl gr��er roman-Wert
++ // solange Zahl groeer roman-Wert
+ while (number >= dig.value) {
+- // Zeichen hinzuf�gen
++ // Zeichen hinzufuegen
+ buf.append(dig.digit);
+ // Wert des Zeichens abziehen
+ number -= dig.value;
+@@ -249,9 +249,9 @@ public class RomanList extends List {
+ int j = pos;
+ while (!roman[++j].pre);
+
+- // neuer Wert gr��er
++ // neuer Wert grueszer
+ if (number + roman[j].value >= dig.value) {
+- // hinzuf�gen
++ // hinzufuegen
+ buf.append(roman[j].digit).append(dig.digit);
+ // Wert vom Rest abziehen
+ number -= dig.value - roman[j].value;
+--- a/LibrarySource/pal/distance/PairwiseDistance.java
++++ b/LibrarySource/pal/distance/PairwiseDistance.java
+@@ -130,7 +130,7 @@ public class PairwiseDistance
+ of.setSequences(s1, s2);
+ if (start > BranchLimits.MAXARC || start < BranchLimits.MINARC)
+ {
+- // Don�t use start value
++ // Don't use start value
+ dist = um.findMinimum(of, BranchLimits.FRACDIGITS);
+ }
+ else
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..2db6066
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,23 @@
+#!/usr/bin/make -f
+
+# DH_VERBOSE := 1
+
+DEBPKGNAME := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2}')
+
+%:
+ dh $@ --with javahelper
+
+override_dh_auto_clean:
+ dh_auto_clean
+ for utf16 in `find . -name "*.utf16"` ; do \
+ mv $$utf16 `dirname $$utf16`/`basename $$utf16 .utf16` ; \
+ done
+
+override_dh_auto_build:
+ # quilt is unable to deal with encoding issues so we need to force this here
+ export LC_ALL=C.UTF-8 ; \
+ for utf16 in `find . -name "*.java" -exec file \{\} \; | grep UTF-16 | sed 's/: .*//'` ; do \
+ cp -a $$utf16 $${utf16}.utf16 ; \
+ dos2unix $$utf16 ; \
+ done
+ jh_build --javacopts='-target 1.7' --javacopts='-source 1.7' $(DEBPKGNAME).jar Source LibrarySource
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..bb371f9
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,6 @@
+version=3
+
+opts="repacksuffix=+dfsg,dversionmangle=s/\+dfsg//g,repack,compression=xz" \
+ https://github.com/MesquiteProject/MesquiteCore/releases .*/archive/(\d[\d.-]+)build\d*\.(?:tar(?:\.gz|\.bz2)?|tgz)
+
+# https://github.com/MesquiteProject/MesquiteCore/archive/3.04build725.tar.gz
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/mesquite.git
More information about the debian-med-commit
mailing list