`setenv` and `unsetenv` for windows fix

pull/1182/head
Ned Palacios 2019-07-16 22:27:07 +08:00 committed by Alexander Medvednikov
parent f5fa43d2fa
commit e638e47af5
1 changed files with 21 additions and 14 deletions

View File

@ -106,7 +106,6 @@ fn parse_windows_cmd_line(cmd byteptr) []string {
} }
// read_file reads the file in `path` and returns the contents. // read_file reads the file in `path` and returns the contents.
//pub fn read_file(path string) ?string {
pub fn read_file(path string) ?string { pub fn read_file(path string) ?string {
mut res := '' mut res := ''
mut mode := 'rb' mut mode := 'rb'
@ -293,21 +292,29 @@ pub fn getenv(key string) string {
} }
pub fn setenv(name string, value string, overwrite bool) int { pub fn setenv(name string, value string, overwrite bool) int {
$if windows { $if windows {
format := '$name=$value'
}
$else { if overwrite {
return C.setenv(name.cstr(), value.cstr(), overwrite) return C._putenv(format.cstr())
} }
return -1
}
$else {
return C.setenv(name.cstr(), value.cstr(), overwrite)
}
} }
pub fn unsetenv(name string) int { pub fn unsetenv(name string) int {
$if windows { $if windows {
format := '${name}='
}
$else { return C._putenv(format.cstr())
return C.unsetenv(name.cstr()) }
} $else {
return C.unsetenv(name.cstr())
}
} }
// `file_exists` returns true if `path` exists. // `file_exists` returns true if `path` exists.
@ -347,7 +354,7 @@ pub fn mkdir(path string) {
// rm removes file in `path`. // rm removes file in `path`.
pub fn rm(path string) { pub fn rm(path string) {
C.remove(path.cstr()) C.remove(path.cstr())
// C.unlink(path.cstr()) // C.unlink(path.cstr())
} }