diff --git a/compiler/main.v b/compiler/main.v index af4bbf6d45..077d7e4c67 100644 --- a/compiler/main.v +++ b/compiler/main.v @@ -523,7 +523,7 @@ mut args := '' } println('linux cross compilation done. resulting binary: "$c.out_name"') } - // print_time('after gcc') + //os.rm('$TmpPath/$c.out_name_c') } fn (c &V) v_files_from_dir(dir string) []string { @@ -851,6 +851,10 @@ fn new_v(args[]string) *V { } fn run_repl() []string { + if $windows { + println('REPL does not work on Windows yet, sorry!') + exit1() + } println('V $Version') println('Use Ctrl-D to exit') println('For now you have to use println() to print values, this will be fixed soon\n') @@ -900,6 +904,7 @@ Options: -obf Obfuscate the resulting binary. run Build and execute a V program. You can add arguments after file name. + Files: _test.v Test file. ' diff --git a/os/os.v b/os/os.v index 0dfd7a220b..18b2a20c9f 100644 --- a/os/os.v +++ b/os/os.v @@ -271,11 +271,21 @@ pub fn getenv(key string) string { } pub fn setenv(name string, value string, overwrite bool) int { +$if windows { + +} +$else { return C.setenv(name.cstr(), value.cstr(), overwrite) +} } pub fn unsetenv(name string) int { +$if windows { + +} +$else { return C.unsetenv(name.cstr()) +} } // `file_exists` returns true if `path` exists. @@ -370,28 +380,38 @@ pub fn filename(path string) string { //Otherwise, it would cause a valgrind warning and may be dangerous //Malloc takes an int as argument so a cast has to be made pub fn get_line() string { - max := u64(256) - buf := malloc(int(max)) - nr_chars := C.getline(&buf, &max, stdin) - if nr_chars == 0 { - return '' - } - if buf[nr_chars - 1] == `\n` /* newline */ { - return tos(buf, nr_chars - 1) - } - /* To prevent cutting end of line if no newline */ - return tos(buf, nr_chars) + $if windows { + panic('get_line() not implemented on Windows yet, sorry!') + } + $else { + max := u64(256) + buf := malloc(int(max)) + nr_chars := C.getline(&buf, &max, stdin) + if nr_chars == 0 { + return '' + } + if buf[nr_chars - 1] == `\n` { // newline + return tos(buf, nr_chars - 1) + } + // To prevent cutting end of line if no newline + return tos(buf, nr_chars) + } } // get_raw_line returns a one-line string from stdin along with '\n' if there is any pub fn get_raw_line() string { - max := u64(256) - buf := malloc(int(max)) - nr_chars := C.getline(&buf, &max, stdin) - if nr_chars == 0 { - return '' - } - return tos(buf, nr_chars) + $if windows { + panic('get_raw_line() not implemented on Windows yet, sorry!') + } + $else { + max := u64(256) + buf := malloc(int(max)) + nr_chars := C.getline(&buf, &max, stdin) + if nr_chars == 0 { + return '' + } + return tos(buf, nr_chars) + } } pub fn user_os() string {