Kaynağa Gözat

Avoid unstable c_string conversion features

Florian Gilcher 10 yıl önce
ebeveyn
işleme
e8ea96ee86
2 değiştirilmiş dosya ile 2 ekleme ve 4 silme
  1. 2 2
      src/feature/xattr.rs
  2. 0 2
      src/main.rs

+ 2 - 2
src/feature/xattr.rs

@@ -3,7 +3,7 @@ extern crate libc;
 
 use std::io;
 use std::path::Path;
-
+use std::ffi::CString;
 
 pub const ENABLED: bool = cfg!(feature="git") && cfg!(any(target_os="macos", target_os="linux"));
 
@@ -51,7 +51,7 @@ pub struct Attribute {
 
 #[cfg(any(target_os = "macos", target_os = "linux"))]
 pub fn list_attrs(lister: lister::Lister, path: &Path) -> io::Result<Vec<Attribute>> {
-    let c_path = match path.as_os_str().to_cstring() {
+    let c_path = match path.to_str().and_then(|s| { CString::new(s).ok() }) {
         Some(cstring) => cstring,
         None => return Err(io::Error::new(io::ErrorKind::Other, "Error: path somehow contained a NUL?")),
     };

+ 0 - 2
src/main.rs

@@ -1,5 +1,3 @@
-#![feature(convert)]
-
 #![warn(trivial_casts, trivial_numeric_casts)]
 #![warn(unused_extern_crates, unused_qualifications)]
 #![warn(unused_results)]