[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