Some code cleanup.

tibwn.ini must now have, in the Unicode column, either nothing, or
0FXX(,0FXX)*.  E.g., 0F04,0F05 is valid.  Debugging code ensures this is
the case.
This commit is contained in:
dchandler 2003-06-01 18:09:49 +00:00
parent 1f6bb07d53
commit e2caf99085

View file

@ -435,13 +435,17 @@ public class TibetanMachineWeb implements THDLWylieConstants {
break; break;
case 10: //Unicode: ignore for now case 10: //Unicode: ignore for now
ThdlDebug.verify(val.length() == 4); StringTokenizer uTok = new StringTokenizer(val, ",");
while (uTok.hasMoreTokens()) {
String subval = uTok.nextToken();
ThdlDebug.verify(subval.length() == 4);
try { try {
int x; int x;
ThdlDebug.verify((x = Integer.parseInt(val, 16)) >= 0x0F00 ThdlDebug.verify((x = Integer.parseInt(subval, 16)) >= 0x0F00
&& x <= 0x0FFF); && x <= 0x0FFF);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
ThdlDebug.verify(false); ThdlDebug.verify(false);
}
} }
break; break;
@ -1092,10 +1096,11 @@ public static String getHashKeyForGlyph(int font, int code) {
} }
/** /**
* Gets the hash key associated with this glyph. * Gets the hash key associated with this glyph, or null if there is
* none (probably because this glyph has no THDL Extended Wylie
* transcription).
* @param dc a DuffCode denoting a TibetanMachineWeb glyph * @param dc a DuffCode denoting a TibetanMachineWeb glyph
* @return the hashKey corresponding to the character at dc * @return the hashKey corresponding to the character at dc */
*/
public static String getHashKeyForGlyph(DuffCode dc) { public static String getHashKeyForGlyph(DuffCode dc) {
int font = dc.getFontNum(); int font = dc.getFontNum();
int code = dc.getCharNum()-32; int code = dc.getCharNum()-32;
@ -1128,6 +1133,16 @@ public static String wylieForGlyph(String hashKey) {
return sb.toString(); return sb.toString();
} }
/** Error that appears in a document when some TMW cannot be
* transcribed in THDL Extended Wylie. This error message is
* documented in www/htdocs/TMW_RTF_TO_THDL_WYLIE.html, so change
* them both when you change this. */
private static String getTMWToWylieErrorString(DuffCode dc) {
return "<<[[JSKAD_TMW_TO_WYLIE_ERROR_NO_SUCH_WYLIE: Cannot convert DuffCode "
+ dc.toString(true)
+ " to THDL Extended Wylie. Please see the documentation for the TMW font and transcribe this yourself.]]>>";
}
/** /**
* Gets the Extended Wylie value for this glyph. * Gets the Extended Wylie value for this glyph.
* @param font the font of the TibetanMachineWeb * @param font the font of the TibetanMachineWeb
@ -1139,6 +1154,9 @@ public static String wylieForGlyph(String hashKey) {
*/ */
public static String getWylieForGlyph(int font, int code) { public static String getWylieForGlyph(int font, int code) {
String hashKey = getHashKeyForGlyph(font, code); String hashKey = getHashKeyForGlyph(font, code);
if (hashKey == null) {
return getTMWToWylieErrorString(new DuffCode(font, (char)code));
}
return wylieForGlyph(hashKey); return wylieForGlyph(hashKey);
} }
@ -1152,10 +1170,7 @@ public static String getWylieForGlyph(int font, int code) {
public static String getWylieForGlyph(DuffCode dc) { public static String getWylieForGlyph(DuffCode dc) {
String hashKey = getHashKeyForGlyph(dc); String hashKey = getHashKeyForGlyph(dc);
if (hashKey == null) { if (hashKey == null) {
// This error message is documented in return getTMWToWylieErrorString(dc);
// www/htdocs/TMW_RTF_TO_THDL_WYLIE.html, so change them both
// when you change this.
return "<<[[JSKAD_TMW_TO_WYLIE_ERROR_NO_SUCH_WYLIE: Cannot convert DuffCode " + dc.toString(true) + " to THDL Extended Wylie. Please see the documentation for the TMW font and transcribe this yourself.]]>>";
} }
return wylieForGlyph(hashKey); return wylieForGlyph(hashKey);
} }