From 80b315c007760b0ce69d277f4823b5992a086137 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 14 Mar 2018 17:01:39 -0600 Subject: [PATCH] Revert "Build hashsum, join, ln, ls, mkdir, mktemp, nl, ptx, sort on Redox" --- Cargo.toml | 18 +++++++++--------- src/ln/ln.rs | 2 +- src/mkdir/mkdir.rs | 16 +++++++++------- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b8da013dd..ef5358f25 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,10 +65,19 @@ fuchsia = [ ] generic = [ "arch", + "hashsum", "hostname", + "join", "more", + "ln", + "ls", + "mkdir", + "mktemp", + "nl", "nproc", + "ptx", "shred", + "sort", "sync", "tail", "test", @@ -102,21 +111,13 @@ redox_generic = [ "false", "fmt", "fold", - "hashsum", "head", - "join", "link", - "ln", - "ls", - "mkdir", - "mktemp", "mv", - "nl", "od", "paste", "printenv", "printf", - "ptx", "pwd", "readlink", "realpath", @@ -126,7 +127,6 @@ redox_generic = [ "seq", "shuf", "sleep", - "sort", "split", "sum", "tac", diff --git a/src/ln/ln.rs b/src/ln/ln.rs index 5d0cccb92..68e4d173b 100644 --- a/src/ln/ln.rs +++ b/src/ln/ln.rs @@ -14,7 +14,7 @@ extern crate uucore; use std::fs; use std::io::{stdin, BufRead, BufReader, Result}; -#[cfg(any(unix, target_os = "redox"))] +#[cfg(unix)] use std::os::unix::fs::symlink; #[cfg(windows)] use std::os::windows::fs::{symlink_dir, symlink_file}; diff --git a/src/mkdir/mkdir.rs b/src/mkdir/mkdir.rs index 706bb11c8..af8c3d2e9 100644 --- a/src/mkdir/mkdir.rs +++ b/src/mkdir/mkdir.rs @@ -135,18 +135,20 @@ fn mkdir(path: &Path, mode: u16, verbose: bool) -> i32 { show_info!("created directory '{}'", path.display()); } - #[cfg(any(unix, target_os = "redox"))] + #[cfg(unix)] fn chmod(path: &Path, mode: u16) -> i32 { - use fs::{Permissions, set_permissions}; - use std::os::unix::fs::{PermissionsExt}; + use std::ffi::CString; + use std::io::Error; - let mode = Permissions::from_mode(mode as u32); + let directory = + CString::new(path.as_os_str().to_str().unwrap()).unwrap_or_else(|e| crash!(1, "{}", e)); + let mode = mode as libc::mode_t; - if let Err(err) = set_permissions(path, mode) { + if unsafe { libc::chmod(directory.as_ptr(), mode) } != 0 { show_info!( - "{}: error {}", + "{}: errno {}", path.display(), - err + Error::last_os_error().raw_os_error().unwrap() ); return 1; }