By default (controllable via options.txt), Jskad now fixes the Tahoma curly
brace problem upon opening any RTF document. The TMW_RTF_TO_THDL_WYLIE test baselines changed because I fixed (a while ago) some inconsistencies between the EWTS standard and Jskad. Conversion of TibetanMachineWeb8.40, @#, to Wylie now works correctly. Unfortunately, though, typing @# doesn't produce 8.40, it still produces 8.38 and 8.39, two glyphs.
This commit is contained in:
parent
a144b125ca
commit
6f0390c5d6
5 changed files with 32 additions and 6 deletions
|
@ -73,6 +73,11 @@ thdl.Jskad.initial.status.message = Welcome to Jskad\!
|
||||||
# not be saved if this is true.)
|
# not be saved if this is true.)
|
||||||
thdl.Jskad.do.not.confirm.quit = false
|
thdl.Jskad.do.not.confirm.quit = false
|
||||||
|
|
||||||
|
# If this is false, then upon opening any RTF document, Jskad will
|
||||||
|
# replace the characters '{', '}', and '\' in the font 'Tahoma' with
|
||||||
|
# the correct Tibetan Machine Web glyphs.
|
||||||
|
thdl.Jskad.do.not.fix.curly.braces.in.rtf = false
|
||||||
|
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
####################### Developer Preferences ########################
|
####################### Developer Preferences ########################
|
||||||
|
|
|
@ -695,6 +695,9 @@ public class Jskad extends JPanel implements DocumentListener {
|
||||||
newFrame.dispose();
|
newFrame.dispose();
|
||||||
numberOfTibsRTFOpen--;
|
numberOfTibsRTFOpen--;
|
||||||
} else {
|
} else {
|
||||||
|
if (!ThdlOptions.getBooleanOption("thdl.Jskad.do.not.fix.curly.braces.in.rtf")) {
|
||||||
|
((TibetanDocument)newRTF.dp.getDocument()).replaceTahomaCurlyBracesAndBackslashes(0, -1);
|
||||||
|
}
|
||||||
newRTF.dp.getDocument().addDocumentListener(newRTF);
|
newRTF.dp.getDocument().addDocumentListener(newRTF);
|
||||||
newFrame.setTitle("Jskad: " + f_name);
|
newFrame.setTitle("Jskad: " + f_name);
|
||||||
newRTF.fileName = new String(f_name);
|
newRTF.fileName = new String(f_name);
|
||||||
|
@ -718,6 +721,9 @@ public class Jskad extends JPanel implements DocumentListener {
|
||||||
|
|
||||||
in.close();
|
in.close();
|
||||||
if (!error) {
|
if (!error) {
|
||||||
|
if (!ThdlOptions.getBooleanOption("thdl.Jskad.do.not.fix.curly.braces.in.rtf")) {
|
||||||
|
((TibetanDocument)dp.getDocument()).replaceTahomaCurlyBracesAndBackslashes(0, -1);
|
||||||
|
}
|
||||||
dp.getCaret().setDot(0);
|
dp.getCaret().setDot(0);
|
||||||
dp.getDocument().addDocumentListener(Jskad.this);
|
dp.getDocument().addDocumentListener(Jskad.this);
|
||||||
hasChanged = false;
|
hasChanged = false;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
\margl1440\margr1440\widowctrl
|
\margl1440\margr1440\widowctrl
|
||||||
\s1\li0\ri0\fi0\ql\f2\fs28\i0\b0\cf0 bod kyi deb ther dpyid kyi rgyal mo'i glu dbyangs/\f3\fs44\ul0\par
|
\s1\li0\ri0\fi0\ql\f2\fs28\i0\b0\cf0 bod kyi deb ther dpyid kyi rgyal mo'i glu dbyangs/\f3\fs44\ul0\par
|
||||||
\par
|
\par
|
||||||
\f2\fs28\ul0 @#/_\f4\fs44\ul0 \f2\fs28\ul0 /gangs can yul gyi sa la spyod pa'i mtho ris kyi rgyal blon gtso bor brjod pa'i deb ther rdzogs ldan gzhon nu'i dga' ston dpyid kyi rgyal mo'i glu dbyangs zhes bya ba bzhugs so//\par
|
\f2\fs28\ul0 @#$/_\f4\fs44\ul0 \f2\fs28\ul0 /gangs can yul gyi sa la spyod pa'i mtho ris kyi rgyal blon gtso bor brjod pa'i deb ther rdzogs ldan gzhon nu'i dga' ston dpyid kyi rgyal mo'i glu dbyangs zhes bya ba bzhugs so//\par
|
||||||
\par
|
\par
|
||||||
bskal pa bzang po'i blta na sdug pa'i grong khyer dbus na 'jigs bral snying stobs gser gyi gdan khri la//\par
|
bskal pa bzang po'i blta na sdug pa'i grong khyer dbus na 'jigs bral snying stobs gser gyi gdan khri la//\par
|
||||||
grags snyan nor bu'i rna rgyan 'od gzi mngon par rab 'bar chos kun ma lus gzigs pa'i mig stong can//\par
|
grags snyan nor bu'i rna rgyan 'od gzi mngon par rab 'bar chos kun ma lus gzigs pa'i mig stong can//\par
|
||||||
|
|
|
@ -131,8 +131,12 @@ public class TibetanDocument extends DefaultStyledDocument {
|
||||||
* @see #setTibetanFontSize(int size)
|
* @see #setTibetanFontSize(int size)
|
||||||
*/
|
*/
|
||||||
public void appendDuff(int offset, String s, MutableAttributeSet attr) {
|
public void appendDuff(int offset, String s, MutableAttributeSet attr) {
|
||||||
|
appendDuff(tibetanFontSize, offset, s, attr);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void appendDuff(int fontSize, int offset, String s, MutableAttributeSet attr) {
|
||||||
try {
|
try {
|
||||||
StyleConstants.setFontSize(attr, tibetanFontSize);
|
StyleConstants.setFontSize(attr, fontSize);
|
||||||
insertString(offset, s, attr);
|
insertString(offset, s, attr);
|
||||||
}
|
}
|
||||||
catch (BadLocationException ble) {
|
catch (BadLocationException ble) {
|
||||||
|
@ -146,13 +150,17 @@ public class TibetanDocument extends DefaultStyledDocument {
|
||||||
* @param pos the position at which you want to insert text
|
* @param pos the position at which you want to insert text
|
||||||
*/
|
*/
|
||||||
public int insertDuff(int pos, DuffData[] glyphs) {
|
public int insertDuff(int pos, DuffData[] glyphs) {
|
||||||
|
return insertDuff(tibetanFontSize, pos, glyphs);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int insertDuff(int fontSize, int pos, DuffData[] glyphs) {
|
||||||
if (glyphs == null)
|
if (glyphs == null)
|
||||||
return pos;
|
return pos;
|
||||||
|
|
||||||
MutableAttributeSet mas;
|
MutableAttributeSet mas;
|
||||||
for (int i=0; i<glyphs.length; i++) {
|
for (int i=0; i<glyphs.length; i++) {
|
||||||
mas = TibetanMachineWeb.getAttributeSet(glyphs[i].font);
|
mas = TibetanMachineWeb.getAttributeSet(glyphs[i].font);
|
||||||
appendDuff(pos, glyphs[i].text, mas);
|
appendDuff(fontSize, pos, glyphs[i].text, mas);
|
||||||
pos += glyphs[i].text.length();
|
pos += glyphs[i].text.length();
|
||||||
}
|
}
|
||||||
return pos;
|
return pos;
|
||||||
|
@ -368,7 +376,13 @@ public class TibetanDocument extends DefaultStyledDocument {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (null != toReplaceWith) {
|
if (null != toReplaceWith) {
|
||||||
insertDuff(i, toReplaceWith);
|
int fontSize = tibetanFontSize;
|
||||||
|
try {
|
||||||
|
fontSize = ((Integer)getCharacterElement(i).getAttributes().getAttribute(StyleConstants.FontSize)).intValue();
|
||||||
|
} catch (Exception e) {
|
||||||
|
// leave it as tibetanFontSize
|
||||||
|
}
|
||||||
|
insertDuff(fontSize, i, toReplaceWith);
|
||||||
remove(i+1, 1);
|
remove(i+1, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,7 +21,7 @@ k,kh,g,ng,c,ch,j,ny,t,th,d,n,p,ph,b,m,ts,tsh,dz,w,zh,z,',y,r,l,sh,s,h,a,T,Th,D,N
|
||||||
a,i,u,e,o,I,U,ai,au,A,-i,-I
|
a,i,u,e,o,I,U,ai,au,A,-i,-I
|
||||||
|
|
||||||
<?Other?>
|
<?Other?>
|
||||||
_, ,/,|,!,:,;,@,#,$,%,(,),H,M,`,&
|
_, ,/,|,!,:,;,@,#,$,%,(,),H,M,`,&,@#
|
||||||
|
|
||||||
<?Input:Punctuation?>
|
<?Input:Punctuation?>
|
||||||
//_~32,1~0,32
|
//_~32,1~0,32
|
||||||
|
@ -43,6 +43,7 @@ H~239,1~~8,92~~~~~~~0F7F
|
||||||
M~~~8,91~~~~~~~0F7E
|
M~~~8,91~~~~~~~0F7E
|
||||||
`~241,1~~8,94~~~~~~~0F83
|
`~241,1~~8,94~~~~~~~0F83
|
||||||
&~177,4~~8,93~~~~~~~0F85
|
&~177,4~~8,93~~~~~~~0F85
|
||||||
|
@#~201,1~~9,40
|
||||||
|
|
||||||
<?Input:Tibetan?>
|
<?Input:Tibetan?>
|
||||||
Dz~146,5~~10,42
|
Dz~146,5~~10,42
|
||||||
|
@ -996,7 +997,7 @@ mnyam.yig.mgo.rgyan~36,5~~9,36~~~~~~~0F09
|
||||||
37,5~~9,37
|
37,5~~9,37
|
||||||
zla tse gcig~210,1~~9,38~~~~~~~0F04
|
zla tse gcig~210,1~~9,38~~~~~~~0F04
|
||||||
half zla tse gcig~200,1~~9,39~~~~~~~0F05
|
half zla tse gcig~200,1~~9,39~~~~~~~0F05
|
||||||
zla tse gnyis~201,1~~9,40
|
// zla tse gnyis~201,1~~9,40 is now punctuation.
|
||||||
yig.mgo.phur.shad~38,5~~9,41~~~~~~~0F06
|
yig.mgo.phur.shad~38,5~~9,41~~~~~~~0F06
|
||||||
Yig.mgo.tsheg.shad~39,5~~9,42~~~~~~~0F07
|
Yig.mgo.tsheg.shad~39,5~~9,42~~~~~~~0F07
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue