fix eci w/o priority charset setting

This commit is contained in:
Henry Schimke
2022-11-05 12:00:52 -05:00
parent 76ec49ac83
commit a4c640822c
5 changed files with 45 additions and 45 deletions

View File

@@ -42,14 +42,14 @@ pub enum CharacterSetECI {
ISO8859_3, //(5, "ISO-8859-3"),
ISO8859_4, //(6, "ISO-8859-4"),
ISO8859_5, //(7, "ISO-8859-5"),
ISO8859_6, //(8, "ISO-8859-6"),
//ISO8859_6, //(8, "ISO-8859-6"),
ISO8859_7, //(9, "ISO-8859-7"),
ISO8859_8, //(10, "ISO-8859-8"),
//ISO8859_8, //(10, "ISO-8859-8"),
ISO8859_9, //(11, "ISO-8859-9"),
ISO8859_10, //(12, "ISO-8859-10"),
ISO8859_11, //(13, "ISO-8859-11"),
// ISO8859_10, //(12, "ISO-8859-10"),
// ISO8859_11, //(13, "ISO-8859-11"),
ISO8859_13, //(15, "ISO-8859-13"),
ISO8859_14, //(16, "ISO-8859-14"),
// ISO8859_14, //(16, "ISO-8859-14"),
ISO8859_15, //(17, "ISO-8859-15"),
ISO8859_16, //(18, "ISO-8859-16"),
SJIS, //(20, "Shift_JIS"),
@@ -108,14 +108,14 @@ impl CharacterSetECI {
CharacterSetECI::ISO8859_3 => 5,
CharacterSetECI::ISO8859_4 => 6,
CharacterSetECI::ISO8859_5 => 7,
CharacterSetECI::ISO8859_6 => 8,
// CharacterSetECI::ISO8859_6 => 8,
CharacterSetECI::ISO8859_7 => 9,
CharacterSetECI::ISO8859_8 => 10,
// CharacterSetECI::ISO8859_8 => 10,
CharacterSetECI::ISO8859_9 => 11,
CharacterSetECI::ISO8859_10 => 12,
CharacterSetECI::ISO8859_11 => 13,
// CharacterSetECI::ISO8859_10 => 12,
// CharacterSetECI::ISO8859_11 => 13,
CharacterSetECI::ISO8859_13 => 15,
CharacterSetECI::ISO8859_14 => 16,
// CharacterSetECI::ISO8859_14 => 16,
CharacterSetECI::ISO8859_15 => 17,
CharacterSetECI::ISO8859_16 => 18,
CharacterSetECI::SJIS => 20,
@@ -141,14 +141,14 @@ impl CharacterSetECI {
CharacterSetECI::ISO8859_3 => "ISO-8859-3",
CharacterSetECI::ISO8859_4 => "ISO-8859-4",
CharacterSetECI::ISO8859_5 => "ISO-8859-5",
CharacterSetECI::ISO8859_6 => "ISO-8859-6",
// CharacterSetECI::ISO8859_6 => "ISO-8859-6",
CharacterSetECI::ISO8859_7 => "ISO-8859-7",
CharacterSetECI::ISO8859_8 => "ISO-8859-8",
// CharacterSetECI::ISO8859_8 => "ISO-8859-8",
CharacterSetECI::ISO8859_9 => "ISO-8859-9",
CharacterSetECI::ISO8859_10 => "ISO-8859-10",
CharacterSetECI::ISO8859_11 => "ISO-8859-11",
// CharacterSetECI::ISO8859_10 => "ISO-8859-10",
// CharacterSetECI::ISO8859_11 => "ISO-8859-11",
CharacterSetECI::ISO8859_13 => "ISO-8859-13",
CharacterSetECI::ISO8859_14 => "ISO-8859-14",
// CharacterSetECI::ISO8859_14 => "ISO-8859-14",
CharacterSetECI::ISO8859_15 => "ISO-8859-15",
CharacterSetECI::ISO8859_16 => "ISO-8859-16",
CharacterSetECI::SJIS => "Shift_JIS",
@@ -184,14 +184,14 @@ impl CharacterSetECI {
"iso-8859-3" => Some(CharacterSetECI::ISO8859_3),
"iso-8859-4" => Some(CharacterSetECI::ISO8859_4),
"iso-8859-5" => Some(CharacterSetECI::ISO8859_5),
"iso-8859-6" => Some(CharacterSetECI::ISO8859_6),
// "iso-8859-6" => Some(CharacterSetECI::ISO8859_6),
"iso-8859-7" => Some(CharacterSetECI::ISO8859_7),
"iso-8859-8" => Some(CharacterSetECI::ISO8859_8),
// "iso-8859-8" => Some(CharacterSetECI::ISO8859_8),
"iso-8859-9" => Some(CharacterSetECI::ISO8859_9),
"iso-8859-10" => Some(CharacterSetECI::ISO8859_10),
"iso-8859-11" => Some(CharacterSetECI::ISO8859_11),
// "iso-8859-10" => Some(CharacterSetECI::ISO8859_10),
// "iso-8859-11" => Some(CharacterSetECI::ISO8859_11),
"iso-8859-13" => Some(CharacterSetECI::ISO8859_13),
"iso-8859-14" => Some(CharacterSetECI::ISO8859_14),
// "iso-8859-14" => Some(CharacterSetECI::ISO8859_14),
"iso-8859-15" => Some(CharacterSetECI::ISO8859_15),
"iso-8859-16" => Some(CharacterSetECI::ISO8859_16),
"shift_jis" => Some(CharacterSetECI::SJIS),
@@ -223,14 +223,14 @@ impl CharacterSetECI {
5 => Ok(CharacterSetECI::ISO8859_3),
6 => Ok(CharacterSetECI::ISO8859_4),
7 => Ok(CharacterSetECI::ISO8859_5),
8 => Ok(CharacterSetECI::ISO8859_6),
// 8 => Ok(CharacterSetECI::ISO8859_6),
9 => Ok(CharacterSetECI::ISO8859_7),
10 => Ok(CharacterSetECI::ISO8859_8),
// 10 => Ok(CharacterSetECI::ISO8859_8),
11 => Ok(CharacterSetECI::ISO8859_9),
12 => Ok(CharacterSetECI::ISO8859_10),
13 => Ok(CharacterSetECI::ISO8859_11),
// 12 => Ok(CharacterSetECI::ISO8859_10),
// 13 => Ok(CharacterSetECI::ISO8859_11),
15 => Ok(CharacterSetECI::ISO8859_13),
16 => Ok(CharacterSetECI::ISO8859_14),
// 16 => Ok(CharacterSetECI::ISO8859_14),
17 => Ok(CharacterSetECI::ISO8859_15),
18 => Ok(CharacterSetECI::ISO8859_16),
20 => Ok(CharacterSetECI::SJIS),
@@ -261,14 +261,14 @@ impl CharacterSetECI {
"ISO-8859-3" => Some(CharacterSetECI::ISO8859_3),
"ISO-8859-4" => Some(CharacterSetECI::ISO8859_4),
"ISO-8859-5" => Some(CharacterSetECI::ISO8859_5),
"ISO-8859-6" => Some(CharacterSetECI::ISO8859_6),
// "ISO-8859-6" => Some(CharacterSetECI::ISO8859_6),
"ISO-8859-7" => Some(CharacterSetECI::ISO8859_7),
"ISO-8859-8" => Some(CharacterSetECI::ISO8859_8),
// "ISO-8859-8" => Some(CharacterSetECI::ISO8859_8),
"ISO-8859-9" => Some(CharacterSetECI::ISO8859_9),
"ISO-8859-10" => Some(CharacterSetECI::ISO8859_10),
"ISO-8859-11" => Some(CharacterSetECI::ISO8859_11),
// "ISO-8859-10" => Some(CharacterSetECI::ISO8859_10),
// "ISO-8859-11" => Some(CharacterSetECI::ISO8859_11),
"ISO-8859-13" => Some(CharacterSetECI::ISO8859_13),
"ISO-8859-14" => Some(CharacterSetECI::ISO8859_14),
// "ISO-8859-14" => Some(CharacterSetECI::ISO8859_14),
"ISO-8859-15" => Some(CharacterSetECI::ISO8859_15),
"ISO-8859-16" => Some(CharacterSetECI::ISO8859_16),
"Shift_JIS" => Some(CharacterSetECI::SJIS),

View File

@@ -114,7 +114,7 @@ impl ECIEncoderSet {
//we always need the ISO-8859-1 encoder. It is the default encoding
neededEncoders.push(encoding::all::ISO_8859_1);
let mut needUnicodeEncoder = if let Some(pc) = priorityCharset {
pc.name().starts_with("UTF")
pc.name().starts_with("UTF") || pc.name().starts_with("utf")
} else {
false
};

View File

@@ -351,8 +351,8 @@ impl MinimalECIInput {
}
let mut intsAL: Vec<u16> = Vec::new();
let mut current = edges[inputLength][minimalJ as usize].clone();
while current.is_some() {
let c = current.unwrap().clone();
while let Some(c) = current {
//let c = current.unwrap().clone();
if c.isFNC1() {
intsAL.splice(0..0, [1000]);
} else {
@@ -361,11 +361,12 @@ impl MinimalECIInput {
.iter()
.map(|x| *x as u16)
.collect();
let mut i = bytes.len() as i32 - 1;
let mut i = bytes.len() as isize - 1;
while i >= 0 {
// for (int i = bytes.length - 1; i >= 0; i--) {
intsAL.splice(0..0, [bytes[i as usize]]);
i = -1;
// intsAL.splice(0..0, [bytes[i as usize]]);
intsAL.insert(0, bytes[i as usize]);
i -= 1;
}
}
let previousEncoderIndex = if c.previous.is_none() {
@@ -374,10 +375,11 @@ impl MinimalECIInput {
c.previous.clone().unwrap().encoderIndex
};
if previousEncoderIndex != c.encoderIndex {
intsAL.splice(
0..0,
[256 as u16 + encoderSet.getECIValue(c.encoderIndex) as u16],
);
// intsAL.splice(
// 0..0,
// [256 as u16 + encoderSet.getECIValue(c.encoderIndex) as u16],
// );
intsAL.insert(0, 256 as u16 + encoderSet.getECIValue(c.encoderIndex) as u16);
}
current = c.previous.clone();
}