continue implementation
[pspp] / rust / src / main.rs
index 45d0622f0d4e039f09c4973596d2d4a5b1b9078c..473062183ba4a427171370dbcac596ac955b3574 100644 (file)
@@ -17,7 +17,7 @@
 use anyhow::Result;
 use clap::{Parser, ValueEnum};
 use encoding_rs::Encoding;
-use pspp::cooked::decode;
+use pspp::cooked::{decode, encoding_from_headers};
 use pspp::raw::{Reader, Record, Magic};
 use std::fs::File;
 use std::io::BufReader;
@@ -111,7 +111,8 @@ fn dissect(file_name: &Path, max_cases: u64, mode: Mode, encoding: Option<&'stat
         }
         Mode::Cooked => {
             let headers: Vec<Record> = reader.collect::<Result<Vec<_>, _>>()?;
-            let headers = decode(headers, encoding, &|e| eprintln!("{e}"))?;
+            let encoding = encoding_from_headers(&headers, &|e| eprintln!("{e}"))?;
+            let (headers, _) = decode(headers, encoding, &|e| eprintln!("{e}"))?;
             for header in headers {
                 println!("{header:?}");
             }