From efd3c1cf6ff884b2332b82ce29ef39c5da7a68af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20St=C3=B6ckl?= Date: Wed, 18 Dec 2024 09:12:43 +0100 Subject: [PATCH] Do not truncate last description character --- src/pcd.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pcd.rs b/src/pcd.rs index 682dc1f..d293c7d 100644 --- a/src/pcd.rs +++ b/src/pcd.rs @@ -258,7 +258,7 @@ impl PCD { fn first_str(data: &[u8], max_len: usize) -> Gen4Str { let chunks = data.chunks_exact(2).map(|c| u16::from_le_bytes(c.try_into().expect("string must have even u8s"))); let mut chunks_clone = chunks.clone(); - let len = min(max_len, chunks_clone.position(|e| e == STRING_TERMINATOR).unwrap_or(max_len)).checked_sub(1).unwrap_or(0); + let len = min(max_len, chunks_clone.position(|e| e == STRING_TERMINATOR).unwrap_or(max_len)); let str_vec = chunks.take(len).collect(); @@ -297,11 +297,11 @@ impl PCD { header[PCD_GAMES_OFFSET - PCD_PGT_LENGTH..PCD_GAMES_OFFSET + 2 - PCD_PGT_LENGTH].copy_from_slice(&serialize_games(&des.games).to_be_bytes()); put_str(&mut card_data, &des.comment, PCD_COMMENT_MAX_LENGTH); - + let icons = [des.icons.0,des.icons.1,des.icons.2].iter().flat_map(|i|i.to_le_bytes()).collect::>(); - + card_data[PCD_ICONS_OFFSET - PCD_COMMENT_OFFSET..PCD_ICONS_OFFSET - PCD_COMMENT_OFFSET + 2*3].copy_from_slice(icons.as_slice()); - + card_data[PCD_RECEIVED_OFFSET - PCD_COMMENT_OFFSET..PCD_RECEIVED_OFFSET - PCD_COMMENT_OFFSET + 2].copy_from_slice(&des.received.to_le_bytes()); card_data[PCD_REDISTRIBUTION_OFFSET - PCD_COMMENT_OFFSET] = des.redistribution;