Merge PR #2717 (new head aea1d3d12)

# Conflicts:
#	crates/cos/src/document.rs
This commit is contained in:
aiongg
2026-10-17 12:18:46 +00:00
+8 -56
View File
@@ -1668,7 +1668,7 @@ impl Document {
log.push(format!("xref at {off} unreadable ({e}); retrying relative to the header"));
sect.clear();
odd.clear();
(self.read_section(off as usize + self.header_offset, &mut sect, &mut odd, log)?, true)
self.read_section(off as usize + self.header_offset, &mut sect, &mut odd, log)?
}
Err(e) => {
// An unreadable older section loses every object only it locates (the page
@@ -2172,35 +2172,11 @@ endobj
);
}
let xref = out.len();
out.extend_from_slice(
format!(
"xref
{start} 4
0000000000 65535 f
"
)
.as_bytes(),
);
out.extend_from_slice(format!("xref\n{start} 4\n0000000000 65535 f \n").as_bytes());
for o in offsets {
out.extend_from_slice(
format!(
"{o:010} 00000 n
"
)
.as_bytes(),
);
out.extend_from_slice(format!("{o:010} 00000 n \n").as_bytes());
}
out.extend_from_slice(
format!(
"trailer
<< /Size 4 /Root 3 0 R >>
startxref
{xref}
%%EOF
"
)
.as_bytes(),
);
out.extend_from_slice(format!("trailer\n<< /Size 4 /Root 3 0 R >>\nstartxref\n{xref}\n%%EOF\n").as_bytes());
out
}
@@ -2221,39 +2197,15 @@ startxref
fn a_table_that_really_starts_at_1_keeps_its_numbers() {
// Object 1 deleted for good (generation 65535) in a subsection that does start at 1: its
// second row locates object 2, so nothing is shifted.
let mut bytes = b"%PDF-1.7
"
.to_vec();
let mut bytes = b"%PDF-1.7\n".to_vec();
let pages = bytes.len();
bytes.extend_from_slice(
b"2 0 obj
<< /Type /Pages /Kids [] /Count 0 >>
endobj
",
);
bytes.extend_from_slice(b"2 0 obj\n<< /Type /Pages /Kids [] /Count 0 >>\nendobj\n");
let catalog = bytes.len();
bytes.extend_from_slice(
b"3 0 obj
<< /Type /Catalog /Pages 2 0 R >>
endobj
",
);
bytes.extend_from_slice(b"3 0 obj\n<< /Type /Catalog /Pages 2 0 R >>\nendobj\n");
let xref = bytes.len();
bytes.extend_from_slice(
format!(
"xref
0 1
0000000000 65535 f
1 3
0000000000 65535 f
{pages:010} 00000 n
{catalog:010} 00000 n
trailer
<< /Size 4 /Root 3 0 R >>
startxref
{xref}
%%EOF
"
"xref\n0 1\n0000000000 65535 f \n1 3\n0000000000 65535 f \n{pages:010} 00000 n \n{catalog:010} 00000 n \ntrailer\n<< /Size 4 /Root 3 0 R >>\nstartxref\n{xref}\n%%EOF\n"
)
.as_bytes(),
);