]> git.lizzy.rs Git - rust.git/commit
Add os::join_paths, make setenv non-utf8 capable
authorAaron Turon <aturon@mozilla.com>
Mon, 30 Jun 2014 17:19:02 +0000 (10:19 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Thu, 3 Jul 2014 17:55:14 +0000 (10:55 -0700)
commit8877b81f2cccfbbd6720e9ef81a8238fd188a63e
treecf51ee49c428ea4f348855fb24372436b37623e4
parent748b9477f8b0c0fdbb3a45a83bf6f26b5b6c3378
Add os::join_paths, make setenv non-utf8 capable

This commit changes `os` in three ways:

* It adds a `join_paths` function that is the converse to `split_paths`,
  easing manipulation of the `PATH` environment variable according to
  platform conventions.

* **Breaking change**: It changes `split_paths` to no longer drop empty paths, since they are
  meaningful to some shells (where they are synonymous with the current
  working directory).

* It changes `setenv` to take a `BytesContainer` rather than a `&str`
  value, since environment variables may have non-utf8 values on some
  platforms. Since `&str` is a `BytesContainer`, this is *not* a
  breaking change.

Along the way, it also refactors the `split_paths` function so that
`cfg` switches are applied internally (and the function header is given
only once). This fixes a bug: the doc comment had an example for only
one platform.

[breaking-change]
src/libstd/os.rs