diff --git a/src/common/character_set_eci.rs b/src/common/character_set_eci.rs index e04f265..e357d9d 100644 --- a/src/common/character_set_eci.rs +++ b/src/common/character_set_eci.rs @@ -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), diff --git a/src/common/eci_encoder_set.rs b/src/common/eci_encoder_set.rs index 8382225..f8661e2 100644 --- a/src/common/eci_encoder_set.rs +++ b/src/common/eci_encoder_set.rs @@ -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 }; diff --git a/src/common/minimal_eci_input.rs b/src/common/minimal_eci_input.rs index f107166..3c25a70 100644 --- a/src/common/minimal_eci_input.rs +++ b/src/common/minimal_eci_input.rs @@ -351,8 +351,8 @@ impl MinimalECIInput { } let mut intsAL: Vec = 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(); } diff --git a/src/datamatrix/encoder/high_level_encode_test_case.rs b/src/datamatrix/encoder/high_level_encode_test_case.rs index d9c4218..8f4a28e 100644 --- a/src/datamatrix/encoder/high_level_encode_test_case.rs +++ b/src/datamatrix/encoder/high_level_encode_test_case.rs @@ -524,11 +524,11 @@ fn testSizes() { #[test] fn testECIs() { - let mut visualized = visualize(&minimal_encoder::encodeHighLevel("that particularly stands out to me is \u{0625}\u{0650}\u{062C}\u{064E}\u{0651}\u{0627}\u{0635} (\u{02BE}\u{0101}\u{1E63}) \"pear\", suggested to have originated from Hebrew \u{05D0}\u{05B7}\u{05D2}\u{05B8}\u{05BC}\u{05E1} (ag\u{00E1}s)").expect("encode")); + let visualized = visualize(&minimal_encoder::encodeHighLevel("that particularly stands out to me is \u{0625}\u{0650}\u{062C}\u{064E}\u{0651}\u{0627}\u{0635} (\u{02BE}\u{0101}\u{1E63}) \"pear\", suggested to have originated from Hebrew \u{05D0}\u{05B7}\u{05D2}\u{05B8}\u{05BC}\u{05E1} (ag\u{00E1}s)").expect("encode")); assert_eq!("239 209 151 206 214 92 122 140 35 158 144 162 52 205 55 171 137 23 67 206 218 175 147 113 15 254 116 33 241 25 231 186 14 212 64 253 151 252 159 33 41 241 27 231 83 171 53 209 35 25 134 6 42 33 35 239 184 31 193 234 7 252 205 101 127 241 209 34 24 5 22 23 221 148 179 239 128 140 92 187 106 204 198 59 19 25 114 248 118 36 254 231 106 196 19 239 101 27 107 69 189 112 236 156 252 16 174 125 24 10 125 116 42 129", visualized); - visualized = visualize(&minimal_encoder::encodeHighLevelWithDetails("that particularly stands out to me is \u{0625}\u{0650}\u{062C}\u{064E}\u{0651}\u{0627}\u{0635} (\u{02BE}\u{0101}\u{1E63}) \"pear\", suggested to have originated from Hebrew \u{05D0}\u{05B7}\u{05D2}\u{05B8}\u{05BC}\u{05E1} (ag\u{00E1}s)", Some(encoding::all::UTF_8), None , SymbolShapeHint::FORCE_NONE).expect("encode")); + let visualized = visualize(&minimal_encoder::encodeHighLevelWithDetails("that particularly stands out to me is \u{0625}\u{0650}\u{062C}\u{064E}\u{0651}\u{0627}\u{0635} (\u{02BE}\u{0101}\u{1E63}) \"pear\", suggested to have originated from Hebrew \u{05D0}\u{05B7}\u{05D2}\u{05B8}\u{05BC}\u{05E1} (ag\u{00E1}s)", Some(encoding::all::UTF_8), None , SymbolShapeHint::FORCE_NONE).expect("encode")); assert_eq!("241 27 239 209 151 206 214 92 122 140 35 158 144 162 52 205 55 171 137 23 67 206 218 175 147 113 15 254 116 33 231 202 33 131 77 154 119 225 163 238 206 28 249 93 36 150 151 53 108 246 145 228 217 71 199 42 33 35 239 184 31 193 234 7 252 205 101 127 241 209 34 24 5 22 23 221 148 179 239 128 140 92 187 106 204 198 59 19 25 114 248 118 36 254 231 43 133 212 175 38 220 44 6 125 49 172 93 189 209 111 61 217 203 62 116 42 129 1 151 46 196 91 241 137 32 182 77 227 122 18 168 63 213 108 4 154 49 199 94 244 140 35 185 80", visualized); } diff --git a/src/datamatrix/encoder/minimal_encoder.rs b/src/datamatrix/encoder/minimal_encoder.rs index 87ba877..11872c1 100755 --- a/src/datamatrix/encoder/minimal_encoder.rs +++ b/src/datamatrix/encoder/minimal_encoder.rs @@ -1302,7 +1302,7 @@ impl RXingResult { size += Self::prepend(&Edge::getBytes1(254), &mut bytesAL); } let mut hold_current = Some(solution.clone()); - while let Some(current) = hold_current { + while let Some(current) = hold_current { // Fails on i = 77 should be 151 is 144 size += Self::prepend(¤t.getDataBytes()?, &mut bytesAL); if current.previous.is_none() @@ -1320,9 +1320,7 @@ impl RXingResult { randomizePostfixLength.push(bytesAL.len()); randomizeLengths.push(size); } - //if Edge::getPreviousStartMode(current.previous.clone()) != current.getMode() { Self::prepend(¤t.getLatchBytes()?, &mut bytesAL); - //} size = 0; }