aboutsummaryrefslogtreecommitdiff
path: root/src/zip/driver.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/zip/driver.rs')
-rw-r--r--src/zip/driver.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/zip/driver.rs b/src/zip/driver.rs
index 3793e31..99b409d 100644
--- a/src/zip/driver.rs
+++ b/src/zip/driver.rs
@@ -5,7 +5,7 @@ use crate::zip::{
5 BitFlag, CompressionMethod, ZipError, ZipFileInfo, ZipFileReader, ZipFileWriter, ZipResult, 5 BitFlag, CompressionMethod, ZipError, ZipFileInfo, ZipFileReader, ZipFileWriter, ZipResult,
6}; 6};
7use chrono::{DateTime, Local, NaiveDate, NaiveDateTime, NaiveTime}; 7use chrono::{DateTime, Local, NaiveDate, NaiveDateTime, NaiveTime};
8use std::collections::HashMap as Map; 8use std::collections::BTreeMap as Map;
9use std::fs::File; 9use std::fs::File;
10use std::io::{Read, Seek, SeekFrom, Write}; 10use std::io::{Read, Seek, SeekFrom, Write};
11 11
@@ -105,7 +105,7 @@ impl<Io: Read + Seek> ArchiveRead for Zip<Io> {
105 }; 105 };
106 106
107 // Read cd records 107 // Read cd records
108 let mut files = Map::with_capacity(cd_records as usize); 108 let mut files = Map::new();
109 io.seek(SeekFrom::Start(cd_pointer))?; 109 io.seek(SeekFrom::Start(cd_pointer))?;
110 let buf = io.read_vec(cd_size as usize)?; 110 let buf = io.read_vec(cd_size as usize)?;
111 111
@@ -200,6 +200,7 @@ impl<Io: Read + Seek> ArchiveRead for Zip<Io> {
200 ))?; 200 ))?;
201 ep += header.size as usize 201 ep += header.size as usize
202 } 202 }
203 // Skip unrecognized header
203 _ => ep += header.size as usize, 204 _ => ep += header.size as usize,
204 } 205 }
205 } 206 }
@@ -226,9 +227,7 @@ impl<Io: Read + Seek> ArchiveRead for Zip<Io> {
226 } 227 }
227 228
228 fn files(&self) -> Vec<&Self::FileInfo> { 229 fn files(&self) -> Vec<&Self::FileInfo> {
229 let mut files: Vec<&Self::FileInfo> = self.files.values().collect(); 230 self.files.values().collect()
230 files.sort_by_key(|f| &f.name);
231 files
232 } 231 }
233 232
234 fn get_file_info(&self, name: &str) -> ZipResult<&Self::FileInfo> { 233 fn get_file_info(&self, name: &str) -> ZipResult<&Self::FileInfo> {