summary refs log tree commit diff
path: root/src/libstd/ffi/c_str.rs
AgeCommit message (Collapse)AuthorLines
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-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.
2016-09-24Rollup merge of #36018 - durka:patch-28, r=steveklabnikGuillaume Gomez-2/+7
strengthen doc warning about CString::from_raw Saw unsound code using this function on IRC.
2016-09-22Rollup merge of #36423 - GuillaumeGomez:eq_impl, r=pnkfelixJonathan Turner-3/+3
Add missing Eq implementations Part of #36301.
2016-09-18Add missing Eq implementationsGuillaume Gomez-3/+3
2016-09-14add stronger warning to CString::from_rawAlex Burka-2/+7
2016-09-14Rollup merge of #36396 - athulappadan:Default-docs, r=blussGuillaume Gomez-0/+1
Documentation of what Default does for each type Addresses #36265 I haven't changed the following types due to doubts: 1)src/libstd/ffi/c_str.rs 2)src/libcore/iter/sources.rs 3)src/libcore/hash/mod.rs 4)src/libcore/hash/mod.rs 5)src/librustc/middle/privacy.rs r? @steveklabnik
2016-09-11Documentation for default types modifiedathulappadan-1/+1
2016-09-11Documentation of what does for each typeathulappadan-0/+1
2016-09-07Zero first byte of CString on dropAleksey Kladov-3/+25
This should prevent code like ``` let ptr = CString::new("hello").unwrap().as_ptr(); ``` from working by accident.
2016-08-24Use `#[prelude_import]` in `libstd`.Jeffrey Seyfried-10/+2
2016-08-22Auto merge of #35871 - bluss:cstring-new, r=alexcrichtonbors-0/+1
cstring: avoid excessive growth just to 0-terminate Based on following what happens in CString::new("string literal"): 1. Using `Into<Vec<u8>>`, a Vec is allocated with capacity exactly equal to the string's input length. 2. By `v.push(0)`, the Vec is grown to twice capacity, since it was full. 3. By `v.into_boxed_slice()`, the Vec capacity is shrunk to fit the length again. If we use `.reserve_exact(1)` just before the push, then we avoid the capacity doubling that we're going to have to shrink anyway. Growing by just 1 byte means that the step (2) is less likely to have to move the memory to a larger allocation chunk, and that the step (3) does not have to reallocate. Addresses part of #35838