about summary refs log tree commit diff
diff options
context:
space:
mode:
authorValerii Hiora <valerii.hiora@gmail.com>2015-02-03 15:30:10 +0200
committerValerii Hiora <valerii.hiora@gmail.com>2015-02-03 15:31:31 +0200
commit3449751ff7fa21aedd1352cdbe9f7d77e2bc0d91 (patch)
tree7b04b88dcc94a9350867d08ea93065a8568ddbf4
parent336c8d2e9c6b276b162bdb3edd43706372e6eddd (diff)
downloadrust-3449751ff7fa21aedd1352cdbe9f7d77e2bc0d91.tar.gz
rust-3449751ff7fa21aedd1352cdbe9f7d77e2bc0d91.zip
iOS: fixed build
-rw-r--r--src/libstd/sys/unix/c.rs1
-rw-r--r--src/libstd/sys/unix/os.rs30
2 files changed, 17 insertions, 14 deletions
diff --git a/src/libstd/sys/unix/c.rs b/src/libstd/sys/unix/c.rs
index 89bd9a23406..50a8e6b73e3 100644
--- a/src/libstd/sys/unix/c.rs
+++ b/src/libstd/sys/unix/c.rs
@@ -143,6 +143,7 @@ extern {
     pub fn sigdelset(set: *mut sigset_t, signum: libc::c_int) -> libc::c_int;
     pub fn sigemptyset(set: *mut sigset_t) -> libc::c_int;
 
+    #[cfg(not(target_os = "ios"))]
     pub fn getpwuid_r(uid: libc::uid_t,
                       pwd: *mut passwd,
                       buf: *mut libc::c_char,
diff --git a/src/libstd/sys/unix/os.rs b/src/libstd/sys/unix/os.rs
index b3f37962945..5004ff713c4 100644
--- a/src/libstd/sys/unix/os.rs
+++ b/src/libstd/sys/unix/os.rs
@@ -307,23 +307,23 @@ pub fn args() -> Args {
     let mut res = Vec::new();
 
     unsafe {
-        let processInfoSel = sel_registerName("processInfo\0".as_ptr());
-        let argumentsSel = sel_registerName("arguments\0".as_ptr());
-        let utf8Sel = sel_registerName("UTF8String\0".as_ptr());
-        let countSel = sel_registerName("count\0".as_ptr());
-        let objectAtSel = sel_registerName("objectAtIndex:\0".as_ptr());
+        let process_info_sel = sel_registerName("processInfo\0".as_ptr());
+        let arguments_sel = sel_registerName("arguments\0".as_ptr());
+        let utf8_sel = sel_registerName("UTF8String\0".as_ptr());
+        let count_sel = sel_registerName("count\0".as_ptr());
+        let object_at_sel = sel_registerName("objectAtIndex:\0".as_ptr());
 
         let klass = objc_getClass("NSProcessInfo\0".as_ptr());
-        let info = objc_msgSend(klass, processInfoSel);
-        let args = objc_msgSend(info, argumentsSel);
+        let info = objc_msgSend(klass, process_info_sel);
+        let args = objc_msgSend(info, arguments_sel);
 
-        let cnt: int = mem::transmute(objc_msgSend(args, countSel));
+        let cnt: int = mem::transmute(objc_msgSend(args, count_sel));
         for i in range(0, cnt) {
-            let tmp = objc_msgSend(args, objectAtSel, i);
+            let tmp = objc_msgSend(args, object_at_sel, i);
             let utf_c_str: *const libc::c_char =
-                mem::transmute(objc_msgSend(tmp, utf8Sel));
-            let bytes = ffi::c_str_to_bytes(&utf_c_str).to_vec();
-            res.push(OsString::from_vec(bytes))
+                mem::transmute(objc_msgSend(tmp, utf8_sel));
+            let bytes = ffi::c_str_to_bytes(&utf_c_str);
+            res.push(OsString::from_str(str::from_utf8(bytes).unwrap()))
         }
     }
 
@@ -455,9 +455,11 @@ pub fn home_dir() -> Option<Path> {
         Path::new(os.into_vec())
     });
 
-    #[cfg(target_os = "android")]
+    #[cfg(any(target_os = "android",
+              target_os = "ios"))]
     unsafe fn fallback() -> Option<OsString> { None }
-    #[cfg(not(target_os = "android"))]
+    #[cfg(not(any(target_os = "android",
+                  target_os = "ios")))]
     unsafe fn fallback() -> Option<OsString> {
         let mut amt = match libc::sysconf(c::_SC_GETPW_R_SIZE_MAX) {
             n if n < 0 => 512 as usize,