diff --git a/src/header/netdb/mod.rs b/src/header/netdb/mod.rs index 7b07784da86e3f49b252e0cf407122da0231315f..e2769eda84041ad6350f400396e62f641a154a2b 100644 --- a/src/header/netdb/mod.rs +++ b/src/header/netdb/mod.rs @@ -317,7 +317,6 @@ fn lookup_addr(addr: in_addr) -> Result<Vec<Vec<u8>>, c_int> { }; let packet_data = packet.compile(); - use core::fmt::Write; let packet_data_len = packet_data.len(); let packet_data_box = packet_data.into_boxed_slice(); let packet_data_ptr = Box::into_raw(packet_data_box) as *mut _ as *mut c_void; @@ -866,10 +865,11 @@ pub unsafe extern "C" fn getservent() -> *const servent { rlb.next(); S_POS = rlb.line_pos(); - let mut iter: SplitWhitespace = r.split_whitespace(); - let mut serv_name: Vec<u8> = iter.next().unwrap().as_bytes().to_vec(); + let comment = r.find('#').unwrap_or(r.len()); + let space = r[..comment].trim_right().rfind(char::is_whitespace).unwrap(); + let mut serv_name = r[..space].trim().as_bytes().to_vec(); serv_name.push(b'\0'); - let port_proto = iter.next().unwrap(); + let port_proto = &r[space..comment].trim(); let mut split = port_proto.split("/"); let mut port = split.next().unwrap().as_bytes().to_vec(); port.push(b'\0'); diff --git a/src/macros.rs b/src/macros.rs index bdccf675b3696821a3029b2fa5bf5e11d1b0bc10..18c7b63398ec3a2b98584551d9501f556824b1ed 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -101,3 +101,13 @@ macro_rules! strto_impl { num }}; } + +#[macro_export] +macro_rules! println { + ($($args:tt),*) => { + { + use core::fmt::Write as _Trait; + writeln!(::platform::FileWriter(1) $(, $args)*).expect("writing a debug message failed"); + } + } +}