Vast refactor of pwd.h, add getpwent/setpwent/endpwent
This commit is contained in:
+14
-6
@@ -1,7 +1,15 @@
|
||||
pub fn split(line: &[u8]) -> [&[u8]; 7] {
|
||||
let mut parts: [&[u8]; 7] = [&[]; 7];
|
||||
for (i, part) in line.splitn(7, |b| *b == b':').enumerate() {
|
||||
parts[i] = part;
|
||||
}
|
||||
parts
|
||||
use super::{parsed, passwd};
|
||||
use crate::platform::types::*;
|
||||
|
||||
pub fn split(line: &mut [u8]) -> Option<passwd> {
|
||||
let mut parts = line.split_mut(|&c| c == b'\0');
|
||||
Some(passwd {
|
||||
pw_name: parts.next()?.as_mut_ptr() as *mut c_char,
|
||||
pw_passwd: parts.next()?.as_mut_ptr() as *mut c_char,
|
||||
pw_uid: parsed(parts.next())?,
|
||||
pw_gid: parsed(parts.next())?,
|
||||
pw_gecos: parts.next()?.as_mut_ptr() as *mut c_char,
|
||||
pw_dir: parts.next()?.as_mut_ptr() as *mut c_char,
|
||||
pw_shell: parts.next()?.as_mut_ptr() as *mut c_char,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user