From 47648186b43728bf60497fe780b83a94e39d4486 Mon Sep 17 00:00:00 2001 From: dchandler Date: Sat, 18 Oct 2003 18:34:49 +0000 Subject: [PATCH] Untabified -- whitespace only has changed. Use 'cvs diff -wb' to avoid seeing these differences. --- source/org/thdl/tib/text/TibTextUtils.java | 580 ++++++++++----------- 1 file changed, 290 insertions(+), 290 deletions(-) diff --git a/source/org/thdl/tib/text/TibTextUtils.java b/source/org/thdl/tib/text/TibTextUtils.java index 0dd2a27..4e2ef71 100644 --- a/source/org/thdl/tib/text/TibTextUtils.java +++ b/source/org/thdl/tib/text/TibTextUtils.java @@ -62,34 +62,34 @@ public class TibTextUtils implements THDLWylieConstants { * @return an array of DuffData corresponding to this * list of glyphs */ - public static DuffData[] convertGlyphs(List glyphs) { - if (glyphs.size() == 0) - return null; - List data = new ArrayList(); - StringBuffer sb = new StringBuffer(); - Iterator iter = glyphs.iterator(); - DuffCode dc = (DuffCode)iter.next(); - int lastfont = dc.getFontNum(); - sb.append(dc.getCharacter()); + public static DuffData[] convertGlyphs(List glyphs) { + if (glyphs.size() == 0) + return null; + List data = new ArrayList(); + StringBuffer sb = new StringBuffer(); + Iterator iter = glyphs.iterator(); + DuffCode dc = (DuffCode)iter.next(); + int lastfont = dc.getFontNum(); + sb.append(dc.getCharacter()); - while (iter.hasNext()) { - dc = (DuffCode)iter.next(); - if (dc.getFontNum() == lastfont) - sb.append(dc.getCharacter()); - else { - data.add(new DuffData(sb.toString(), lastfont)); - lastfont = dc.getFontNum(); - sb = new StringBuffer(); - sb.append(dc.getCharacter()); - } - } + while (iter.hasNext()) { + dc = (DuffCode)iter.next(); + if (dc.getFontNum() == lastfont) + sb.append(dc.getCharacter()); + else { + data.add(new DuffData(sb.toString(), lastfont)); + lastfont = dc.getFontNum(); + sb = new StringBuffer(); + sb.append(dc.getCharacter()); + } + } - data.add(new DuffData(sb.toString(), lastfont)); + data.add(new DuffData(sb.toString(), lastfont)); - DuffData[] dd = new DuffData[0]; - dd = (DuffData[])data.toArray(dd); - return dd; - } + DuffData[] dd = new DuffData[0]; + dd = (DuffData[])data.toArray(dd); + return dd; + } /** * Figures out how to arrange a list of characters into glyphs. For @@ -113,135 +113,135 @@ public class TibTextUtils implements THDLWylieConstants { * @param definitelySanskrit should be true if the characters are known * to be Sanskrit and not Tibetan */ - public static List getGlyphs(List chars, boolean areStacksOnRight, boolean definitelyTibetan, boolean definitelySanskrit) { - StringBuffer tibBuffer, sanBuffer; - String tibCluster, sanCluster; + public static List getGlyphs(List chars, boolean areStacksOnRight, boolean definitelyTibetan, boolean definitelySanskrit) { + StringBuffer tibBuffer, sanBuffer; + String tibCluster, sanCluster; - boolean checkTibetan, checkSanskrit; + boolean checkTibetan, checkSanskrit; - if (!(definitelyTibetan || definitelySanskrit)) { - checkTibetan = true; - checkSanskrit = true; - } - else { - checkTibetan = definitelyTibetan; - checkSanskrit = definitelySanskrit; - } + if (!(definitelyTibetan || definitelySanskrit)) { + checkTibetan = true; + checkSanskrit = true; + } + else { + checkTibetan = definitelyTibetan; + checkSanskrit = definitelySanskrit; + } - int length = chars.size(); + int length = chars.size(); - List glyphs = new ArrayList(); - glyphs.clear(); + List glyphs = new ArrayList(); + glyphs.clear(); - if (areStacksOnRight) { - for (int i=0; i-1; i--) { - tibBuffer = new StringBuffer(); - tibCluster = null; + glyphs.add(TibetanMachineWeb.getGlyph(sanCluster)); + return glyphs; + } + } + } + } + else { + for (int i=length-1; i>-1; i--) { + tibBuffer = new StringBuffer(); + tibCluster = null; - sanBuffer = new StringBuffer(); - sanCluster = null; + sanBuffer = new StringBuffer(); + sanCluster = null; - Iterator iter = chars.iterator(); + Iterator iter = chars.iterator(); - for (int k=0; k 1) { - dc = (DuffCode)glyphs.get(glyphs.size()-1); - if (!TibetanMachineWeb.isWyliePunc(TibetanMachineWeb.getWylieForGlyph(dc, weDoNotCareIfThereIsCorrespondingWylieOrNot))) { - DuffCode dc_2 = (DuffCode)glyphs.removeLast(); - DuffCode dc_1 = (DuffCode)glyphs.removeLast(); - getVowel(glyphs, dc_1, dc_2, next); - break vowel_block; - } - } - DuffCode[] dc_array = (DuffCode[])TibetanMachineWeb.getTibHash().get(ACHEN); - dc = dc_array[TibetanMachineWeb.TMW]; - getVowel(glyphs, dc, next); - } + vowel_block: { + if (size > 1) { + dc = (DuffCode)glyphs.get(glyphs.size()-1); + if (!TibetanMachineWeb.isWyliePunc(TibetanMachineWeb.getWylieForGlyph(dc, weDoNotCareIfThereIsCorrespondingWylieOrNot))) { + DuffCode dc_2 = (DuffCode)glyphs.removeLast(); + DuffCode dc_1 = (DuffCode)glyphs.removeLast(); + getVowel(glyphs, dc_1, dc_2, next); + break vowel_block; + } + } + DuffCode[] dc_array = (DuffCode[])TibetanMachineWeb.getTibHash().get(ACHEN); + dc = dc_array[TibetanMachineWeb.TMW]; + getVowel(glyphs, dc, next); + } - chars.clear(); - } + chars.clear(); + } - isSanskrit = false; - } + isSanskrit = false; + } - else if (TibetanMachineWeb.isWylieChar(next)) { - if (!isSanskrit) //add char to list - it is not sanskrit - chars.add(next); + else if (TibetanMachineWeb.isWylieChar(next)) { + if (!isSanskrit) //add char to list - it is not sanskrit + chars.add(next); - else if (wasLastSanskritStackingKey) { //add char to list - it is still part of sanskrit stack - chars.add(next); - wasLastSanskritStackingKey = false; - } + else if (wasLastSanskritStackingKey) { //add char to list - it is still part of sanskrit stack + chars.add(next); + wasLastSanskritStackingKey = false; + } - else { //char is no longer part of sanskrit stack, therefore compute and add previous stack - glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); - chars.clear(); - chars.add(next); - isSanskrit = false; - wasLastSanskritStackingKey = false; - } - } + else { //char is no longer part of sanskrit stack, therefore compute and add previous stack + glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); + chars.clear(); + chars.add(next); + isSanskrit = false; + wasLastSanskritStackingKey = false; + } + } - else if (next.equals(String.valueOf(WYLIE_DISAMBIGUATING_KEY))) { - if (!chars.isEmpty()) - glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); + else if (next.equals(String.valueOf(WYLIE_DISAMBIGUATING_KEY))) { + if (!chars.isEmpty()) + glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); - chars.clear(); - isSanskrit = false; - } + chars.clear(); + isSanskrit = false; + } - else if (next.equals(String.valueOf(WYLIE_SANSKRIT_STACKING_KEY))) { - if (!isSanskrit) { //begin sanskrit stack - switch (chars.size()) { - case 0: - break; //'+' is not "pre-stacking" key + else if (next.equals(String.valueOf(WYLIE_SANSKRIT_STACKING_KEY))) { + if (!isSanskrit) { //begin sanskrit stack + switch (chars.size()) { + case 0: + break; //'+' is not "pre-stacking" key - case 1: - isSanskrit = true; - wasLastSanskritStackingKey = true; - break; + case 1: + isSanskrit = true; + wasLastSanskritStackingKey = true; + break; - default: - String top_char = (String)chars.get(chars.size()-1); - chars.remove(chars.size()-1); + default: + String top_char = (String)chars.get(chars.size()-1); + chars.remove(chars.size()-1); // DLC PERFORMANCE FIXME: make glyphs a parameter - glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); - chars.clear(); - chars.add(top_char); - isSanskrit = true; - wasLastSanskritStackingKey = true; - break; - } - } - } + glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); + chars.clear(); + chars.add(top_char); + isSanskrit = true; + wasLastSanskritStackingKey = true; + break; + } + } + } - else if (TibetanMachineWeb.isFormatting(next.charAt(0))) { - if (!chars.isEmpty()) - glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); + else if (TibetanMachineWeb.isFormatting(next.charAt(0))) { + if (!chars.isEmpty()) + glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); - dc = new DuffCode(1,next.charAt(0)); - glyphs.add(dc); - chars.clear(); - isSanskrit = false; - } + dc = new DuffCode(1,next.charAt(0)); + glyphs.add(dc); + chars.clear(); + isSanskrit = false; + } - if (next != null) - start += next.length(); - } + if (next != null) + start += next.length(); + } - if (!chars.isEmpty()) { - glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); - chars.clear(); - } + if (!chars.isEmpty()) { + glyphs.addAll(getGlyphs(chars, true, !isSanskrit, isSanskrit)); + chars.clear(); + } - DuffData[] dd = convertGlyphs(glyphs); - return dd; - } + DuffData[] dd = convertGlyphs(glyphs); + return dd; + } /** * Gets the bindu sequence for a given context. In the