summary refs log tree commit diff
path: root/src/libstd/ffi/c_str.rs
AgeCommit message (Collapse)AuthorLines
2017-11-25Implement `Rc`/`Arc` conversions for string-like typesMurarth-0/+57
Provides the following conversion implementations: * `From<`{`CString`,`&CStr`}`>` for {`Arc`,`Rc`}`<CStr>` * `From<`{`OsString`,`&OsStr`}`>` for {`Arc`,`Rc`}`<OsStr>` * `From<`{`PathBuf`,`&Path`}`>` for {`Arc`,`Rc`}`<Path>`
2017-11-09std: Avoid use of `libc` in portable modulesAlex Crichton-3/+3
This commit removes usage of the `libc` crate in "portable" modules like those at the top level and `sys_common`. Instead common types like `*mut u8` or `u32` are used instead of `*mut c_void` or `c_int` as well as switching to platform-specific functions like `sys::strlen` instead of `libc::strlen`.
2017-10-13Rollup merge of #44855 - federicomenaquintero:master, r=steveklabnikkennytm-65/+186
Improved docs for CStr, CString, OsStr, OsString This expands the documentation for those structs and their corresponding traits, per https://github.com/rust-lang/rust/issues/29354
2017-10-11ffi/c_str.rs: Use only one space after a period ending a sentenceFederico Mena Quintero-8/+8
2017-10-11ffi/c_str.rs: Fix method/function confusionFederico Mena Quintero-3/+3
Per https://github.com/rust-lang/rust/pull/44855#discussion_r144049179
2017-10-11ffi/c_str.rs: Make all descriptions have a single-sentence summary at the ↵Federico Mena Quintero-15/+16
beginning Per https://github.com/rust-lang/rust/pull/44855#discussion_r144048837 and subsequent ones.
2017-10-02Remove the implication that CString contains UTF-8 data.Federico Mena Quintero-3/+4
2017-09-28Fix mutability error in CString::from_rawNikolai Vazquez-1/+1
2017-09-28Remove mem::transmute used in CStr conversionsNikolai Vazquez-7/+8
2017-09-25Point from the error structs back to the method that created them, like in ↵Federico Mena Quintero-5/+24
iterators
2017-09-25Overhaul the ffi::CStr documentation.Federico Mena Quintero-30/+46
2017-09-25Overhaul the ffi::CString docsFederico Mena Quintero-31/+115
Explain the struct's reason for being, and its most common usage patterns. Add a bunch of links. Clarify the method docs a bit. Part of https://github.com/rust-lang/rust/issues/29354
2017-09-10Use rvalue promotion to 'static instead of static items.Eduard-Mihai Burtescu-1/+1
2017-08-15Fix typos & us spellingsFourchaux-1/+1
2017-07-25std: Stabilize the `str_{mut,box}_extras` featureAlex Crichton-6/+0
Stabilizes * `<&mut str>::as_bytes_mut` * `<Box<str>>::into_boxed_bytes` * `std::str::from_boxed_utf8_unchecked` * `std::str::from_utf8_mut` * `std::str::from_utf8_unchecked_mut` Closes #41119
2017-07-25std: Stabilize CString/OsString/PathBuf extra methodsAlex Crichton-3/+3
Stabilizes: * `CString::as_c_str` * `CString::into_boxed_c_str` * `CStr::into_c_string` * `OsString::into_boxed_os_str` * `OsStr::into_os_string` * `PathBuf::into_boxed_path` * `PathBuf::into_path_buf` Closes #40380
2017-06-21Update version numbers for From implsOliver Middleton-1/+1
2017-06-21Convert Intos to Froms.Clar Charr-3/+3
2017-06-20Add doc example for `CString::from_raw`.Corey Farwell-0/+21
2017-06-20Add doc example for `FromBytesWithNulError`.Corey Farwell-0/+8
2017-06-20Add doc example for `NulError`.Corey Farwell-0/+8
2017-06-20Add doc example for `CStr::to_str`.Corey Farwell-0/+9
2017-06-20Add doc example for `CString::as_c_str`.Corey Farwell-0/+12
2017-06-20Add doc example for `Box<CStr>::into_c_string`.Corey Farwell-0/+12
2017-06-20Add doc example for `CString::into_boxed_c_str`.Corey Farwell-0/+12
2017-06-20Add doc example for `CStr::to_string_lossy`.Corey Farwell-0/+25
2017-06-20Add error scenario doc examples for `CStr::from_bytes_with_nul`.Corey Farwell-0/+18
2017-06-20Add doc example for `CStr::to_bytes_with_nul`.Corey Farwell-0/+9
2017-06-20Add doc example for `CStr::to_bytes`.Corey Farwell-0/+9
2017-06-20Mark smaller CStr and CString functions as #[inline]Alexander Bulaev-0/+15
2017-06-05Add doc example for `CString::as_bytes`.Corey Farwell-0/+10
2017-06-05Add doc example for `CString::as_bytes_with_nul`.Corey Farwell-0/+10
2017-06-05Add doc example for `CString::into_bytes_with_nul`.Corey Farwell-0/+10
2017-06-05Add doc example for `CString::into_bytes`.Corey Farwell-0/+10
2017-06-05Add doc example for `CString::into_raw`.Corey Farwell-0/+20
2017-05-22Add missing links for CStr and CStringGuillaume Gomez-30/+74
2017-05-20Correct some stability versionsOliver Middleton-2/+2
These were found by running tidy on stable versions of rust and finding features stabilised with the wrong version numbers.
2017-05-09Remove wrong or outdated info from CString docs.Matt Brubeck-6/+4
2017-04-09Auto merge of #41095 - clarcharr:as_extras, r=alexcrichtonbors-0/+6
Add as_c_str Again, tying up some consistencies with `CString`.
2017-04-07Add as_c_str.Clar Charr-0/+6
2017-04-06Remove some CStr transmutes.Clar Charr-2/+3
2017-03-15Auto merge of #40009 - clarcharr:box_to_buf, r=alexcrichtonbors-7/+26
Leftovers from #39594; From<Box> impls These are a few more impls that follow the same reasoning as those from #39594. What's included: * `From<Box<str>> for String` * `From<Box<[T]>> for Vec<T>` * `From<Box<CStr>> for CString` * `From<Box<OsStr>> for OsString` * `From<Box<Path>> for PathBuf` * `Into<Box<str>> for String` * `Into<Box<[T]>> for Vec<T>` * `Into<Box<CStr>> for CString` * `Into<Box<OsStr>> for OsString` * `Into<Box<Path>> for PathBuf` * `<Box<CStr>>::into_c_string` * `<Box<OsStr>>::into_os_string` * `<Box<Path>>::into_path_buf` * Tracking issue for latter three methods + three from previous PR. Currently, the opposite direction isn't doable with `From` (only `Into`) because of the separation between `liballoc` and `libcollections`. I'm holding off on those for a later PR.
2017-03-10Add From<Box<..>> implementations.Clar Charr-7/+26
2017-03-09Distinguish the ways `CStr::from_bytes_with_nul` can failTobias Bucher-6/+40
2017-02-21changed stability annotationslukaramu-2/+2
Changed stability annotations for the new Error and Display impls for std::ffi::FromBytesWithNulError as they aren't subject to stability the same way.
2017-02-19added Error and Display impl for std::ffi::FromBytesWithNulErrorlukaramu-0/+14
2017-02-14Conversions between CStr/OsStr/Path and boxes.Clar Charr-1/+41
2016-11-08Slightly optimise CStringOliver Middleton-1/+1
Avoid a reallocation in CString::from and CStr::to_owned.
2016-10-03std: Stabilize and deprecate APIs for 1.13Alex Crichton-3/+4
This commit is intended to be backported to the 1.13 branch, and works with the following APIs: Stabilized * `i32::checked_abs` * `i32::wrapping_abs` * `i32::overflowing_abs` * `RefCell::try_borrow` * `RefCell::try_borrow_mut` * `DefaultHasher` * `DefaultHasher::new` * `DefaultHasher::default` Deprecated * `BinaryHeap::push_pop` * `BinaryHeap::replace` * `SipHash13` * `SipHash24` * `SipHasher` - use `DefaultHasher` instead in the `std::collections::hash_map` module Closes #28147 Closes #34767 Closes #35057 Closes #35070
2016-09-26Remove CString drop test.Aleksey Kladov-1/+3
The test relies on the undefined behavior, and so may fail in some circumstances. This can be worked around by stubbing a memory allocator in the test, but it is a bit of work, and LLVM could still theoretically eliminate the write of the zero byte in release mode (which is intended). So let's just remove the test and mark the function as inline. It shouldn't be optimized away when inlined into the debug build of user's code.