Quellcode durchsuchen

Revert "always use with_extension"

This reverts commit 882815148f1ce5c9dce883b76f10549d8e8f2e9e.
As said by alex this might cause issues when the thread ID contains
dots because the "file extension" would then be replaced instead of
added on when using with_extension.
Johann150 vor 2 Jahren
Ursprung
Commit
56597ee9ac
1 geänderte Dateien mit 15 neuen und 7 gelöschten Zeilen
  1. 15 7
      src/main.rs

+ 15 - 7
src/main.rs

@@ -19,8 +19,18 @@ mod templates;
 mod threading;
 mod util;
 
+use std::ffi::{OsStr, OsString};
+
 const ATOM_ENTRY_LIMIT: usize = 100;
 
+// stole it from the internet
+pub fn append_ext(ext: impl AsRef<OsStr>, path: &PathBuf) -> PathBuf {
+    let mut os_string: OsString = path.into();
+    os_string.push(".");
+    os_string.push(ext.as_ref());
+    os_string.into()
+}
+
 impl Lists {
     fn write_lists(&mut self) {
         std::fs::create_dir_all(&self.out_dir).ok();
@@ -115,24 +125,22 @@ impl List {
             }
             self.thread_topics.push(summary);
             if Config::global().include_html {
-                let html = basepath.with_extension("html");
+                let html = append_ext("html", &basepath);
                 write_if_changed(&html, thread.to_html());
                 files_written.insert(html);
             }
-            let xml = basepath.with_extension("xml");
+            let xml = append_ext("xml", &basepath);
             write_if_changed(&xml, thread.to_xml());
             files_written.insert(xml);
             if Config::global().include_gemini {
-                let gmi = basepath.with_extension("gmi");
+                let gmi = append_ext("gmi", &basepath);
                 write_if_changed(&gmi, thread.to_gmi());
                 files_written.insert(gmi);
             }
 
             for msg in thread.messages {
-                let eml = message_dir
-                    .join(&msg.pathescape_msg_id())
-                    .with_extension("mbox");
-                write_if_changed(&eml, msg.export_mbox());
+                let eml = append_ext("mbox", &message_dir.join(&msg.pathescape_msg_id()));
+                write_if_changed(&eml, &msg.export_mbox());
                 files_written.insert(eml);
             }
         }