LaoFormatter.java
1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.fontengine.inlineformatting.infontformatting;
import com.adobe.fontengine.inlineformatting.AttributedRun;
import com.adobe.fontengine.inlineformatting.ElementAttribute;
import com.adobe.fontengine.inlineformatting.infontformatting.GenericFormatter;
final class LaoFormatter
extends GenericFormatter {
LaoFormatter() {
}
protected int removeSignAm(AttributedRun run, int start, int limit) {
for (int cur = start; cur < limit; ++cur) {
int usv = run.elementAt(cur);
if (usv != 3763) continue;
int prev = cur;
while (start <= prev - 1 && run.getElementStyle(prev - 1, ElementAttribute.isGlyph) != Boolean.TRUE && 3784 <= run.elementAt(prev - 1) && run.elementAt(prev - 1) <= 3787) {
--prev;
}
if (prev == cur) {
run.replace(cur, new int[]{3789, 3762});
} else {
int[] positions = new int[cur - prev + 1];
for (int i = 0; i < positions.length; ++i) {
positions[i] = prev + i;
}
int[] elementIds = new int[cur - prev + 2];
elementIds[0] = 3789;
for (int i2 = 1; i2 < elementIds.length - 1; ++i2) {
elementIds[i2] = run.elementAt(prev + i2 - 1);
}
elementIds[elementIds.length - 1] = 3762;
run.replace(positions, elementIds);
}
++cur;
++limit;
}
return limit;
}
public int firstPass(AttributedRun run, int start, int limit) {
limit = this.removeSignAm(run, start, limit);
return super.firstPass(run, start, limit);
}
}