in src/java/org/apache/fop/render/pdf/pdfbox/MergeCFFFonts.java [423:466]
private void updateStandardRange(Map<Integer, Integer> range) {
if (range.containsKey(NUM_STANDARD_STRINGS) && range.containsKey(NUM_STANDARD_STRINGS + 1)) {
boolean mixedCS = false;
for (int i : range.keySet()) {
if (i < NUM_STANDARD_STRINGS && i > 1) {
mixedCS = true;
break;
}
}
if (!mixedCS) {
if (range.containsKey(1)) {
range.clear();
range.put(1, 0);
}
int last = -1;
boolean simpleRange = false;
for (int i : range.keySet()) {
simpleRange = last + 1 == i;
last = i;
}
if (simpleRange) {
for (int i = NUM_STANDARD_STRINGS; i < NUM_STANDARD_STRINGS + subsetCharStringsIndex.size(); i++) {
range.put(i, 0);
}
} else {
range.put(NUM_STANDARD_STRINGS, subsetCharStringsIndex.size());
}
}
} else if (cffReader.getFDSelect() instanceof CFFDataReader.Format3FDSelect) {
int last = -1;
int count = 1;
Set<Integer> r = new TreeSet<Integer>(range.keySet());
for (int i : r) {
if (last + count == i) {
range.remove(i);
range.put(last, count);
count++;
} else {
last = i;
count = 1;
}
}
}
}