Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
c54427dd
R
Rust
项目概览
int
/
Rust
12 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c54427dd
编写于
11月 22, 2013
作者:
P
Patrick Walton
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
libstd: Change `Path::new` to `Path::init`.
上级
6c672ee0
变更
40
展开全部
隐藏空白更改
内联
并排
Showing
40 changed file
with
552 addition
and
547 deletion
+552
-547
src/compiletest/compiletest.rs
src/compiletest/compiletest.rs
+6
-6
src/compiletest/header.rs
src/compiletest/header.rs
+2
-2
src/compiletest/runtest.rs
src/compiletest/runtest.rs
+2
-2
src/libextra/glob.rs
src/libextra/glob.rs
+3
-3
src/libextra/terminfo/searcher.rs
src/libextra/terminfo/searcher.rs
+5
-5
src/libextra/test.rs
src/libextra/test.rs
+3
-3
src/librustc/back/rpath.rs
src/librustc/back/rpath.rs
+9
-9
src/librustc/driver/driver.rs
src/librustc/driver/driver.rs
+2
-2
src/librustc/lib.rs
src/librustc/lib.rs
+3
-3
src/librustc/metadata/creader.rs
src/librustc/metadata/creader.rs
+2
-2
src/librustc/metadata/filesearch.rs
src/librustc/metadata/filesearch.rs
+2
-2
src/librustdoc/html/render.rs
src/librustdoc/html/render.rs
+2
-2
src/librustdoc/lib.rs
src/librustdoc/lib.rs
+7
-7
src/librustpkg/api.rs
src/librustpkg/api.rs
+3
-3
src/librustpkg/lib.rs
src/librustpkg/lib.rs
+8
-8
src/librustpkg/package_id.rs
src/librustpkg/package_id.rs
+3
-3
src/librustpkg/package_source.rs
src/librustpkg/package_source.rs
+3
-3
src/librustpkg/tests.rs
src/librustpkg/tests.rs
+49
-45
src/librustpkg/util.rs
src/librustpkg/util.rs
+3
-3
src/librustuv/file.rs
src/librustuv/file.rs
+3
-3
src/libstd/io/fs.rs
src/libstd/io/fs.rs
+24
-24
src/libstd/io/mod.rs
src/libstd/io/mod.rs
+1
-1
src/libstd/io/native/file.rs
src/libstd/io/native/file.rs
+9
-8
src/libstd/io/native/process.rs
src/libstd/io/native/process.rs
+1
-1
src/libstd/os.rs
src/libstd/os.rs
+17
-17
src/libstd/path/mod.rs
src/libstd/path/mod.rs
+13
-13
src/libstd/path/posix.rs
src/libstd/path/posix.rs
+171
-171
src/libstd/path/windows.rs
src/libstd/path/windows.rs
+172
-172
src/libstd/rand/os.rs
src/libstd/rand/os.rs
+1
-1
src/libstd/rt/test.rs
src/libstd/rt/test.rs
+1
-1
src/libstd/run.rs
src/libstd/run.rs
+2
-2
src/libstd/unstable/dynamic_lib.rs
src/libstd/unstable/dynamic_lib.rs
+1
-1
src/libsyntax/ext/source_util.rs
src/libsyntax/ext/source_util.rs
+4
-4
src/libsyntax/parse/parser.rs
src/libsyntax/parse/parser.rs
+2
-2
src/test/bench/core-std.rs
src/test/bench/core-std.rs
+1
-1
src/test/bench/shootout-fasta.rs
src/test/bench/shootout-fasta.rs
+1
-1
src/test/run-pass/glob-std.rs
src/test/run-pass/glob-std.rs
+3
-3
src/test/run-pass/issue-3424.rs
src/test/run-pass/issue-3424.rs
+1
-1
src/test/run-pass/stat.rs
src/test/run-pass/stat.rs
+1
-1
src/test/run-pass/tempfile.rs
src/test/run-pass/tempfile.rs
+6
-6
未找到文件。
src/compiletest/compiletest.rs
浏览文件 @
c54427dd
...
...
@@ -103,15 +103,15 @@ pub fn parse_config(args: ~[~str]) -> config {
}
fn
opt_path
(
m
:
&
getopts
::
Matches
,
nm
:
&
str
)
->
Path
{
Path
::
new
(
m
.opt_str
(
nm
)
.unwrap
())
Path
::
init
(
m
.opt_str
(
nm
)
.unwrap
())
}
config
{
compile_lib_path
:
matches
.opt_str
(
"compile-lib-path"
)
.unwrap
(),
run_lib_path
:
matches
.opt_str
(
"run-lib-path"
)
.unwrap
(),
rustc_path
:
opt_path
(
matches
,
"rustc-path"
),
clang_path
:
matches
.opt_str
(
"clang-path"
)
.map
(|
s
|
Path
::
new
(
s
)),
llvm_bin_path
:
matches
.opt_str
(
"llvm-bin-path"
)
.map
(|
s
|
Path
::
new
(
s
)),
clang_path
:
matches
.opt_str
(
"clang-path"
)
.map
(|
s
|
Path
::
init
(
s
)),
llvm_bin_path
:
matches
.opt_str
(
"llvm-bin-path"
)
.map
(|
s
|
Path
::
init
(
s
)),
src_base
:
opt_path
(
matches
,
"src-base"
),
build_base
:
opt_path
(
matches
,
"build-base"
),
aux_base
:
opt_path
(
matches
,
"aux-base"
),
...
...
@@ -124,10 +124,10 @@ fn opt_path(m: &getopts::Matches, nm: &str) -> Path {
}
else
{
None
},
logfile
:
matches
.opt_str
(
"logfile"
)
.map
(|
s
|
Path
::
new
(
s
)),
save_metrics
:
matches
.opt_str
(
"save-metrics"
)
.map
(|
s
|
Path
::
new
(
s
)),
logfile
:
matches
.opt_str
(
"logfile"
)
.map
(|
s
|
Path
::
init
(
s
)),
save_metrics
:
matches
.opt_str
(
"save-metrics"
)
.map
(|
s
|
Path
::
init
(
s
)),
ratchet_metrics
:
matches
.opt_str
(
"ratchet-metrics"
)
.map
(|
s
|
Path
::
new
(
s
)),
matches
.opt_str
(
"ratchet-metrics"
)
.map
(|
s
|
Path
::
init
(
s
)),
ratchet_noise_percent
:
matches
.opt_str
(
"ratchet-noise-percent"
)
.and_then
(|
s
|
from_str
::
<
f64
>
(
s
)),
runtool
:
matches
.opt_str
(
"runtool"
),
...
...
src/compiletest/header.rs
浏览文件 @
c54427dd
...
...
@@ -160,10 +160,10 @@ fn parse_exec_env(line: &str) -> Option<(~str, ~str)> {
fn
parse_pp_exact
(
line
:
&
str
,
testfile
:
&
Path
)
->
Option
<
Path
>
{
match
parse_name_value_directive
(
line
,
~
"pp-exact"
)
{
Some
(
s
)
=>
Some
(
Path
::
new
(
s
)),
Some
(
s
)
=>
Some
(
Path
::
init
(
s
)),
None
=>
{
if
parse_name_directive
(
line
,
"pp-exact"
)
{
testfile
.filename
()
.map
(|
s
|
Path
::
new
(
s
))
testfile
.filename
()
.map
(|
s
|
Path
::
init
(
s
))
}
else
{
None
}
...
...
src/compiletest/runtest.rs
浏览文件 @
c54427dd
...
...
@@ -45,7 +45,7 @@ pub fn run_metrics(config: config, testfile: ~str, mm: &mut MetricMap) {
// We're going to be dumping a lot of info. Start on a new line.
print!
(
"
\n\n
"
);
}
let
testfile
=
Path
::
new
(
testfile
);
let
testfile
=
Path
::
init
(
testfile
);
debug!
(
"running {}"
,
testfile
.display
());
let
props
=
load_props
(
&
testfile
);
debug!
(
"loaded props"
);
...
...
@@ -852,7 +852,7 @@ fn aux_output_dir_name(config: &config, testfile: &Path) -> Path {
}
fn
output_testname
(
testfile
:
&
Path
)
->
Path
{
Path
::
new
(
testfile
.filestem
()
.unwrap
())
Path
::
init
(
testfile
.filestem
()
.unwrap
())
}
fn
output_base_name
(
config
:
&
config
,
testfile
:
&
Path
)
->
Path
{
...
...
src/libextra/glob.rs
浏览文件 @
c54427dd
...
...
@@ -90,7 +90,7 @@ fn check_windows_verbatim(_: &Path) -> bool { false }
// calculate root this way to handle volume-relative Windows paths correctly
let
mut
root
=
os
::
getcwd
();
let
pat_root
=
Path
::
new
(
pattern
)
.root_path
();
let
pat_root
=
Path
::
init
(
pattern
)
.root_path
();
if
pat_root
.is_some
()
{
if
check_windows_verbatim
(
pat_root
.get_ref
())
{
// XXX: How do we want to handle verbatim paths? I'm inclined to return nothing,
...
...
@@ -766,9 +766,9 @@ fn test_pattern_matches_require_literal_leading_dot() {
#[test]
fn
test_matches_path
()
{
// on windows, (Path::
new
("a/b").as_str().unwrap() == "a\\b"), so this
// on windows, (Path::
init
("a/b").as_str().unwrap() == "a\\b"), so this
// tests that / and \ are considered equivalent on windows
assert
!
(
Pattern
::
new
(
"a/b"
)
.matches_path
(
&
Path
::
new
(
"a/b"
)));
assert
!
(
Pattern
::
new
(
"a/b"
)
.matches_path
(
&
Path
::
init
(
"a/b"
)));
}
}
src/libextra/terminfo/searcher.rs
浏览文件 @
c54427dd
...
...
@@ -29,7 +29,7 @@ pub fn get_dbpath_for_term(term: &str) -> Option<~Path> {
// Find search directory
match
getenv
(
"TERMINFO"
)
{
Some
(
dir
)
=>
dirs_to_search
.push
(
Path
::
new
(
dir
)),
Some
(
dir
)
=>
dirs_to_search
.push
(
Path
::
init
(
dir
)),
None
=>
{
if
homedir
.is_some
()
{
// ncurses compatability;
...
...
@@ -38,17 +38,17 @@ pub fn get_dbpath_for_term(term: &str) -> Option<~Path> {
match
getenv
(
"TERMINFO_DIRS"
)
{
Some
(
dirs
)
=>
for
i
in
dirs
.split
(
':'
)
{
if
i
==
""
{
dirs_to_search
.push
(
Path
::
new
(
"/usr/share/terminfo"
));
dirs_to_search
.push
(
Path
::
init
(
"/usr/share/terminfo"
));
}
else
{
dirs_to_search
.push
(
Path
::
new
(
i
.to_owned
()));
dirs_to_search
.push
(
Path
::
init
(
i
.to_owned
()));
}
},
// Found nothing, use the default paths
// /usr/share/terminfo is the de facto location, but it seems
// Ubuntu puts it in /lib/terminfo
None
=>
{
dirs_to_search
.push
(
Path
::
new
(
"/usr/share/terminfo"
));
dirs_to_search
.push
(
Path
::
new
(
"/lib/terminfo"
));
dirs_to_search
.push
(
Path
::
init
(
"/usr/share/terminfo"
));
dirs_to_search
.push
(
Path
::
init
(
"/lib/terminfo"
));
}
}
}
...
...
src/libextra/test.rs
浏览文件 @
c54427dd
...
...
@@ -276,20 +276,20 @@ pub fn parse_opts(args: &[~str]) -> Option<OptRes> {
let
run_ignored
=
matches
.opt_present
(
"ignored"
);
let
logfile
=
matches
.opt_str
(
"logfile"
);
let
logfile
=
logfile
.map
(|
s
|
Path
::
new
(
s
));
let
logfile
=
logfile
.map
(|
s
|
Path
::
init
(
s
));
let
run_benchmarks
=
matches
.opt_present
(
"bench"
);
let
run_tests
=
!
run_benchmarks
||
matches
.opt_present
(
"test"
);
let
ratchet_metrics
=
matches
.opt_str
(
"ratchet-metrics"
);
let
ratchet_metrics
=
ratchet_metrics
.map
(|
s
|
Path
::
new
(
s
));
let
ratchet_metrics
=
ratchet_metrics
.map
(|
s
|
Path
::
init
(
s
));
let
ratchet_noise_percent
=
matches
.opt_str
(
"ratchet-noise-percent"
);
let
ratchet_noise_percent
=
ratchet_noise_percent
.map
(|
s
|
from_str
::
<
f64
>
(
s
)
.unwrap
());
let
save_metrics
=
matches
.opt_str
(
"save-metrics"
);
let
save_metrics
=
save_metrics
.map
(|
s
|
Path
::
new
(
s
));
let
save_metrics
=
save_metrics
.map
(|
s
|
Path
::
init
(
s
));
let
test_shard
=
matches
.opt_str
(
"test-shard"
);
let
test_shard
=
opt_shard
(
test_shard
);
...
...
src/librustc/back/rpath.rs
浏览文件 @
c54427dd
...
...
@@ -148,7 +148,7 @@ pub fn get_install_prefix_rpath(target_triple: &str) -> ~str {
let
install_prefix
=
env!
(
"CFG_PREFIX"
);
let
tlib
=
filesearch
::
relative_target_lib_path
(
target_triple
);
let
mut
path
=
Path
::
new
(
install_prefix
);
let
mut
path
=
Path
::
init
(
install_prefix
);
path
.push
(
&
tlib
);
let
path
=
os
::
make_absolute
(
&
path
);
// FIXME (#9639): This needs to handle non-utf8 paths
...
...
@@ -183,7 +183,7 @@ fn test_rpaths_to_flags() {
#[test]
fn
test_prefix_rpath
()
{
let
res
=
get_install_prefix_rpath
(
"triple"
);
let
mut
d
=
Path
::
new
(
env!
(
"CFG_PREFIX"
));
let
mut
d
=
Path
::
init
(
env!
(
"CFG_PREFIX"
));
d
.push
(
"lib/rustc/triple/lib"
);
debug!
(
"test_prefix_path: {} vs. {}"
,
res
,
...
...
@@ -194,7 +194,7 @@ fn test_prefix_rpath() {
#[test]
fn
test_prefix_rpath_abs
()
{
let
res
=
get_install_prefix_rpath
(
"triple"
);
assert
!
(
Path
::
new
(
res
)
.is_absolute
());
assert
!
(
Path
::
init
(
res
)
.is_absolute
());
}
#[test]
...
...
@@ -218,7 +218,7 @@ fn test_minimize2() {
fn
test_rpath_relative
()
{
let
o
=
abi
::
OsLinux
;
let
res
=
get_rpath_relative_to_output
(
o
,
&
Path
::
new
(
"bin/rustc"
),
&
Path
::
new
(
"lib/libstd.so"
));
&
Path
::
init
(
"bin/rustc"
),
&
Path
::
init
(
"lib/libstd.so"
));
assert_eq!
(
res
.as_slice
(),
"$ORIGIN/../lib"
);
}
...
...
@@ -227,7 +227,7 @@ fn test_rpath_relative() {
fn
test_rpath_relative
()
{
let
o
=
abi
::
OsFreebsd
;
let
res
=
get_rpath_relative_to_output
(
o
,
&
Path
::
new
(
"bin/rustc"
),
&
Path
::
new
(
"lib/libstd.so"
));
&
Path
::
init
(
"bin/rustc"
),
&
Path
::
init
(
"lib/libstd.so"
));
assert_eq!
(
res
.as_slice
(),
"$ORIGIN/../lib"
);
}
...
...
@@ -236,15 +236,15 @@ fn test_rpath_relative() {
fn
test_rpath_relative
()
{
let
o
=
abi
::
OsMacos
;
let
res
=
get_rpath_relative_to_output
(
o
,
&
Path
::
new
(
"bin/rustc"
),
&
Path
::
new
(
"lib/libstd.so"
));
&
Path
::
init
(
"bin/rustc"
),
&
Path
::
init
(
"lib/libstd.so"
));
assert_eq!
(
res
.as_slice
(),
"@loader_path/../lib"
);
}
#[test]
fn
test_get_absolute_rpath
()
{
let
res
=
get_absolute_rpath
(
&
Path
::
new
(
"lib/libstd.so"
));
let
lib
=
os
::
make_absolute
(
&
Path
::
new
(
"lib"
));
let
res
=
get_absolute_rpath
(
&
Path
::
init
(
"lib/libstd.so"
));
let
lib
=
os
::
make_absolute
(
&
Path
::
init
(
"lib"
));
debug!
(
"test_get_absolute_rpath: {} vs. {}"
,
res
.to_str
(),
lib
.display
());
...
...
src/librustc/driver/driver.rs
浏览文件 @
c54427dd
...
...
@@ -719,7 +719,7 @@ pub fn build_session_options(binary: @str,
}
else
if
matches
.opt_present
(
"emit-llvm"
)
{
link
::
output_type_bitcode
}
else
{
link
::
output_type_exe
};
let
sysroot_opt
=
matches
.opt_str
(
"sysroot"
)
.map
(|
m
|
@
Path
::
new
(
m
));
let
sysroot_opt
=
matches
.opt_str
(
"sysroot"
)
.map
(|
m
|
@
Path
::
init
(
m
));
let
target
=
matches
.opt_str
(
"target"
)
.unwrap_or
(
host_triple
());
let
target_cpu
=
matches
.opt_str
(
"target-cpu"
)
.unwrap_or
(
~
"generic"
);
let
target_feature
=
matches
.opt_str
(
"target-feature"
)
.unwrap_or
(
~
""
);
...
...
@@ -753,7 +753,7 @@ pub fn build_session_options(binary: @str,
let
statik
=
debugging_opts
&
session
::
statik
!=
0
;
let
addl_lib_search_paths
=
matches
.opt_strs
(
"L"
)
.map
(|
s
|
{
Path
::
new
(
s
.as_slice
())
Path
::
init
(
s
.as_slice
())
})
.move_iter
()
.collect
();
let
linker
=
matches
.opt_str
(
"linker"
);
let
linker_args
=
matches
.opt_strs
(
"link-args"
)
.flat_map
(
|
a
|
{
...
...
src/librustc/lib.rs
浏览文件 @
c54427dd
...
...
@@ -248,7 +248,7 @@ pub fn run_compiler(args: &[~str], demitter: @diagnostic::Emitter) {
let
src
=
str
::
from_utf8
(
io
::
stdin
()
.read_to_end
());
str_input
(
src
.to_managed
())
}
else
{
file_input
(
Path
::
new
(
ifile
))
file_input
(
Path
::
init
(
ifile
))
}
}
_
=>
early_error
(
demitter
,
"multiple input filenames provided"
)
...
...
@@ -256,8 +256,8 @@ pub fn run_compiler(args: &[~str], demitter: @diagnostic::Emitter) {
let
sopts
=
build_session_options
(
binary
,
matches
,
demitter
);
let
sess
=
build_session
(
sopts
,
demitter
);
let
odir
=
matches
.opt_str
(
"out-dir"
)
.map
(|
o
|
Path
::
new
(
o
));
let
ofile
=
matches
.opt_str
(
"o"
)
.map
(|
o
|
Path
::
new
(
o
));
let
odir
=
matches
.opt_str
(
"out-dir"
)
.map
(|
o
|
Path
::
init
(
o
));
let
ofile
=
matches
.opt_str
(
"o"
)
.map
(|
o
|
Path
::
init
(
o
));
let
cfg
=
build_configuration
(
sess
);
let
pretty
=
matches
.opt_default
(
"pretty"
,
"normal"
)
.map
(|
a
|
{
parse_pretty
(
sess
,
a
)
...
...
src/librustc/metadata/creader.rs
浏览文件 @
c54427dd
...
...
@@ -143,7 +143,7 @@ fn visit_view_item(e: @mut Env, i: &ast::view_item) {
let
meta_items
=
match
path_opt
{
None
=>
meta_items
.clone
(),
Some
((
p
,
_
path_str_style
))
=>
{
let
p_path
=
Path
::
new
(
p
);
let
p_path
=
Path
::
init
(
p
);
match
p_path
.filestem_str
()
{
None
|
Some
(
""
)
=>
e
.diag
.span_bug
(
i
.span
,
"Bad package path in `extern mod` item"
),
...
...
@@ -275,7 +275,7 @@ fn resolve_crate(e: @mut Env,
};
let
(
lident
,
ldata
)
=
loader
::
load_library_crate
(
&
load_ctxt
);
let
cfilename
=
Path
::
new
(
lident
);
let
cfilename
=
Path
::
init
(
lident
);
let
cdata
=
ldata
;
let
attrs
=
decoder
::
get_crate_attributes
(
cdata
);
...
...
src/librustc/metadata/filesearch.rs
浏览文件 @
c54427dd
...
...
@@ -145,7 +145,7 @@ pub fn search(filesearch: @FileSearch, pick: pick) {
pub
fn
relative_target_lib_path
(
target_triple
:
&
str
)
->
Path
{
let
dir
=
libdir
();
let
mut
p
=
Path
::
new
(
dir
.as_slice
());
let
mut
p
=
Path
::
init
(
dir
.as_slice
());
assert
!
(
p
.is_relative
());
p
.push
(
"rustc"
);
p
.push
(
target_triple
);
...
...
@@ -199,7 +199,7 @@ pub fn rust_path() -> ~[Path] {
Some
(
env_path
)
=>
{
let
env_path_components
:
~
[
&
str
]
=
env_path
.split_str
(
PATH_ENTRY_SEPARATOR
)
.collect
();
env_path_components
.map
(|
&
s
|
Path
::
new
(
s
))
env_path_components
.map
(|
&
s
|
Path
::
init
(
s
))
}
None
=>
~
[]
};
...
...
src/librustdoc/html/render.rs
浏览文件 @
c54427dd
...
...
@@ -336,7 +336,7 @@ fn mkdir(path: &Path) {
/// static HTML tree.
// FIXME (#9639): The closure should deal with &[u8] instead of &str
fn
clean_srcpath
(
src
:
&
[
u8
],
f
:
|
&
str
|)
{
let
p
=
Path
::
new
(
src
);
let
p
=
Path
::
init
(
src
);
if
p
.as_vec
()
!=
bytes!
(
"."
)
{
for
c
in
p
.str_components
()
.map
(|
x
|
x
.unwrap
())
{
if
".."
==
c
{
...
...
@@ -411,7 +411,7 @@ fn fold_item(&mut self, item: clean::Item) -> Option<clean::Item> {
impl
<
'self
>
SourceCollector
<
'self
>
{
/// Renders the given filename into its corresponding HTML source file.
fn
emit_source
(
&
mut
self
,
filename
:
&
str
)
->
bool
{
let
p
=
Path
::
new
(
filename
);
let
p
=
Path
::
init
(
filename
);
// Read the contents of the file
let
mut
contents
=
~
[];
...
...
src/librustdoc/lib.rs
浏览文件 @
c54427dd
...
...
@@ -140,13 +140,13 @@ pub fn main_args(args: &[~str]) -> int {
info!
(
"going to format"
);
let
started
=
time
::
precise_time_ns
();
let
output
=
matches
.opt_str
(
"o"
)
.map
(|
s
|
Path
::
new
(
s
));
let
output
=
matches
.opt_str
(
"o"
)
.map
(|
s
|
Path
::
init
(
s
));
match
matches
.opt_str
(
"w"
)
{
Some
(
~
"html"
)
|
None
=>
{
html
::
render
::
run
(
crate
,
output
.unwrap_or
(
Path
::
new
(
"doc"
)))
html
::
render
::
run
(
crate
,
output
.unwrap_or
(
Path
::
init
(
"doc"
)))
}
Some
(
~
"json"
)
=>
{
json_output
(
crate
,
res
,
output
.unwrap_or
(
Path
::
new
(
"doc.json"
)))
json_output
(
crate
,
res
,
output
.unwrap_or
(
Path
::
init
(
"doc.json"
)))
}
Some
(
s
)
=>
{
println!
(
"unknown output format: {}"
,
s
);
...
...
@@ -194,9 +194,9 @@ fn rust_input(cratefile: &str, matches: &getopts::Matches) -> Output {
let
mut
plugins
=
matches
.opt_strs
(
"plugins"
);
// First, parse the crate and extract all relevant information.
let
libs
=
Cell
::
new
(
matches
.opt_strs
(
"L"
)
.map
(|
s
|
Path
::
new
(
s
.as_slice
())));
let
libs
=
Cell
::
new
(
matches
.opt_strs
(
"L"
)
.map
(|
s
|
Path
::
init
(
s
.as_slice
())));
let
cfgs
=
Cell
::
new
(
matches
.opt_strs
(
"cfg"
));
let
cr
=
Cell
::
new
(
Path
::
new
(
cratefile
));
let
cr
=
Cell
::
new
(
Path
::
init
(
cratefile
));
info!
(
"starting to run rustc"
);
let
(
crate
,
analysis
)
=
do
std
::
task
::
try
{
let
cr
=
cr
.take
();
...
...
@@ -238,7 +238,7 @@ fn rust_input(cratefile: &str, matches: &getopts::Matches) -> Output {
// Load all plugins/passes into a PluginManager
let
path
=
matches
.opt_str
(
"plugin-path"
)
.unwrap_or
(
~
"/tmp/rustdoc_ng/plugins"
);
let
mut
pm
=
plugins
::
PluginManager
::
new
(
Path
::
new
(
path
));
let
mut
pm
=
plugins
::
PluginManager
::
new
(
Path
::
init
(
path
));
for
pass
in
passes
.iter
()
{
let
plugin
=
match
PASSES
.iter
()
.position
(|
&
(
p
,
_
,
_
)|
p
==
*
pass
)
{
Some
(
i
)
=>
PASSES
[
i
]
.n1
(),
...
...
@@ -262,7 +262,7 @@ fn rust_input(cratefile: &str, matches: &getopts::Matches) -> Output {
/// This input format purely deserializes the json output file. No passes are
/// run over the deserialized output.
fn
json_input
(
input
:
&
str
)
->
Result
<
Output
,
~
str
>
{
let
input
=
match
File
::
open
(
&
Path
::
new
(
input
))
{
let
input
=
match
File
::
open
(
&
Path
::
init
(
input
))
{
Some
(
f
)
=>
f
,
None
=>
return
Err
(
format!
(
"couldn't open {} for reading"
,
input
)),
};
...
...
src/librustpkg/api.rs
浏览文件 @
c54427dd
...
...
@@ -56,12 +56,12 @@ pub fn new_default_context(c: workcache::Context, p: Path) -> BuildContext {
}
fn
file_is_fresh
(
path
:
&
str
,
in_hash
:
&
str
)
->
bool
{
let
path
=
Path
::
new
(
path
);
let
path
=
Path
::
init
(
path
);
path
.exists
()
&&
in_hash
==
digest_file_with_date
(
&
path
)
}
fn
binary_is_fresh
(
path
:
&
str
,
in_hash
:
&
str
)
->
bool
{
let
path
=
Path
::
new
(
path
);
let
path
=
Path
::
init
(
path
);
path
.exists
()
&&
in_hash
==
digest_only_date
(
&
path
)
}
...
...
@@ -189,7 +189,7 @@ pub fn my_workspace(context: &Context, package_name: &str) -> Path {
let
pkgid
=
PkgId
::
new
(
package_name
);
let
workspaces
=
pkg_parent_workspaces
(
context
,
&
pkgid
);
if
workspaces
.is_empty
()
{
bad_pkg_id
.raise
((
Path
::
new
(
package_name
),
package_name
.to_owned
()));
bad_pkg_id
.raise
((
Path
::
init
(
package_name
),
package_name
.to_owned
()));
}
workspaces
[
0
]
}
...
...
src/librustpkg/lib.rs
浏览文件 @
c54427dd
...
...
@@ -483,7 +483,7 @@ fn build(&self, pkg_src: &mut PkgSrc, what_to_build: &WhatToBuild) {
})
});
// We always *run* the package script
let
(
cfgs
,
hook_result
)
=
PkgScript
::
run_custom
(
&
Path
::
new
(
pkg_exe
),
&
sysroot
);
let
(
cfgs
,
hook_result
)
=
PkgScript
::
run_custom
(
&
Path
::
init
(
pkg_exe
),
&
sysroot
);
debug!
(
"Command return code = {:?}"
,
hook_result
);
if
!
hook_result
.success
()
{
fail
!
(
"Error running custom build command"
)
...
...
@@ -509,7 +509,7 @@ fn build(&self, pkg_src: &mut PkgSrc, what_to_build: &WhatToBuild) {
// Find crates inside the workspace
Everything
=>
pkg_src
.find_crates
(),
// Find only tests
Tests
=>
pkg_src
.find_crates_with_filter
(|
s
|
{
is_test
(
&
Path
::
new
(
s
))
}),
Tests
=>
pkg_src
.find_crates_with_filter
(|
s
|
{
is_test
(
&
Path
::
init
(
s
))
}),
// Don't infer any crates -- just build the one that was requested
JustOne
(
ref
p
)
=>
{
// We expect that p is relative to the package source's start directory,
...
...
@@ -588,7 +588,7 @@ fn install(&self, mut pkg_src: PkgSrc, what: &WhatToBuild) -> (~[Path], ~[(~str,
let
result
=
self
.install_no_build
(
pkg_src
.build_workspace
(),
build_inputs
,
&
pkg_src
.destination_workspace
,
&
id
)
.map
(|
s
|
Path
::
new
(
s
.as_slice
()));
&
id
)
.map
(|
s
|
Path
::
init
(
s
.as_slice
()));
installed_files
=
installed_files
+
result
;
note
(
format!
(
"Installed package {} to {}"
,
id
.to_str
(),
...
...
@@ -709,10 +709,10 @@ fn test(&self, pkgid: &PkgId, workspace: &Path) {
}
fn
init
(
&
self
)
{
fs
::
mkdir_recursive
(
&
Path
::
new
(
"src"
),
io
::
UserRWX
);
fs
::
mkdir_recursive
(
&
Path
::
new
(
"bin"
),
io
::
UserRWX
);
fs
::
mkdir_recursive
(
&
Path
::
new
(
"lib"
),
io
::
UserRWX
);
fs
::
mkdir_recursive
(
&
Path
::
new
(
"build"
),
io
::
UserRWX
);
fs
::
mkdir_recursive
(
&
Path
::
init
(
"src"
),
io
::
UserRWX
);
fs
::
mkdir_recursive
(
&
Path
::
init
(
"bin"
),
io
::
UserRWX
);
fs
::
mkdir_recursive
(
&
Path
::
init
(
"lib"
),
io
::
UserRWX
);
fs
::
mkdir_recursive
(
&
Path
::
init
(
"build"
),
io
::
UserRWX
);
}
fn
uninstall
(
&
self
,
_
id
:
&
str
,
_
vers
:
Option
<~
str
>
)
{
...
...
@@ -894,7 +894,7 @@ pub fn main_args(args: &[~str]) -> int {
let
mut
remaining_args
:
~
[
~
str
]
=
remaining_args
.map
(|
s
|
(
*
s
)
.clone
())
.collect
();
remaining_args
.shift
();
let
sroot
=
match
supplied_sysroot
{
Some
(
s
)
=>
Path
::
new
(
s
),
Some
(
s
)
=>
Path
::
init
(
s
),
_
=>
filesearch
::
get_or_default_sysroot
()
};
...
...
src/librustpkg/package_id.rs
浏览文件 @
c54427dd
...
...
@@ -58,7 +58,7 @@ pub fn new(s: &str) -> PkgId {
}
};
let
path
=
Path
::
new
(
s
);
let
path
=
Path
::
init
(
s
);
if
!
path
.is_relative
()
{
return
cond
.raise
((
path
,
~
"absolute pkgid"
));
}
...
...
@@ -136,8 +136,8 @@ fn next(&mut self) -> Option<(Path, Path)> {
let
last
=
self
.components
.pop
();
self
.remaining
.unshift
(
last
);
// converting to str and then back is a little unfortunate
Some
((
Path
::
new
(
self
.components
.connect
(
"/"
)),
Path
::
new
(
self
.remaining
.connect
(
"/"
))))
Some
((
Path
::
init
(
self
.components
.connect
(
"/"
)),
Path
::
init
(
self
.remaining
.connect
(
"/"
))))
}
}
}
...
...
src/librustpkg/package_source.rs
浏览文件 @
c54427dd
...
...
@@ -332,7 +332,7 @@ pub fn push_crate(cs: &mut ~[Crate], prefix: uint, p: &Path) {
it
.nth
(
prefix
-
1
);
// skip elements
}
assert
!
(
it
.peek
()
.is_some
());
let
mut
sub
=
Path
::
new
(
"."
);
let
mut
sub
=
Path
::
init
(
"."
);
for
c
in
it
{
sub
.push
(
c
);
}
...
...
@@ -414,11 +414,11 @@ fn build_crates(&self,
(
k
.clone
(),
p
.as_str
()
.unwrap
()
.to_owned
()));
prep
.exec
(
proc
(
exec
)
{
for
&
(
ref
kind
,
ref
p
)
in
inputs
.iter
()
{
let
pth
=
Path
::
new
(
p
.clone
());
let
pth
=
Path
::
init
(
p
.clone
());
exec
.discover_input
(
*
kind
,
*
p
,
if
*
kind
==
~
"file"
{
digest_file_with_date
(
&
pth
)
}
else
if
*
kind
==
~
"binary"
{
digest_only_date
(
&
Path
::
new
(
p
.clone
()))
digest_only_date
(
&
Path
::
init
(
p
.clone
()))
}
else
{
fail
!
(
"Bad kind in build_crates"
)
});
...
...
src/librustpkg/tests.rs
浏览文件 @
c54427dd
...
...
@@ -63,7 +63,7 @@ fn fake_ctxt(sysroot: Path, workspace: &Path) -> BuildContext {
fn
fake_pkg
()
->
PkgId
{
let
sn
=
~
"bogus"
;
PkgId
{
path
:
Path
::
new
(
sn
.as_slice
()),
path
:
Path
::
init
(
sn
.as_slice
()),
short_name
:
sn
,
version
:
NoVersion
}
...
...
@@ -71,7 +71,7 @@ fn fake_pkg() -> PkgId {
fn
git_repo_pkg
()
->
PkgId
{
PkgId
{
path
:
Path
::
new
(
"mockgithub.com/catamorphism/test-pkg"
),
path
:
Path
::
init
(
"mockgithub.com/catamorphism/test-pkg"
),
short_name
:
~
"test-pkg"
,
version
:
NoVersion
}
...
...
@@ -79,7 +79,7 @@ fn git_repo_pkg() -> PkgId {
fn
git_repo_pkg_with_tag
(
a_tag
:
~
str
)
->
PkgId
{
PkgId
{
path
:
Path
::
new
(
"mockgithub.com/catamorphism/test-pkg"
),
path
:
Path
::
init
(
"mockgithub.com/catamorphism/test-pkg"
),
short_name
:
~
"test-pkg"
,
version
:
Tagged
(
a_tag
)
}
...
...
@@ -479,7 +479,7 @@ fn command_line_test_output_with_env(args: &[~str], env: ~[(~str, ~str)]) -> ~[~
fn
lib_output_file_name
(
workspace
:
&
Path
,
short_name
:
&
str
)
->
Path
{
debug!
(
"lib_output_file_name: given {} and short name {}"
,
workspace
.display
(),
short_name
);
library_in_workspace
(
&
Path
::
new
(
short_name
),
library_in_workspace
(
&
Path
::
init
(
short_name
),
short_name
,
Build
,
workspace
,
...
...
@@ -752,12 +752,12 @@ fn test_package_ids_must_be_relative_path_like() {
});
cond
.trap
(|(
p
,
e
)|
{
let
abs
=
os
::
make_absolute
(
&
Path
::
new
(
"foo/bar/quux"
));
let
abs
=
os
::
make_absolute
(
&
Path
::
init
(
"foo/bar/quux"
));
assert_eq!
(
p
,
abs
);
assert
!
(
"absolute pkgid"
==
e
);
whatever
.clone
()
})
.inside
(||
{
let
zp
=
os
::
make_absolute
(
&
Path
::
new
(
"foo/bar/quux"
));
let
zp
=
os
::
make_absolute
(
&
Path
::
init
(
"foo/bar/quux"
));
// FIXME (#9639): This needs to handle non-utf8 paths
let
z
=
PkgId
::
new
(
zp
.as_str
()
.unwrap
());
assert_eq!
(
~
"foo-0.1"
,
z
.to_str
());
...
...
@@ -768,7 +768,7 @@ fn test_package_ids_must_be_relative_path_like() {
#[test]
fn
test_package_version
()
{
let
local_path
=
"mockgithub.com/catamorphism/test_pkg_version"
;
let
repo
=
init_git_repo
(
&
Path
::
new
(
local_path
));
let
repo
=
init_git_repo
(
&
Path
::
init
(
local_path
));
let
repo
=
repo
.path
();
let
repo_subdir
=
repo
.join_many
([
"mockgithub.com"
,
"catamorphism"
,
"test_pkg_version"
]);
debug!
(
"Writing files in: {}"
,
repo_subdir
.display
());
...
...
@@ -808,7 +808,7 @@ fn test_package_version() {
#[test]
fn
test_package_request_version
()
{
let
local_path
=
"mockgithub.com/catamorphism/test_pkg_version"
;
let
repo
=
init_git_repo
(
&
Path
::
new
(
local_path
));
let
repo
=
init_git_repo
(
&
Path
::
init
(
local_path
));
let
repo
=
repo
.path
();
let
repo_subdir
=
repo
.join_many
([
"mockgithub.com"
,
"catamorphism"
,
"test_pkg_version"
]);
debug!
(
"Writing files in: {}"
,
repo_subdir
.display
());
...
...
@@ -827,7 +827,7 @@ fn test_package_request_version() {
command_line_test
([
~
"install"
,
format!
(
"{}
\\
#0.3"
,
local_path
)],
repo
);
assert
!
(
match
installed_library_in_workspace
(
&
Path
::
new
(
"test_pkg_version"
),
assert
!
(
match
installed_library_in_workspace
(
&
Path
::
init
(
"test_pkg_version"
),
&
repo
.join
(
".rust"
))
{
Some
(
p
)
=>
{
debug!
(
"installed: {}"
,
p
.display
());
...
...
@@ -841,7 +841,7 @@ fn test_package_request_version() {
==
repo
.join_many
([
".rust"
,
"bin"
,
"test_pkg_version"
]));
let
mut
dir
=
target_build_dir
(
&
repo
.join
(
".rust"
));
dir
.push
(
&
Path
::
new
(
"src/mockgithub.com/catamorphism/test_pkg_version-0.3"
));
dir
.push
(
&
Path
::
init
(
"src/mockgithub.com/catamorphism/test_pkg_version-0.3"
));
debug!
(
"dir = {}"
,
dir
.display
());
assert
!
(
dir
.is_dir
());
assert
!
(
dir
.join
(
"version-0.3-file.txt"
)
.exists
());
...
...
@@ -858,7 +858,7 @@ fn rustpkg_install_url_2() {
#[test]
fn
rustpkg_library_target
()
{
let
foo_repo
=
init_git_repo
(
&
Path
::
new
(
"foo"
));
let
foo_repo
=
init_git_repo
(
&
Path
::
init
(
"foo"
));
let
foo_repo
=
foo_repo
.path
();
let
package_dir
=
foo_repo
.join
(
"foo"
);
...
...
@@ -874,7 +874,7 @@ fn rustpkg_library_target() {
add_git_tag
(
&
package_dir
,
~
"1.0"
);
command_line_test
([
~
"install"
,
~
"foo"
],
foo_repo
);
assert_lib_exists
(
&
foo_repo
.join
(
".rust"
),
&
Path
::
new
(
"foo"
),
ExactRevision
(
~
"1.0"
));
assert_lib_exists
(
&
foo_repo
.join
(
".rust"
),
&
Path
::
init
(
"foo"
),
ExactRevision
(
~
"1.0"
));
}
#[test]
...
...
@@ -885,18 +885,19 @@ fn rustpkg_local_pkg() {
}
#[test]
#[ignore(reason=
"busted"
)]
fn
package_script_with_default_build
()
{
let
dir
=
create_local_package
(
&
PkgId
::
new
(
"fancy-lib"
));
let
dir
=
dir
.path
();
debug!
(
"dir = {}"
,
dir
.display
());
let
mut
source
=
test_sysroot
()
.dir_path
();
source
.pop
();
source
.pop
();
let
source
=
Path
::
new
(
file!
())
.dir_path
()
.join_many
(
let
source
=
Path
::
init
(
file!
())
.dir_path
()
.join_many
(
[
~
"testsuite"
,
~
"pass"
,
~
"src"
,
~
"fancy-lib"
,
~
"pkg.rs"
]);
debug!
(
"package_script_with_default_build: {}"
,
source
.display
());
fs
::
copy
(
&
source
,
&
dir
.join_many
([
"src"
,
"fancy-lib-0.1"
,
"pkg.rs"
]));
command_line_test
([
~
"install"
,
~
"fancy-lib"
],
dir
);
assert_lib_exists
(
dir
,
&
Path
::
new
(
"fancy-lib"
),
NoVersion
);
assert_lib_exists
(
dir
,
&
Path
::
init
(
"fancy-lib"
),
NoVersion
);
assert
!
(
target_build_dir
(
dir
)
.join_many
([
~
"fancy-lib"
,
~
"generated.rs"
])
.exists
());
let
generated_path
=
target_build_dir
(
dir
)
.join_many
([
~
"fancy-lib"
,
~
"generated.rs"
]);
debug!
(
"generated path = {}"
,
generated_path
.display
());
...
...
@@ -927,7 +928,7 @@ fn rustpkg_install_no_arg() {
"fn main() { let _x = (); }"
);
debug!
(
"install_no_arg: dir = {}"
,
package_dir
.display
());
command_line_test
([
~
"install"
],
&
package_dir
);
assert_lib_exists
(
&
tmp
,
&
Path
::
new
(
"foo"
),
NoVersion
);
assert_lib_exists
(
&
tmp
,
&
Path
::
init
(
"foo"
),
NoVersion
);
}
#[test]
...
...
@@ -950,7 +951,7 @@ fn rustpkg_clean_no_arg() {
#[test]
fn
rust_path_test
()
{
let
dir_for_path
=
TempDir
::
new
(
"more_rust"
)
.expect
(
"rust_path_test failed"
);
let
dir
=
mk_workspace
(
dir_for_path
.path
(),
&
Path
::
new
(
"foo"
),
&
NoVersion
);
let
dir
=
mk_workspace
(
dir_for_path
.path
(),
&
Path
::
init
(
"foo"
),
&
NoVersion
);
debug!
(
"dir = {}"
,
dir
.display
());
writeFile
(
&
dir
.join
(
"main.rs"
),
"fn main() { let _x = (); }"
);
...
...
@@ -991,9 +992,9 @@ fn rust_path_contents() {
fn
rust_path_parse
()
{
os
::
setenv
(
"RUST_PATH"
,
"/a/b/c:/d/e/f:/g/h/i"
);
let
paths
=
rust_path
();
assert
!
(
paths
.contains
(
&
Path
::
new
(
"/g/h/i"
)));
assert
!
(
paths
.contains
(
&
Path
::
new
(
"/d/e/f"
)));
assert
!
(
paths
.contains
(
&
Path
::
new
(
"/a/b/c"
)));
assert
!
(
paths
.contains
(
&
Path
::
init
(
"/g/h/i"
)));
assert
!
(
paths
.contains
(
&
Path
::
init
(
"/d/e/f"
)));
assert
!
(
paths
.contains
(
&
Path
::
init
(
"/a/b/c"
)));
os
::
unsetenv
(
"RUST_PATH"
);
}
...
...
@@ -1373,8 +1374,8 @@ fn multiple_workspaces() {
// Copy the exact same package into directory B and install it
// Set the RUST_PATH to A:B
// Make a third package that uses foo, make sure we can build/install it
let
(
a_loc
,
_
pkg_dir
)
=
mk_temp_workspace
(
&
Path
::
new
(
"foo"
),
&
NoVersion
);
let
(
b_loc
,
_
pkg_dir
)
=
mk_temp_workspace
(
&
Path
::
new
(
"foo"
),
&
NoVersion
);
let
(
a_loc
,
_
pkg_dir
)
=
mk_temp_workspace
(
&
Path
::
init
(
"foo"
),
&
NoVersion
);
let
(
b_loc
,
_
pkg_dir
)
=
mk_temp_workspace
(
&
Path
::
init
(
"foo"
),
&
NoVersion
);
let
(
a_loc
,
b_loc
)
=
(
a_loc
.path
(),
b_loc
.path
());
debug!
(
"Trying to install foo in {}"
,
a_loc
.display
());
command_line_test
([
~
"install"
,
~
"foo"
],
a_loc
);
...
...
@@ -1399,7 +1400,7 @@ fn rust_path_hack_test(hack_flag: bool) {
let
p_id
=
PkgId
::
new
(
"foo"
);
let
workspace
=
create_local_package
(
&
p_id
);
let
workspace
=
workspace
.path
();
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
new
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
init
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
dest_workspace
.path
();
let
foo_path
=
workspace
.join_many
([
"src"
,
"foo-0.1"
]);
let
rust_path
=
Some
(
~
[(
~
"RUST_PATH"
,
...
...
@@ -1408,11 +1409,11 @@ fn rust_path_hack_test(hack_flag: bool) {
foo_path
.as_str
()
.unwrap
()))]);
command_line_test_with_env
(
~
[
~
"install"
]
+
if
hack_flag
{
~
[
~
"--rust-path-hack"
]
}
else
{
~
[]
}
+
~
[
~
"foo"
],
dest_workspace
,
rust_path
);
assert_lib_exists
(
dest_workspace
,
&
Path
::
new
(
"foo"
),
NoVersion
);
assert_lib_exists
(
dest_workspace
,
&
Path
::
init
(
"foo"
),
NoVersion
);
assert_executable_exists
(
dest_workspace
,
"foo"
);
assert_built_library_exists
(
dest_workspace
,
"foo"
);
assert_built_executable_exists
(
dest_workspace
,
"foo"
);
assert
!
(
!
lib_exists
(
workspace
,
&
Path
::
new
(
"foo"
),
NoVersion
));
assert
!
(
!
lib_exists
(
workspace
,
&
Path
::
init
(
"foo"
),
NoVersion
));
assert
!
(
!
executable_exists
(
workspace
,
"foo"
));
assert
!
(
!
built_library_exists
(
workspace
,
"foo"
));
assert
!
(
!
built_executable_exists
(
workspace
,
"foo"
));
...
...
@@ -1447,15 +1448,15 @@ fn rust_path_hack_cwd() {
fs
::
mkdir_recursive
(
&
cwd
,
io
::
UserRWX
);
writeFile
(
&
cwd
.join
(
"lib.rs"
),
"pub fn f() { }"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
new
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
init
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
dest_workspace
.path
();
// FIXME (#9639): This needs to handle non-utf8 paths
let
rust_path
=
Some
(
~
[(
~
"RUST_PATH"
,
dest_workspace
.as_str
()
.unwrap
()
.to_owned
())]);
command_line_test_with_env
([
~
"install"
,
~
"--rust-path-hack"
,
~
"foo"
],
&
cwd
,
rust_path
);
debug!
(
"Checking that foo exists in {}"
,
dest_workspace
.display
());
assert_lib_exists
(
dest_workspace
,
&
Path
::
new
(
"foo"
),
NoVersion
);
assert_lib_exists
(
dest_workspace
,
&
Path
::
init
(
"foo"
),
NoVersion
);
assert_built_library_exists
(
dest_workspace
,
"foo"
);
assert
!
(
!
lib_exists
(
&
cwd
,
&
Path
::
new
(
"foo"
),
NoVersion
));
assert
!
(
!
lib_exists
(
&
cwd
,
&
Path
::
init
(
"foo"
),
NoVersion
));
assert
!
(
!
built_library_exists
(
&
cwd
,
"foo"
));
}
...
...
@@ -1468,15 +1469,15 @@ fn rust_path_hack_multi_path() {
writeFile
(
&
subdir
.join
(
"lib.rs"
),
"pub fn f() { }"
);
let
name
=
~
"foo/bar/quux"
;
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
new
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
init
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
dest_workspace
.path
();
// FIXME (#9639): This needs to handle non-utf8 paths
let
rust_path
=
Some
(
~
[(
~
"RUST_PATH"
,
dest_workspace
.as_str
()
.unwrap
()
.to_owned
())]);
command_line_test_with_env
([
~
"install"
,
~
"--rust-path-hack"
,
name
.clone
()],
&
subdir
,
rust_path
);
debug!
(
"Checking that {} exists in {}"
,
name
,
dest_workspace
.display
());
assert_lib_exists
(
dest_workspace
,
&
Path
::
new
(
"quux"
),
NoVersion
);
assert_lib_exists
(
dest_workspace
,
&
Path
::
init
(
"quux"
),
NoVersion
);
assert_built_library_exists
(
dest_workspace
,
name
);
assert
!
(
!
lib_exists
(
&
subdir
,
&
Path
::
new
(
"quux"
),
NoVersion
));
assert
!
(
!
lib_exists
(
&
subdir
,
&
Path
::
init
(
"quux"
),
NoVersion
));
assert
!
(
!
built_library_exists
(
&
subdir
,
name
));
}
...
...
@@ -1489,15 +1490,15 @@ fn rust_path_hack_install_no_arg() {
assert
!
(
make_dir_rwx
(
&
source_dir
));
writeFile
(
&
source_dir
.join
(
"lib.rs"
),
"pub fn f() { }"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
new
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
init
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
dest_workspace
.path
();
// FIXME (#9639): This needs to handle non-utf8 paths
let
rust_path
=
Some
(
~
[(
~
"RUST_PATH"
,
dest_workspace
.as_str
()
.unwrap
()
.to_owned
())]);
command_line_test_with_env
([
~
"install"
,
~
"--rust-path-hack"
],
&
source_dir
,
rust_path
);
debug!
(
"Checking that foo exists in {}"
,
dest_workspace
.display
());
assert_lib_exists
(
dest_workspace
,
&
Path
::
new
(
"foo"
),
NoVersion
);
assert_lib_exists
(
dest_workspace
,
&
Path
::
init
(
"foo"
),
NoVersion
);
assert_built_library_exists
(
dest_workspace
,
"foo"
);
assert
!
(
!
lib_exists
(
&
source_dir
,
&
Path
::
new
(
"foo"
),
NoVersion
));
assert
!
(
!
lib_exists
(
&
source_dir
,
&
Path
::
init
(
"foo"
),
NoVersion
));
assert
!
(
!
built_library_exists
(
cwd
,
"foo"
));
}
...
...
@@ -1509,7 +1510,7 @@ fn rust_path_hack_build_no_arg() {
assert
!
(
make_dir_rwx
(
&
source_dir
));
writeFile
(
&
source_dir
.join
(
"lib.rs"
),
"pub fn f() { }"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
new
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
init
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
dest_workspace
.path
();
// FIXME (#9639): This needs to handle non-utf8 paths
let
rust_path
=
Some
(
~
[(
~
"RUST_PATH"
,
dest_workspace
.as_str
()
.unwrap
()
.to_owned
())]);
...
...
@@ -1547,7 +1548,7 @@ fn rust_path_hack_build_with_dependency() {
fn
rust_path_install_target
()
{
let
dir_for_path
=
TempDir
::
new
(
"source_workspace"
)
.expect
(
"rust_path_install_target failed"
);
let
mut
dir
=
mk_workspace
(
dir_for_path
.path
(),
&
Path
::
new
(
"foo"
),
&
NoVersion
);
let
mut
dir
=
mk_workspace
(
dir_for_path
.path
(),
&
Path
::
init
(
"foo"
),
&
NoVersion
);
debug!
(
"dir = {}"
,
dir
.display
());
writeFile
(
&
dir
.join
(
"main.rs"
),
"fn main() { let _x = (); }"
);
let
dir_to_install_to
=
TempDir
::
new
(
...
...
@@ -1659,7 +1660,7 @@ fn notrans_flag_fail() {
workspace
,
None
,
BAD_FLAG_CODE
);
assert
!
(
!
built_executable_exists
(
workspace
,
"foo"
));
assert
!
(
!
object_file_exists
(
workspace
,
"foo"
));
assert
!
(
!
lib_exists
(
workspace
,
&
Path
::
new
(
"foo"
),
NoVersion
));
assert
!
(
!
lib_exists
(
workspace
,
&
Path
::
init
(
"foo"
),
NoVersion
));
}
}
...
...
@@ -1926,9 +1927,9 @@ fn test_recursive_deps() {
command_line_test_with_env
([
~
"install"
,
~
"a"
],
a_workspace
,
environment
);
assert_lib_exists
(
a_workspace
,
&
Path
::
new
(
"a"
),
NoVersion
);
assert_lib_exists
(
b_workspace
,
&
Path
::
new
(
"b"
),
NoVersion
);
assert_lib_exists
(
b_workspace
,
&
Path
::
new
(
"c"
),
NoVersion
);
assert_lib_exists
(
a_workspace
,
&
Path
::
init
(
"a"
),
NoVersion
);
assert_lib_exists
(
b_workspace
,
&
Path
::
init
(
"b"
),
NoVersion
);
assert_lib_exists
(
b_workspace
,
&
Path
::
init
(
"c"
),
NoVersion
);
}
#[test]
...
...
@@ -1936,7 +1937,7 @@ fn test_install_to_rust_path() {
let
p_id
=
PkgId
::
new
(
"foo"
);
let
second_workspace
=
create_local_package
(
&
p_id
);
let
second_workspace
=
second_workspace
.path
();
let
first_workspace
=
mk_empty_workspace
(
&
Path
::
new
(
"p"
),
&
NoVersion
,
"dest"
);
let
first_workspace
=
mk_empty_workspace
(
&
Path
::
init
(
"p"
),
&
NoVersion
,
"dest"
);
let
first_workspace
=
first_workspace
.path
();
// FIXME (#9639): This needs to handle non-utf8 paths
let
rust_path
=
Some
(
~
[(
~
"RUST_PATH"
,
...
...
@@ -1983,7 +1984,7 @@ fn test_target_specific_install_dir() {
~
"foo"
],
workspace
);
assert
!
(
workspace
.join_many
([
~
"lib"
,
host_triple
()])
.is_dir
());
assert_lib_exists
(
workspace
,
&
Path
::
new
(
"foo"
),
NoVersion
);
assert_lib_exists
(
workspace
,
&
Path
::
init
(
"foo"
),
NoVersion
);
assert
!
(
fs
::
readdir
(
&
workspace
.join
(
"lib"
))
.len
()
==
1
);
assert
!
(
workspace
.join
(
"bin"
)
.is_dir
());
assert_executable_exists
(
workspace
,
"foo"
);
...
...
@@ -2059,7 +2060,7 @@ fn correct_package_name_with_rust_path_hack() {
let
bar_id
=
PkgId
::
new
(
"bar"
);
let
foo_workspace
=
create_local_package
(
&
foo_id
);
let
foo_workspace
=
foo_workspace
.path
();
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
new
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
mk_empty_workspace
(
&
Path
::
init
(
"bar"
),
&
NoVersion
,
"dest_workspace"
);
let
dest_workspace
=
dest_workspace
.path
();
writeFile
(
&
dest_workspace
.join_many
([
"src"
,
"bar-0.1"
,
"main.rs"
]),
...
...
@@ -2315,6 +2316,7 @@ fn find_sources_in_cwd() {
}
#[test]
#[ignore(reason=
"busted"
)]
fn
test_c_dependency_ok
()
{
// Pkg has a custom build script that adds a single C file as a dependency, and
// registers a hook to build it if it's not fresh
...
...
@@ -2328,7 +2330,7 @@ fn test_c_dependency_ok() {
writeFile
(
&
dir
.join_many
([
"src"
,
"cdep-0.1"
,
"foo.c"
]),
"void f() {}"
);
debug!
(
"dir = {}"
,
dir
.display
());
let
source
=
Path
::
new
(
file!
())
.dir_path
()
.join_many
(
let
source
=
Path
::
init
(
file!
())
.dir_path
()
.join_many
(
[
~
"testsuite"
,
~
"pass"
,
~
"src"
,
~
"c-dependencies"
,
~
"pkg.rs"
]);
fs
::
copy
(
&
source
,
&
dir
.join_many
([
~
"src"
,
~
"cdep-0.1"
,
~
"pkg.rs"
]));
command_line_test
([
~
"build"
,
~
"cdep"
],
dir
);
...
...
@@ -2340,6 +2342,7 @@ fn test_c_dependency_ok() {
}
#[test]
#[ignore(reason=
"busted"
)]
fn
test_c_dependency_no_rebuilding
()
{
let
dir
=
create_local_package
(
&
PkgId
::
new
(
"cdep"
));
let
dir
=
dir
.path
();
...
...
@@ -2349,7 +2352,7 @@ fn test_c_dependency_no_rebuilding() {
writeFile
(
&
dir
.join_many
([
"src"
,
"cdep-0.1"
,
"foo.c"
]),
"void f() {}"
);
debug!
(
"dir = {}"
,
dir
.display
());
let
source
=
Path
::
new
(
file!
())
.dir_path
()
.join_many
(
let
source
=
Path
::
init
(
file!
())
.dir_path
()
.join_many
(
[
~
"testsuite"
,
~
"pass"
,
~
"src"
,
~
"c-dependencies"
,
~
"pkg.rs"
]);
fs
::
copy
(
&
source
,
&
dir
.join_many
([
~
"src"
,
~
"cdep-0.1"
,
~
"pkg.rs"
]));
command_line_test
([
~
"build"
,
~
"cdep"
],
dir
);
...
...
@@ -2373,6 +2376,7 @@ fn test_c_dependency_no_rebuilding() {
}
#[test]
#[ignore(reason=
"busted"
)]
fn
test_c_dependency_yes_rebuilding
()
{
let
dir
=
create_local_package
(
&
PkgId
::
new
(
"cdep"
));
let
dir
=
dir
.path
();
...
...
@@ -2382,7 +2386,7 @@ fn test_c_dependency_yes_rebuilding() {
let
c_file_name
=
dir
.join_many
([
"src"
,
"cdep-0.1"
,
"foo.c"
]);
writeFile
(
&
c_file_name
,
"void f() {}"
);
let
source
=
Path
::
new
(
file!
())
.dir_path
()
.join_many
(
let
source
=
Path
::
init
(
file!
())
.dir_path
()
.join_many
(
[
~
"testsuite"
,
~
"pass"
,
~
"src"
,
~
"c-dependencies"
,
~
"pkg.rs"
]);
let
target
=
dir
.join_many
([
~
"src"
,
~
"cdep-0.1"
,
~
"pkg.rs"
]);
debug!
(
"Copying {} -> {}"
,
source
.display
(),
target
.display
());
...
...
src/librustpkg/util.rs
浏览文件 @
c54427dd
...
...
@@ -511,7 +511,7 @@ fn visit_view_item(&mut self, vi: &ast::view_item, env: ()) {
self
.context
.install
(
pkg_src
,
&
WhatToBuild
::
new
(
Inferred
,
JustOne
(
Path
::
new
(
lib_crate_filename
))));
JustOne
(
Path
::
init
(
lib_crate_filename
))));
debug!
(
"Installed {}, returned {:?} dependencies and
\
{:?} transitive dependencies"
,
lib_name
,
outputs_disc
.len
(),
inputs_disc
.len
());
...
...
@@ -549,7 +549,7 @@ fn visit_view_item(&mut self, vi: &ast::view_item, env: ()) {
self
.exec
.discover_input
(
*
what
,
*
dep
,
digest_file_with_date
(
&
Path
::
new
(
dep
.as_slice
())));
&
Path
::
init
(
dep
.as_slice
())));
}
else
if
*
what
==
~
"binary"
{
add_dep
(
self
.deps
,
self
.parent_crate
.as_str
()
.unwrap
()
.to_owned
(),
...
...
@@ -557,7 +557,7 @@ fn visit_view_item(&mut self, vi: &ast::view_item, env: ()) {
self
.exec
.discover_input
(
*
what
,
*
dep
,
digest_only_date
(
&
Path
::
new
(
dep
.as_slice
())));
&
Path
::
init
(
dep
.as_slice
())));
}
else
{
fail
!
(
"Bad kind: {}"
,
*
what
);
}
...
...
src/librustuv/file.rs
浏览文件 @
c54427dd
...
...
@@ -141,7 +141,7 @@ pub fn readdir(loop_: &Loop, path: &CString, flags: c_int)
})
.map
(|
req
|
unsafe
{
let
mut
paths
=
~
[];
let
path
=
CString
::
new
(
path
.with_ref
(|
p
|
p
),
false
);
let
parent
=
Path
::
new
(
path
);
let
parent
=
Path
::
init
(
path
);
c_str
::
from_c_multistring
(
req
.get_ptr
()
as
*
libc
::
c_char
,
Some
(
req
.get_result
()
as
uint
),
|
rel
|
{
...
...
@@ -157,7 +157,7 @@ pub fn readlink(loop_: &Loop, path: &CString) -> Result<Path, UvError> {
uvll
::
uv_fs_readlink
(
loop_
.handle
,
req
,
path
.with_ref
(|
p
|
p
),
cb
)
})
.map
(|
req
|
{
Path
::
new
(
unsafe
{
Path
::
init
(
unsafe
{
CString
::
new
(
req
.get_ptr
()
as
*
libc
::
c_char
,
false
)
})
})
...
...
@@ -245,7 +245,7 @@ pub fn get_ptr(&self) -> *libc::c_void {
pub
fn
mkstat
(
&
self
)
->
FileStat
{
let
path
=
unsafe
{
uvll
::
get_path_from_fs_req
(
self
.req
)
};
let
path
=
unsafe
{
Path
::
new
(
CString
::
new
(
path
,
false
))
};
let
path
=
unsafe
{
Path
::
init
(
CString
::
new
(
path
,
false
))
};
let
stat
=
self
.get_stat
();
fn
to_msec
(
stat
:
uvll
::
uv_timespec_t
)
->
u64
{
// Be sure to cast to u64 first to prevent overflowing if the tv_sec
...
...
src/libstd/io/fs.rs
浏览文件 @
c54427dd
...
...
@@ -29,7 +29,7 @@
use std::io::{File, fs};
let path = Path::
new
("foo.txt");
let path = Path::
init
("foo.txt");
// create the file, whether it exists or not
let mut file = File::create(&path);
...
...
@@ -40,7 +40,7 @@
file.read_to_end();
println!("{}", path.stat().size);
fs::symlink(&path, &Path::
new
("bar.txt"));
fs::symlink(&path, &Path::
init
("bar.txt"));
fs::unlink(&path);
*/
...
...
@@ -95,7 +95,7 @@ impl File {
///
/// use std::io::{File, io_error, Open, ReadWrite};
///
/// let p = Path::
new
("/some/file/path.txt");
/// let p = Path::
init
("/some/file/path.txt");
///
/// io_error::cond.trap(|_| {
/// // hoo-boy...
...
...
@@ -157,7 +157,7 @@ pub fn open_mode(path: &Path,
///
/// use std::io::File;
///
/// let contents = File::open(&Path::
new
("foo.txt")).read_to_end();
/// let contents = File::open(&Path::
init
("foo.txt")).read_to_end();
pub
fn
open
(
path
:
&
Path
)
->
Option
<
File
>
{
File
::
open_mode
(
path
,
Open
,
Read
)
}
...
...
@@ -172,7 +172,7 @@ pub fn open(path: &Path) -> Option<File> {
///
/// use std::io::File;
///
/// let mut f = File::create(&Path::
new
("foo.txt"));
/// let mut f = File::create(&Path::
init
("foo.txt"));
/// f.write(bytes!("This is a sample file"));
pub
fn
create
(
path
:
&
Path
)
->
Option
<
File
>
{
File
::
open_mode
(
path
,
Truncate
,
Write
)
...
...
@@ -229,7 +229,7 @@ pub fn truncate(&mut self, size: i64) {
///
/// use std::io::fs;
///
/// let p = Path::
new
("/some/file/path.txt");
/// let p = Path::
init
("/some/file/path.txt");
/// fs::unlink(&p);
/// // if we made it here without failing, then the
/// // unlink operation was successful
...
...
@@ -260,7 +260,7 @@ pub fn unlink(path: &Path) {
/// use std::io;
/// use std::io::fs;
///
/// let p = Path::
new
("/some/file/path.txt");
/// let p = Path::
init
("/some/file/path.txt");
/// match io::result(|| fs::stat(&p)) {
/// Ok(stat) => { /* ... */ }
/// Err(e) => { /* handle error */ }
...
...
@@ -277,7 +277,7 @@ pub fn stat(path: &Path) -> FileStat {
fn
dummystat
()
->
FileStat
{
FileStat
{
path
:
Path
::
new
(
""
),
path
:
Path
::
init
(
""
),
size
:
0
,
kind
:
io
::
TypeFile
,
perm
:
0
,
...
...
@@ -317,7 +317,7 @@ pub fn lstat(path: &Path) -> FileStat {
///
/// use std::io::fs;
///
/// fs::rename(&Path::
new("foo"), &Path::new
("bar"));
/// fs::rename(&Path::
init("foo"), &Path::init
("bar"));
/// // Oh boy, nothing was raised!
///
/// # Errors
...
...
@@ -339,7 +339,7 @@ pub fn rename(from: &Path, to: &Path) {
///
/// use std::io::fs;
///
/// fs::copy(&Path::
new("foo.txt"), &Path::new
("bar.txt"));
/// fs::copy(&Path::
init("foo.txt"), &Path::init
("bar.txt"));
/// // Oh boy, nothing was raised!
///
/// # Errors
...
...
@@ -386,10 +386,10 @@ pub fn copy(from: &Path, to: &Path) {
/// use std::io;
/// use std::io::fs;
///
/// fs::chmod(&Path::
new
("file.txt"), io::UserFile);
/// fs::chmod(&Path::
new
("file.txt"), io::UserRead | io::UserWrite);
/// fs::chmod(&Path::
new
("dir"), io::UserDir);
/// fs::chmod(&Path::
new
("file.exe"), io::UserExec);
/// fs::chmod(&Path::
init
("file.txt"), io::UserFile);
/// fs::chmod(&Path::
init
("file.txt"), io::UserRead | io::UserWrite);
/// fs::chmod(&Path::
init
("dir"), io::UserDir);
/// fs::chmod(&Path::
init
("file.exe"), io::UserExec);
///
/// # Errors
///
...
...
@@ -448,7 +448,7 @@ pub fn readlink(path: &Path) -> Option<Path> {
/// use std::libc::S_IRWXU;
/// use std::io::fs;
///
/// let p = Path::
new
("/some/dir");
/// let p = Path::
init
("/some/dir");
/// fs::mkdir(&p, S_IRWXU as int);
/// // If we got here, our directory exists! Horray!
///
...
...
@@ -467,7 +467,7 @@ pub fn mkdir(path: &Path, mode: FilePermission) {
///
/// use std::io::fs;
///
/// let p = Path::
new
("/some/dir");
/// let p = Path::
init
("/some/dir");
/// fs::rmdir(&p);
/// // good riddance, you mean ol' directory
///
...
...
@@ -990,12 +990,12 @@ fn f() $b
})
test!
(
fn
recursive_mkdir_slash
()
{
mkdir_recursive
(
&
Path
::
new
(
"/"
),
io
::
UserRWX
);
mkdir_recursive
(
&
Path
::
init
(
"/"
),
io
::
UserRWX
);
})
test!
(
fn
unicode_path_is_dir
()
{
assert!
(
Path
::
new
(
"."
)
.is_dir
());
assert!
(
!
Path
::
new
(
"test/stdtest/fs.rs"
)
.is_dir
());
assert!
(
Path
::
init
(
"."
)
.is_dir
());
assert!
(
!
Path
::
init
(
"test/stdtest/fs.rs"
)
.is_dir
());
let
tmpdir
=
tmpdir
();
...
...
@@ -1012,20 +1012,20 @@ fn f() $b
})
test!
(
fn
unicode_path_exists
()
{
assert!
(
Path
::
new
(
"."
)
.exists
());
assert!
(
!
Path
::
new
(
"test/nonexistent-bogus-path"
)
.exists
());
assert!
(
Path
::
init
(
"."
)
.exists
());
assert!
(
!
Path
::
init
(
"test/nonexistent-bogus-path"
)
.exists
());
let
tmpdir
=
tmpdir
();
let
unicode
=
tmpdir
.clone
();
let
unicode
=
unicode
.join
(
format!
(
"test-각丁ー再见"
));
mkdir
(
&
unicode
,
io
::
UserRWX
);
assert!
(
unicode
.exists
());
assert!
(
!
Path
::
new
(
"test/unicode-bogus-path-각丁ー再见"
)
.exists
());
assert!
(
!
Path
::
init
(
"test/unicode-bogus-path-각丁ー再见"
)
.exists
());
})
test!
(
fn
copy_file_does_not_exist
()
{
let
from
=
Path
::
new
(
"test/nonexistent-bogus-path"
);
let
to
=
Path
::
new
(
"test/other-bogus-path"
);
let
from
=
Path
::
init
(
"test/nonexistent-bogus-path"
);
let
to
=
Path
::
init
(
"test/other-bogus-path"
);
match
io
::
result
(||
copy
(
&
from
,
&
to
))
{
Ok
(
..
)
=>
fail!
(),
Err
(
..
)
=>
{
...
...
src/libstd/io/mod.rs
浏览文件 @
c54427dd
...
...
@@ -450,7 +450,7 @@ pub trait Reader {
///
/// # Example
///
/// let reader = File::open(&Path::
new
("foo.txt"))
/// let reader = File::open(&Path::
init
("foo.txt"))
/// while !reader.eof() {
/// println(reader.read_line());
/// }
...
...
src/libstd/io/native/file.rs
浏览文件 @
c54427dd
...
...
@@ -278,6 +278,7 @@ fn truncate(&mut self, offset: i64) -> Result<(), IoError> {
self
.seek
(
orig_pos
as
i64
,
io
::
SeekSet
);
return
ret
;
}
#[cfg(unix)]
fn
truncate
(
&
mut
self
,
offset
:
i64
)
->
Result
<
(),
IoError
>
{
super
::
mkerr_libc
(
unsafe
{
...
...
@@ -480,7 +481,7 @@ fn os_mkdir(p: &CString, mode: c_int) -> IoResult<()> {
pub
fn
readdir
(
p
:
&
CString
)
->
IoResult
<~
[
Path
]
>
{
fn
prune
(
root
:
&
CString
,
dirs
:
~
[
Path
])
->
~
[
Path
]
{
let
root
=
unsafe
{
CString
::
new
(
root
.with_ref
(|
p
|
p
),
false
)
};
let
root
=
Path
::
new
(
root
);
let
root
=
Path
::
init
(
root
);
dirs
.move_iter
()
.filter
(|
path
|
{
path
.as_vec
()
!=
bytes!
(
"."
)
&&
path
.as_vec
()
!=
bytes!
(
".."
)
...
...
@@ -505,7 +506,7 @@ unsafe fn get_list(p: &CString) -> IoResult<~[Path]> {
let
mut
entry_ptr
=
readdir
(
dir_ptr
);
while
(
entry_ptr
as
uint
!=
0
)
{
let
cstr
=
CString
::
new
(
rust_list_dir_val
(
entry_ptr
),
false
);
paths
.push
(
Path
::
new
(
cstr
));
paths
.push
(
Path
::
init
(
cstr
));
entry_ptr
=
readdir
(
dir_ptr
);
}
closedir
(
dir_ptr
);
...
...
@@ -536,7 +537,7 @@ unsafe fn get_list(p: &CString) -> IoResult<~[Path]> {
fn
rust_list_dir_wfd_fp_buf
(
wfd
:
*
libc
::
c_void
)
->
*
u16
;
}
let
p
=
CString
::
new
(
p
.with_ref
(|
p
|
p
),
false
);
let
p
=
Path
::
new
(
p
);
let
p
=
Path
::
init
(
p
);
let
star
=
p
.join
(
"*"
);
as_utf16_p
(
star
.as_str
()
.unwrap
(),
|
path_ptr
|
{
let
wfd_ptr
=
malloc_raw
(
rust_list_dir_wfd_size
()
as
uint
);
...
...
@@ -553,7 +554,7 @@ unsafe fn get_list(p: &CString) -> IoResult<~[Path]> {
let
fp_vec
=
vec
::
from_buf
(
fp_buf
,
wcslen
(
fp_buf
)
as
uint
);
let
fp_str
=
str
::
from_utf16
(
fp_vec
);
paths
.push
(
Path
::
new
(
fp_str
));
paths
.push
(
Path
::
init
(
fp_str
));
}
more_files
=
FindNextFileW
(
find_handle
,
wfd_ptr
as
HANDLE
);
}
...
...
@@ -683,7 +684,7 @@ fn os_readlink(p: &CString) -> IoResult<Path> {
}
});
let
ret
=
match
ret
{
Some
(
s
)
=>
Ok
(
Path
::
new
(
s
)),
Some
(
s
)
=>
Ok
(
Path
::
init
(
s
)),
None
=>
Err
(
super
::
last_error
()),
};
unsafe
{
libc
::
CloseHandle
(
handle
)
};
...
...
@@ -707,7 +708,7 @@ fn os_readlink(p: &CString) -> IoResult<Path> {
n
=>
{
assert
!
(
n
>
0
);
unsafe
{
vec
::
raw
::
set_len
(
&
mut
buf
,
n
as
uint
);
}
Ok
(
Path
::
new
(
buf
))
Ok
(
Path
::
init
(
buf
))
}
}
}
...
...
@@ -770,7 +771,7 @@ fn mktime(secs: u64, nsecs: u64) -> u64 { secs * 1000 + nsecs / 1000000 }
};
io
::
FileStat
{
path
:
Path
::
new
(
path
),
path
:
Path
::
init
(
path
),
size
:
stat
.st_size
as
u64
,
kind
:
kind
,
perm
:
(
stat
.st_mode
)
as
io
::
FilePermission
&
io
::
AllPermissions
,
...
...
@@ -819,7 +820,7 @@ fn gen(stat: &libc::stat) -> u64 { stat.st_gen as u64 }
fn
gen
(
_
stat
:
&
libc
::
stat
)
->
u64
{
0
}
io
::
FileStat
{
path
:
Path
::
new
(
path
),
path
:
Path
::
init
(
path
),
size
:
stat
.st_size
as
u64
,
kind
:
kind
,
perm
:
(
stat
.st_mode
)
as
io
::
FilePermission
&
io
::
AllPermissions
,
...
...
src/libstd/io/native/process.rs
浏览文件 @
c54427dd
...
...
@@ -95,7 +95,7 @@ fn get_io(io: &[p::StdioContainer],
let
(
err_pipe
,
err_fd
)
=
get_io
(
config
.io
,
&
mut
ret_io
,
2
);
let
env
=
config
.env
.map
(|
a
|
a
.to_owned
());
let
cwd
=
config
.cwd
.map
(|
a
|
Path
::
new
(
a
));
let
cwd
=
config
.cwd
.map
(|
a
|
Path
::
init
(
a
));
let
res
=
spawn_process_os
(
config
.program
,
config
.args
,
env
,
cwd
.as_ref
(),
in_fd
,
out_fd
,
err_fd
);
...
...
src/libstd/os.rs
浏览文件 @
c54427dd
...
...
@@ -64,7 +64,7 @@ pub fn getcwd() -> Path {
fail
!
()
}
Path
::
new
(
CString
::
new
(
buf
as
*
c_char
,
false
))
Path
::
init
(
CString
::
new
(
buf
as
*
c_char
,
false
))
}
})
}
...
...
@@ -81,7 +81,7 @@ pub fn getcwd() -> Path {
}
}
});
Path
::
new
(
str
::
from_utf16
(
buf
))
Path
::
init
(
str
::
from_utf16
(
buf
))
}
#[cfg(windows)]
...
...
@@ -384,7 +384,7 @@ fn load_self() -> Option<~[u8]> {
fn
load_self
()
->
Option
<~
[
u8
]
>
{
use
std
::
io
;
match
io
::
result
(||
io
::
fs
::
readlink
(
&
Path
::
new
(
"/proc/self/exe"
)))
{
match
io
::
result
(||
io
::
fs
::
readlink
(
&
Path
::
init
(
"/proc/self/exe"
)))
{
Ok
(
Some
(
path
))
=>
Some
(
path
.as_vec
()
.to_owned
()),
Ok
(
None
)
|
Err
(
..
)
=>
None
}
...
...
@@ -418,7 +418,7 @@ fn load_self() -> Option<~[u8]> {
}
}
load_self
()
.and_then
(|
path
|
Path
::
new
_opt
(
path
)
.map
(|
mut
p
|
{
p
.pop
();
p
}))
load_self
()
.and_then
(|
path
|
Path
::
init
_opt
(
path
)
.map
(|
mut
p
|
{
p
.pop
();
p
}))
}
/**
...
...
@@ -437,7 +437,7 @@ fn load_self() -> Option<~[u8]> {
pub
fn
homedir
()
->
Option
<
Path
>
{
// FIXME (#7188): getenv needs a ~[u8] variant
return
match
getenv
(
"HOME"
)
{
Some
(
ref
p
)
if
!
p
.is_empty
()
=>
Path
::
new
_opt
(
p
.as_slice
()),
Some
(
ref
p
)
if
!
p
.is_empty
()
=>
Path
::
init
_opt
(
p
.as_slice
()),
_
=>
secondary
()
};
...
...
@@ -450,7 +450,7 @@ fn secondary() -> Option<Path> {
fn
secondary
()
->
Option
<
Path
>
{
getenv
(
"USERPROFILE"
)
.and_then
(|
p
|
{
if
!
p
.is_empty
()
{
Path
::
new
_opt
(
p
)
Path
::
init
_opt
(
p
)
}
else
{
None
}
...
...
@@ -479,7 +479,7 @@ fn getenv_nonempty(v: &str) -> Option<Path> {
if
x
.is_empty
()
{
None
}
else
{
Path
::
new
_opt
(
x
)
Path
::
init
_opt
(
x
)
},
_
=>
None
}
...
...
@@ -488,9 +488,9 @@ fn getenv_nonempty(v: &str) -> Option<Path> {
#[cfg(unix)]
fn
lookup
()
->
Path
{
if
cfg!
(
target_os
=
"android"
)
{
Path
::
new
(
"/data/tmp"
)
Path
::
init
(
"/data/tmp"
)
}
else
{
getenv_nonempty
(
"TMPDIR"
)
.unwrap_or
(
Path
::
new
(
"/tmp"
))
getenv_nonempty
(
"TMPDIR"
)
.unwrap_or
(
Path
::
init
(
"/tmp"
))
}
}
...
...
@@ -499,7 +499,7 @@ fn lookup() -> Path {
getenv_nonempty
(
"TMP"
)
.or
(
getenv_nonempty
(
"TEMP"
)
.or
(
getenv_nonempty
(
"USERPROFILE"
)
.or
(
getenv_nonempty
(
"WINDIR"
))))
.unwrap_or
(
Path
::
new
(
"C:
\\
Windows"
))
getenv_nonempty
(
"WINDIR"
))))
.unwrap_or
(
Path
::
init
(
"C:
\\
Windows"
))
}
}
...
...
@@ -1366,13 +1366,13 @@ fn test_env_setenv() {
#[test]
fn
test
()
{
assert
!
((
!
Path
::
new
(
"test-path"
)
.is_absolute
()));
assert
!
((
!
Path
::
init
(
"test-path"
)
.is_absolute
()));
let
cwd
=
getcwd
();
debug!
(
"Current working directory: {}"
,
cwd
.display
());
debug!
(
"{:?}"
,
make_absolute
(
&
Path
::
new
(
"test-path"
)));
debug!
(
"{:?}"
,
make_absolute
(
&
Path
::
new
(
"/usr/bin"
)));
debug!
(
"{:?}"
,
make_absolute
(
&
Path
::
init
(
"test-path"
)));
debug!
(
"{:?}"
,
make_absolute
(
&
Path
::
init
(
"/usr/bin"
)));
}
#[test]
...
...
@@ -1381,7 +1381,7 @@ fn homedir() {
let
oldhome
=
getenv
(
"HOME"
);
setenv
(
"HOME"
,
"/home/MountainView"
);
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
new
(
"/home/MountainView"
)));
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
init
(
"/home/MountainView"
)));
setenv
(
"HOME"
,
""
);
assert
!
(
os
::
homedir
()
.is_none
());
...
...
@@ -1402,16 +1402,16 @@ fn homedir() {
assert
!
(
os
::
homedir
()
.is_none
());
setenv
(
"HOME"
,
"/home/MountainView"
);
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
new
(
"/home/MountainView"
)));
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
init
(
"/home/MountainView"
)));
setenv
(
"HOME"
,
""
);
setenv
(
"USERPROFILE"
,
"/home/MountainView"
);
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
new
(
"/home/MountainView"
)));
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
init
(
"/home/MountainView"
)));
setenv
(
"HOME"
,
"/home/MountainView"
);
setenv
(
"USERPROFILE"
,
"/home/PaloAlto"
);
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
new
(
"/home/MountainView"
)));
assert_eq!
(
os
::
homedir
(),
Some
(
Path
::
init
(
"/home/MountainView"
)));
for
s
in
oldhome
.iter
()
{
setenv
(
"HOME"
,
*
s
)
}
for
s
in
olduserprofile
.iter
()
{
setenv
(
"USERPROFILE"
,
*
s
)
}
...
...
src/libstd/path/mod.rs
浏览文件 @
c54427dd
...
...
@@ -32,8 +32,8 @@
Usage of this module is fairly straightforward. Unless writing platform-specific
code, `Path` should be used to refer to the platform-native path.
Creation of a path is typically done with either `Path::
new
(some_str)` or
`Path::
new
(some_vec)`. This path can be modified with `.push()` and
Creation of a path is typically done with either `Path::
init
(some_str)` or
`Path::
init
(some_vec)`. This path can be modified with `.push()` and
`.pop()` (and other setters). The resulting Path can either be passed to another
API that expects a path, or can be turned into a &[u8] with `.as_vec()` or a
Option<&str> with `.as_str()`. Similarly, attributes of the path can be queried
...
...
@@ -41,7 +41,7 @@
path instead of modifying the receiver, such as `.join()` or `.dir_path()`.
Paths are always kept in normalized form. This means that creating the path
`Path::
new
("a/b/../c")` will return the path `a/c`. Similarly any attempt
`Path::
init
("a/b/../c")` will return the path `a/c`. Similarly any attempt
to mutate the path will always leave it in normalized form.
When rendering a path to some form of output, there is a method `.display()`
...
...
@@ -53,7 +53,7 @@
## Example
```rust
let mut path = Path::
new
("/tmp/path");
let mut path = Path::
from_str
("/tmp/path");
debug!("path: {}", path.display());
path.set_filename("foo");
path.push("bar");
...
...
@@ -151,24 +151,24 @@ pub trait GenericPath: Clone + GenericPathUnsafe {
///
/// See individual Path impls for additional restrictions.
#[inline]
fn
new
<
T
:
BytesContainer
>
(
path
:
T
)
->
Self
{
fn
init
<
T
:
BytesContainer
>
(
path
:
T
)
->
Self
{
if
contains_nul
(
path
.container_as_bytes
())
{
let
path
=
self
::
null_byte
::
cond
.raise
(
path
.container_into_owned_bytes
());
assert
!
(
!
contains_nul
(
path
));
unsafe
{
GenericPathUnsafe
::
new
_unchecked
(
path
)
}
unsafe
{
GenericPathUnsafe
::
init
_unchecked
(
path
)
}
}
else
{
unsafe
{
GenericPathUnsafe
::
new
_unchecked
(
path
)
}
unsafe
{
GenericPathUnsafe
::
init
_unchecked
(
path
)
}
}
}
/// Creates a new Path from a byte vector or string, if possible.
/// The resulting Path will always be normalized.
#[inline]
fn
new
_opt
<
T
:
BytesContainer
>
(
path
:
T
)
->
Option
<
Self
>
{
fn
init
_opt
<
T
:
BytesContainer
>
(
path
:
T
)
->
Option
<
Self
>
{
if
contains_nul
(
path
.container_as_bytes
())
{
None
}
else
{
Some
(
unsafe
{
GenericPathUnsafe
::
new
_unchecked
(
path
)
})
Some
(
unsafe
{
GenericPathUnsafe
::
init
_unchecked
(
path
)
})
}
}
...
...
@@ -382,7 +382,7 @@ fn with_extension<T: BytesContainer>(&self, extension: T) -> Self {
/// If `self` represents the root of the filesystem hierarchy, returns `self`.
fn
dir_path
(
&
self
)
->
Self
{
// self.dirname() returns a NUL-free vector
unsafe
{
GenericPathUnsafe
::
new
_unchecked
(
self
.dirname
())
}
unsafe
{
GenericPathUnsafe
::
init
_unchecked
(
self
.dirname
())
}
}
/// Returns a Path that represents the filesystem root that `self` is rooted in.
...
...
@@ -510,7 +510,7 @@ fn is_str(_: Option<Self>) -> bool { false }
pub
trait
GenericPathUnsafe
{
/// Creates a new Path without checking for null bytes.
/// The resulting Path will always be normalized.
unsafe
fn
new
_unchecked
<
T
:
BytesContainer
>
(
path
:
T
)
->
Self
;
unsafe
fn
init
_unchecked
<
T
:
BytesContainer
>
(
path
:
T
)
->
Self
;
/// Replaces the filename portion of the path without checking for null
/// bytes.
...
...
@@ -694,11 +694,11 @@ mod tests {
#[test]
fn
test_cstring
()
{
let
input
=
"/foo/bar/baz"
;
let
path
:
PosixPath
=
PosixPath
::
new
(
input
.to_c_str
());
let
path
:
PosixPath
=
PosixPath
::
init
(
input
.to_c_str
());
assert_eq!
(
path
.as_vec
(),
input
.as_bytes
());
let
input
=
r"\foo\bar\baz"
;
let
path
:
WindowsPath
=
WindowsPath
::
new
(
input
.to_c_str
());
let
path
:
WindowsPath
=
WindowsPath
::
init
(
input
.to_c_str
());
assert_eq!
(
path
.as_str
()
.unwrap
(),
input
.as_slice
());
}
}
src/libstd/path/posix.rs
浏览文件 @
c54427dd
此差异已折叠。
点击以展开。
src/libstd/path/windows.rs
浏览文件 @
c54427dd
此差异已折叠。
点击以展开。
src/libstd/rand/os.rs
浏览文件 @
c54427dd
...
...
@@ -61,7 +61,7 @@ impl OSRng {
#[cfg(unix)]
pub
fn
new
()
->
OSRng
{
use
path
::
Path
;
let
reader
=
File
::
open
(
&
Path
::
new
(
"/dev/urandom"
));
let
reader
=
File
::
open
(
&
Path
::
init
(
"/dev/urandom"
));
let
reader
=
reader
.expect
(
"Error opening /dev/urandom"
);
let
reader_rng
=
ReaderRng
::
new
(
reader
);
...
...
src/libstd/rt/test.rs
浏览文件 @
c54427dd
...
...
@@ -383,7 +383,7 @@ pub fn next_test_unix() -> Path {
if
cfg!
(
unix
)
{
os
::
tmpdir
()
.join
(
rand
::
task_rng
()
.gen_ascii_str
(
20
))
}
else
{
Path
::
new
(
r"\\.\pipe\"
+
rand
::
task_rng
()
.gen_ascii_str
(
20
))
Path
::
init
(
r"\\.\pipe\"
+
rand
::
task_rng
()
.gen_ascii_str
(
20
))
}
}
...
...
src/libstd/run.rs
浏览文件 @
c54427dd
...
...
@@ -506,7 +506,7 @@ fn test_keep_current_working_dir() {
let
output
=
str
::
from_utf8
(
prog
.finish_with_output
()
.output
);
let
parent_dir
=
os
::
getcwd
();
let
child_dir
=
Path
::
new
(
output
.trim
());
let
child_dir
=
Path
::
init
(
output
.trim
());
let
parent_stat
=
parent_dir
.stat
();
let
child_stat
=
child_dir
.stat
();
...
...
@@ -523,7 +523,7 @@ fn test_change_working_directory() {
let
mut
prog
=
run_pwd
(
Some
(
&
parent_dir
));
let
output
=
str
::
from_utf8
(
prog
.finish_with_output
()
.output
);
let
child_dir
=
Path
::
new
(
output
.trim
());
let
child_dir
=
Path
::
init
(
output
.trim
());
let
parent_stat
=
parent_dir
.stat
();
let
child_stat
=
child_dir
.stat
();
...
...
src/libstd/unstable/dynamic_lib.rs
浏览文件 @
c54427dd
...
...
@@ -122,7 +122,7 @@ fn test_loading_cosine() {
fn
test_errors_do_not_crash
()
{
// Open /dev/null as a library to get an error, and make sure
// that only causes an error, and not a crash.
let
path
=
GenericPath
::
new
(
"/dev/null"
);
let
path
=
GenericPath
::
init
(
"/dev/null"
);
match
DynamicLibrary
::
open
(
Some
(
&
path
))
{
Err
(
_
)
=>
{}
Ok
(
_
)
=>
fail
!
(
"Successfully opened the empty library."
)
...
...
src/libsyntax/ext/source_util.rs
浏览文件 @
c54427dd
...
...
@@ -82,7 +82,7 @@ pub fn expand_include(cx: @ExtCtxt, sp: Span, tts: &[ast::token_tree])
let
file
=
get_single_str_from_tts
(
cx
,
sp
,
tts
,
"include!"
);
let
p
=
parse
::
new_sub_parser_from_file
(
cx
.parse_sess
(),
cx
.cfg
(),
&
res_rel_file
(
cx
,
sp
,
&
Path
::
new
(
file
)),
sp
);
&
res_rel_file
(
cx
,
sp
,
&
Path
::
init
(
file
)),
sp
);
base
::
MRExpr
(
p
.parse_expr
())
}
...
...
@@ -90,7 +90,7 @@ pub fn expand_include(cx: @ExtCtxt, sp: Span, tts: &[ast::token_tree])
pub
fn
expand_include_str
(
cx
:
@
ExtCtxt
,
sp
:
Span
,
tts
:
&
[
ast
::
token_tree
])
->
base
::
MacResult
{
let
file
=
get_single_str_from_tts
(
cx
,
sp
,
tts
,
"include_str!"
);
let
file
=
res_rel_file
(
cx
,
sp
,
&
Path
::
new
(
file
));
let
file
=
res_rel_file
(
cx
,
sp
,
&
Path
::
init
(
file
));
let
bytes
=
match
io
::
result
(||
File
::
open
(
&
file
)
.read_to_end
())
{
Err
(
e
)
=>
{
cx
.span_fatal
(
sp
,
format!
(
"couldn't read {}: {}"
,
...
...
@@ -112,7 +112,7 @@ pub fn expand_include_bin(cx: @ExtCtxt, sp: Span, tts: &[ast::token_tree])
use
std
::
at_vec
;
let
file
=
get_single_str_from_tts
(
cx
,
sp
,
tts
,
"include_bin!"
);
let
file
=
res_rel_file
(
cx
,
sp
,
&
Path
::
new
(
file
));
let
file
=
res_rel_file
(
cx
,
sp
,
&
Path
::
init
(
file
));
match
io
::
result
(||
File
::
open
(
&
file
)
.read_to_end
())
{
Err
(
e
)
=>
{
cx
.span_fatal
(
sp
,
format!
(
"couldn't read {}: {}"
,
...
...
@@ -156,7 +156,7 @@ fn topmost_expn_info(expn_info: @codemap::ExpnInfo) -> @codemap::ExpnInfo {
fn
res_rel_file
(
cx
:
@
ExtCtxt
,
sp
:
codemap
::
Span
,
arg
:
&
Path
)
->
Path
{
// NB: relative paths are resolved relative to the compilation unit
if
!
arg
.is_absolute
()
{
let
mut
cu
=
Path
::
new
(
cx
.codemap
()
.span_to_filename
(
sp
));
let
mut
cu
=
Path
::
init
(
cx
.codemap
()
.span_to_filename
(
sp
));
cu
.pop
();
cu
.push
(
arg
);
cu
...
...
src/libsyntax/parse/parser.rs
浏览文件 @
c54427dd
...
...
@@ -4216,10 +4216,10 @@ fn eval_src_mod(&self,
outer_attrs
:
&
[
ast
::
Attribute
],
id_sp
:
Span
)
->
(
ast
::
item_
,
~
[
ast
::
Attribute
])
{
let
mut
prefix
=
Path
::
new
(
self
.sess.cm
.span_to_filename
(
*
self
.span
));
let
mut
prefix
=
Path
::
init
(
self
.sess.cm
.span_to_filename
(
*
self
.span
));
prefix
.pop
();
let
mod_path_stack
=
&*
self
.mod_path_stack
;
let
mod_path
=
Path
::
new
(
"."
)
.join_many
(
*
mod_path_stack
);
let
mod_path
=
Path
::
init
(
"."
)
.join_many
(
*
mod_path_stack
);
let
dir_path
=
prefix
.join
(
&
mod_path
);
let
file_path
=
match
::
attr
::
first_attr_value_str_by_name
(
outer_attrs
,
"path"
)
{
...
...
src/test/bench/core-std.rs
浏览文件 @
c54427dd
...
...
@@ -72,7 +72,7 @@ fn shift_push() {
fn
read_line
()
{
use
std
::
io
::
buffered
::
BufferedReader
;
let
mut
path
=
Path
::
new
(
env!
(
"CFG_SRC_DIR"
));
let
mut
path
=
Path
::
init
(
env!
(
"CFG_SRC_DIR"
));
path
.push
(
"src/test/bench/shootout-k-nucleotide.data"
);
for
_
in
range
(
0
,
3
)
{
...
...
src/test/bench/shootout-fasta.rs
浏览文件 @
c54427dd
...
...
@@ -123,7 +123,7 @@ fn main() {
};
let
writer
=
if
os
::
getenv
(
"RUST_BENCH"
)
.is_some
()
{
let
file
=
File
::
create
(
&
Path
::
new
(
"./shootout-fasta.data"
));
let
file
=
File
::
create
(
&
Path
::
init
(
"./shootout-fasta.data"
));
@
mut
file
as
@
mut
io
::
Writer
}
else
{
@
mut
io
::
stdout
()
as
@
mut
io
::
Writer
...
...
src/test/run-pass/glob-std.rs
浏览文件 @
c54427dd
...
...
@@ -22,14 +22,14 @@
pub
fn
main
()
{
fn
mk_file
(
path
:
&
str
,
directory
:
bool
)
{
if
directory
{
io
::
fs
::
mkdir
(
&
Path
::
new
(
path
),
io
::
UserRWX
);
io
::
fs
::
mkdir
(
&
Path
::
init
(
path
),
io
::
UserRWX
);
}
else
{
io
::
File
::
create
(
&
Path
::
new
(
path
));
io
::
File
::
create
(
&
Path
::
init
(
path
));
}
}
fn
abs_path
(
path
:
&
str
)
->
Path
{
os
::
getcwd
()
.join
(
&
Path
::
new
(
path
))
os
::
getcwd
()
.join
(
&
Path
::
init
(
path
))
}
fn
glob_vec
(
pattern
:
&
str
)
->
~
[
Path
]
{
...
...
src/test/run-pass/issue-3424.rs
浏览文件 @
c54427dd
...
...
@@ -23,7 +23,7 @@ fn tester()
{
let
loader
:
rsrc_loader
=
proc
(
_
path
)
{
result
::
Ok
(
~
"more blah"
)};
let
path
=
path
::
Path
::
new
(
"blah"
);
let
path
=
path
::
Path
::
init
(
"blah"
);
assert
!
(
loader
(
&
path
)
.is_ok
());
}
...
...
src/test/run-pass/stat.rs
浏览文件 @
c54427dd
...
...
@@ -16,7 +16,7 @@
use
std
::
io
::
File
;
pub
fn
main
()
{
let
dir
=
tempfile
::
TempDir
::
new_in
(
&
Path
::
new
(
"."
),
""
)
.unwrap
();
let
dir
=
tempfile
::
TempDir
::
new_in
(
&
Path
::
init
(
"."
),
""
)
.unwrap
();
let
path
=
dir
.path
()
.join
(
"file"
);
{
...
...
src/test/run-pass/tempfile.rs
浏览文件 @
c54427dd
...
...
@@ -30,7 +30,7 @@
fn
test_tempdir
()
{
let
path
=
{
let
p
=
TempDir
::
new_in
(
&
Path
::
new
(
"."
),
"foobar"
)
.unwrap
();
let
p
=
TempDir
::
new_in
(
&
Path
::
init
(
"."
),
"foobar"
)
.unwrap
();
let
p
=
p
.path
();
assert
!
(
p
.as_vec
()
.ends_with
(
bytes!
(
"foobar"
)));
p
.clone
()
...
...
@@ -83,7 +83,7 @@ fn test_rm_tempdir() {
// Ideally these would be in std::os but then core would need
// to depend on std
fn
recursive_mkdir_rel
()
{
let
path
=
Path
::
new
(
"frob"
);
let
path
=
Path
::
init
(
"frob"
);
let
cwd
=
os
::
getcwd
();
debug!
(
"recursive_mkdir_rel: Making: {} in cwd {} [{:?}]"
,
path
.display
(),
cwd
.display
(),
path
.exists
());
...
...
@@ -94,21 +94,21 @@ fn recursive_mkdir_rel() {
}
fn
recursive_mkdir_dot
()
{
let
dot
=
Path
::
new
(
"."
);
let
dot
=
Path
::
init
(
"."
);
fs
::
mkdir_recursive
(
&
dot
,
io
::
UserRWX
);
let
dotdot
=
Path
::
new
(
".."
);
let
dotdot
=
Path
::
init
(
".."
);
fs
::
mkdir_recursive
(
&
dotdot
,
io
::
UserRWX
);
}
fn
recursive_mkdir_rel_2
()
{
let
path
=
Path
::
new
(
"./frob/baz"
);
let
path
=
Path
::
init
(
"./frob/baz"
);
let
cwd
=
os
::
getcwd
();
debug!
(
"recursive_mkdir_rel_2: Making: {} in cwd {} [{:?}]"
,
path
.display
(),
cwd
.display
(),
path
.exists
());
fs
::
mkdir_recursive
(
&
path
,
io
::
UserRWX
);
assert
!
(
path
.is_dir
());
assert
!
(
path
.dir_path
()
.is_dir
());
let
path2
=
Path
::
new
(
"quux/blat"
);
let
path2
=
Path
::
init
(
"quux/blat"
);
debug!
(
"recursive_mkdir_rel_2: Making: {} in cwd {}"
,
path2
.display
(),
cwd
.display
());
fs
::
mkdir_recursive
(
&
path2
,
io
::
UserRWX
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录