| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2015-04-30 | std: Fix inheriting standard handles on windows | Alex Crichton | -3/+13 | |
| Currently if a standard I/O handle is set to inherited on Windows, no action is taken and the slot in the process information description is set to `INVALID_HANDLE_VALUE`. Due to our passing of `STARTF_USESTDHANDLES`, however, this means that the handle is actually set to nothing and if a child tries to print it will generate an error. This commit fixes this behavior by explicitly creating stdio handles to be placed in these slots by duplicating the current process's I/O handles. This is presumably what previously happened silently by using a file-descriptor-based implementation instead of a `HANDLE`-centric implementation. Along the way this cleans up a lot of code in `Process::spawn` for Windows by ensuring destructors are always run, using more RAII, and limiting the scope of `unsafe` wherever possible. | ||||
| 2015-03-31 | Test fixes and rebase conflicts, round 3 | Alex Crichton | -3/+2 | |
| 2015-03-13 | Fallout of std::old_io deprecation | Alex Crichton | -0/+10 | |
| 2015-02-28 | std: Implement stdio for `std::io` | Alex Crichton | -0/+155 | |
| This is an implementation of RFC 899 and adds stdio functionality to the new `std::io` module. Details of the API can be found on the RFC, but from a high level: * `io::{stdin, stdout, stderr}` constructors are now available. There are also `*_raw` variants for unbuffered and unlocked access. * All handles are globally shared (excluding raw variants). * The stderr handle is no longer buffered. * All handles can be explicitly locked (excluding the raw variants). The `print!` and `println!` machinery has not yet been hooked up to these streams just yet. The `std::fmt::output` module has also not yet been implemented as part of this commit. | ||||
