소스 검색

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 2 년 전
부모
커밋
56597ee9ac
1개의 변경된 파일15개의 추가작업 그리고 7개의 파일을 삭제
  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);
             }
         }