diff --git a/cmd/tools/vfmt.v b/cmd/tools/vfmt.v index bccc59793a..353828c541 100644 --- a/cmd/tools/vfmt.v +++ b/cmd/tools/vfmt.v @@ -48,7 +48,7 @@ fn main() { //} toolexe := os.executable() util.set_vroot_folder(os.dir(os.dir(os.dir(toolexe)))) - args := join_flags_and_argument() + args := util.join_env_vflags_and_os_args() foptions := FormatOptions{ is_c: '-c' in args is_l: '-l' in args @@ -326,31 +326,6 @@ fn get_compile_name_of_potential_v_project(file string) string { return pfolder } -//TODO Move join_flags_and_argument() and non_empty() into `cmd/internal` when v.mod work correctly -//to prevent code duplication with `cmd/v` (cmd/v/flag.v) -fn join_flags_and_argument() []string { - vosargs := os.getenv('VOSARGS') - if vosargs != '' { - return non_empty(vosargs.split(' ')) - } - - mut args := []string - vflags := os.getenv('VFLAGS') - if vflags != '' { - args << os.args[0] - args << vflags.split(' ') - if os.args.len > 1 { - args << os.args[1..] - } - return non_empty(args) - } - - return non_empty(os.args) -} -fn non_empty(arg []string) []string { - return arg.filter(it != '') -} - fn verror(s string){ util.verror('vfmt error', s) } diff --git a/cmd/v/v.v b/cmd/v/v.v index 9dccf01213..02c90f7d00 100644 --- a/cmd/v/v.v +++ b/cmd/v/v.v @@ -33,7 +33,7 @@ const ( ) fn main() { - args := os.args[1..] + args := util.join_env_vflags_and_os_args()[1..] //args = 123 if args.len == 0 || args[0] in ['-', 'repl'] { // Running `./v` without args launches repl @@ -182,7 +182,8 @@ fn parse_args(args []string) (&pref.Preferences, string) { else if command == 'run' { res.is_run = true res.path = args[command_pos+1] - res.run_args = args[command_pos+1..] + res.run_args = if command_pos+1 < args.len { args[command_pos+2..] } else { []string } + eprintln('res.run_args: ' + res.run_args.join(' ')) } if command == 'build-module' { res.build_mode = .build_module diff --git a/vlib/v/util/util.v b/vlib/v/util/util.v index 3a6b183011..e8e0d7aaea 100644 --- a/vlib/v/util/util.v +++ b/vlib/v/util/util.v @@ -220,3 +220,25 @@ fn replace_op(s string) string { } return s[..s.len - 1] + suffix } + +pub fn join_env_vflags_and_os_args() []string { + vosargs := os.getenv('VOSARGS') + if vosargs != '' { + return non_empty(vosargs.split(' ')) + } + mut args := []string + vflags := os.getenv('VFLAGS') + if vflags != '' { + args << os.args[0] + args << vflags.split(' ') + if os.args.len > 1 { + args << os.args[1..] + } + return non_empty(args) + } + return non_empty(os.args) +} + +fn non_empty(arg []string) []string { + return arg.filter(it != '') +}