5
5
use crate :: ShellCore ;
6
6
use super :: utils;
7
7
8
- pub fn cd ( core : & mut ShellCore , args : & mut [ String ] ) -> i32 {
8
+ pub fn cd ( core : & mut ShellCore , args : & [ String ] ) -> i32 {
9
9
if args. len ( ) > 2 {
10
10
eprintln ! ( "sush: cd: too many arguments" ) ;
11
11
return 1 ;
@@ -23,15 +23,16 @@ pub fn cd(core: &mut ShellCore, args: &mut [String]) -> i32 {
23
23
}
24
24
}
25
25
26
- fn cd_1arg ( core : & mut ShellCore , args : & mut [ String ] ) -> i32 {
26
+ fn cd_1arg ( core : & mut ShellCore , args : & [ String ] ) -> i32 {
27
27
let var = "~" . to_string ( ) ;
28
28
let mut args = args. to_vec ( ) ;
29
29
args. push ( var) ;
30
30
set_oldpwd ( core) ;
31
31
change_directory ( core, & mut args)
32
32
}
33
33
34
- fn cd_oldpwd ( core : & mut ShellCore , args : & mut [ String ] ) -> i32 {
34
+ fn cd_oldpwd ( core : & mut ShellCore , args : & [ String ] ) -> i32 {
35
+ let mut args = args. to_vec ( ) ;
35
36
if let Ok ( old) = core. db . get_param ( "OLDPWD" ) {
36
37
println ! ( "{}" , & old) ;
37
38
args[ 1 ] = old. to_string ( ) ;
@@ -41,7 +42,7 @@ fn cd_oldpwd(core: &mut ShellCore, args: &mut [String]) -> i32 {
41
42
}
42
43
43
44
set_oldpwd ( core) ;
44
- change_directory ( core, args)
45
+ change_directory ( core, & mut args)
45
46
}
46
47
47
48
fn set_oldpwd ( core : & mut ShellCore ) {
@@ -50,7 +51,7 @@ fn set_oldpwd(core: &mut ShellCore) {
50
51
} ;
51
52
}
52
53
53
- fn change_directory ( core : & mut ShellCore , args : & mut [ String ] ) -> i32 {
54
+ fn change_directory ( core : & mut ShellCore , args : & [ String ] ) -> i32 {
54
55
let path = utils:: make_canonical_path ( core, & args[ 1 ] ) ;
55
56
if core. set_current_directory ( & path) . is_ok ( ) {
56
57
let _ = core. db . set_param ( "PWD" , & path. display ( ) . to_string ( ) , None ) ;
0 commit comments