os: realpath => real_path

pull/4081/head
yuyi 2020-03-20 23:41:18 +08:00 committed by GitHub
parent 5f32663714
commit 2f27758a4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 71 additions and 71 deletions

View File

@ -10,7 +10,7 @@ fn main() {
files_paths := os.args[1..] files_paths := os.args[1..]
mut errors := 0 mut errors := 0
for file_path in files_paths { for file_path in files_paths {
real_path := os.realpath(file_path) real_path := os.real_path(file_path)
lines := os.read_lines(real_path) or { lines := os.read_lines(real_path) or {
continue continue
} }
@ -22,7 +22,7 @@ fn main() {
} }
} }
// TODO: uncomment this AFTER doc/docs.md line lengths are fixed // TODO: uncomment this AFTER doc/docs.md line lengths are fixed
/* /*
if errors > 0 { if errors > 0 {
exit(1) exit(1)
} }

View File

@ -36,7 +36,7 @@ pub fn (ts mut TestSession) test() {
mut remaining_files := []string mut remaining_files := []string
for dot_relative_file in ts.files { for dot_relative_file in ts.files {
relative_file := dot_relative_file.replace('./', '') relative_file := dot_relative_file.replace('./', '')
file := os.realpath(relative_file) file := os.real_path(relative_file)
$if windows { $if windows {
if file.contains('sqlite') || file.contains('httpbin') { if file.contains('sqlite') || file.contains('httpbin') {
continue continue
@ -92,7 +92,7 @@ fn worker_trunner(p mut sync.PoolProcessor, idx int, thread_id int) voidptr {
tls_bench.cstep = idx tls_bench.cstep = idx
dot_relative_file := p.get_string_item(idx) dot_relative_file := p.get_string_item(idx)
relative_file := dot_relative_file.replace('./', '') relative_file := dot_relative_file.replace('./', '')
file := os.realpath(relative_file) file := os.real_path(relative_file)
// Ensure that the generated binaries will be stored in the temporary folder. // Ensure that the generated binaries will be stored in the temporary folder.
// Remove them after a test passes/fails. // Remove them after a test passes/fails.
fname := os.file_name(file) fname := os.file_name(file)

View File

@ -41,7 +41,7 @@ pub fn line_to_timestamp_and_commit(line string) (int,string) {
pub fn normalized_workpath_for_commit(workdir string, commit string) string { pub fn normalized_workpath_for_commit(workdir string, commit string) string {
nc := 'v_at_' + commit.replace('^', '_').replace('-', '_').replace('/', '_') nc := 'v_at_' + commit.replace('^', '_').replace('-', '_').replace('/', '_')
return os.realpath(workdir + os.path_separator + nc) return os.real_path(workdir + os.path_separator + nc)
} }
pub fn prepare_vc_source(vcdir string, cdir string, commit string) (string,string) { pub fn prepare_vc_source(vcdir string, cdir string, commit string) (string,string) {
@ -96,7 +96,7 @@ pub mut:
pub fn (vgit_context mut VGitContext) compile_oldv_if_needed() { pub fn (vgit_context mut VGitContext) compile_oldv_if_needed() {
vgit_context.vexename = if os.user_os() == 'windows' { 'v.exe' } else { 'v' } vgit_context.vexename = if os.user_os() == 'windows' { 'v.exe' } else { 'v' }
vgit_context.vexepath = os.realpath(os.join_path(vgit_context.path_v, vgit_context.vexename)) vgit_context.vexepath = os.real_path(os.join_path(vgit_context.path_v, vgit_context.vexename))
mut command_for_building_v_from_c_source := '' mut command_for_building_v_from_c_source := ''
mut command_for_selfbuilding := '' mut command_for_selfbuilding := ''
if 'windows' == os.user_os() { if 'windows' == os.user_os() {
@ -137,7 +137,7 @@ pub fn (vgit_context mut VGitContext) compile_oldv_if_needed() {
pub fn add_common_tool_options<T>(context mut T, fp mut flag.FlagParser) []string { pub fn add_common_tool_options<T>(context mut T, fp mut flag.FlagParser) []string {
tdir := os.temp_dir() tdir := os.temp_dir()
context.workdir = os.realpath(fp.string('workdir', `w`, tdir, 'A writable base folder. Default: $tdir')) context.workdir = os.real_path(fp.string('workdir', `w`, tdir, 'A writable base folder. Default: $tdir'))
context.v_repo_url = fp.string('vrepo', 0, vgit.remote_v_repo_url, 'The url of the V repository. You can clone it locally too. See also --vcrepo below.') context.v_repo_url = fp.string('vrepo', 0, vgit.remote_v_repo_url, 'The url of the V repository. You can clone it locally too. See also --vcrepo below.')
context.vc_repo_url = fp.string('vcrepo', 0, vgit.remote_vc_repo_url, 'The url of the vc repository. You can clone it context.vc_repo_url = fp.string('vcrepo', 0, vgit.remote_vc_repo_url, 'The url of the vc repository. You can clone it
${flag.SPACE}beforehand, and then just give the local folder ${flag.SPACE}beforehand, and then just give the local folder
@ -158,11 +158,11 @@ ${flag.SPACE}to script it/run it in a restrictive vps/docker.
} }
if os.is_dir(context.v_repo_url) { if os.is_dir(context.v_repo_url) {
context.v_repo_url = os.realpath( context.v_repo_url ) context.v_repo_url = os.real_path( context.v_repo_url )
} }
if os.is_dir(context.vc_repo_url) { if os.is_dir(context.vc_repo_url) {
context.vc_repo_url = os.realpath( context.vc_repo_url ) context.vc_repo_url = os.real_path( context.vc_repo_url )
} }
commits := fp.finalize() or { commits := fp.finalize() or {

View File

@ -3,7 +3,7 @@ module vhelp
import os import os
pub fn show_topic(topic string) { pub fn show_topic(topic string) {
vexe := os.realpath(os.getenv('VEXE')) vexe := os.real_path(os.getenv('VEXE'))
vroot := os.dir(vexe) vroot := os.dir(vexe)
target_topic := os.join_path(vroot,'cmd','v','internal','help','${topic}.txt') target_topic := os.join_path(vroot,'cmd','v','internal','help','${topic}.txt')
content := os.read_file(target_topic) or { content := os.read_file(target_topic) or {
@ -12,4 +12,4 @@ pub fn show_topic(topic string) {
} }
println(content) println(content)
} }

View File

@ -164,7 +164,7 @@ fn (c Context) compare_v_performance(label string, commands []string) string {
hyperfine_commands_arguments << " \'cd ${c.a:-34s} ; ./$cmd \' ".replace_each(['@COMPILER@', source_location_a, '@DEBUG@', debug_option_a]) hyperfine_commands_arguments << " \'cd ${c.a:-34s} ; ./$cmd \' ".replace_each(['@COMPILER@', source_location_a, '@DEBUG@', debug_option_a])
} }
// ///////////////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////////////
cmd_stats_file := os.realpath([c.workdir, 'v_performance_stats_${label}.json'].join(os.path_separator)) cmd_stats_file := os.real_path([c.workdir, 'v_performance_stats_${label}.json'].join(os.path_separator))
comparison_cmd := 'hyperfine $c.hyperfineopts ' + '--export-json ${cmd_stats_file} ' + '--time-unit millisecond ' + '--style full --warmup $c.warmups ' + hyperfine_commands_arguments.join(' ') comparison_cmd := 'hyperfine $c.hyperfineopts ' + '--export-json ${cmd_stats_file} ' + '--time-unit millisecond ' + '--style full --warmup $c.warmups ' + hyperfine_commands_arguments.join(' ')
// ///////////////////////////////////////////////////////////////////////////// // /////////////////////////////////////////////////////////////////////////////
if c.verbose { if c.verbose {

View File

@ -19,7 +19,7 @@ fn cb_assertion_failed(filename string, line int, sourceline string, funcname st
else { else {
true} true}
} }
final_filename := if use_relative_paths { filename } else { os.realpath(filename) } final_filename := if use_relative_paths { filename } else { os.real_path(filename) }
final_funcname := funcname.replace('main__', '').replace('__', '.') final_funcname := funcname.replace('main__', '').replace('__', '.')
mut fail_message := 'FAILED assertion' mut fail_message := 'FAILED assertion'
if color_on { if color_on {

View File

@ -108,7 +108,7 @@ fn main() {
} }
mut errors := 0 mut errors := 0
for file in files { for file in files {
fpath := os.realpath(file) fpath := os.real_path(file)
mut worker_command_array := cli_args_no_files.clone() mut worker_command_array := cli_args_no_files.clone()
worker_command_array << ['-worker', fpath] worker_command_array << ['-worker', fpath]
worker_cmd := worker_command_array.join(' ') worker_cmd := worker_command_array.join(' ')
@ -371,7 +371,7 @@ fn get_compile_name_of_potential_v_project(file string) string {
// This function get_compile_name_of_potential_v_project returns: // This function get_compile_name_of_potential_v_project returns:
// a) the file's folder, if file is part of a v project // a) the file's folder, if file is part of a v project
// b) the file itself, if the file is a standalone v program // b) the file itself, if the file is a standalone v program
pfolder := os.realpath(os.dir(file)) pfolder := os.real_path(os.dir(file))
// a .v project has many 'module main' files in one folder // a .v project has many 'module main' files in one folder
// if there is only one .v file, then it must be a standalone // if there is only one .v file, then it must be a standalone
all_files_in_pfolder := os.ls(pfolder) or { all_files_in_pfolder := os.ls(pfolder) or {

View File

@ -73,7 +73,7 @@ fn main(){
mut files := []string mut files := []string
locations := fp.finalize() or { eprintln('Error: ' + err) exit(1) } locations := fp.finalize() or { eprintln('Error: ' + err) exit(1) }
for xloc in locations { for xloc in locations {
loc := os.realpath(xloc) loc := os.real_path(xloc)
xfiles := if os.is_dir(loc){ os.walk_ext(loc,'.v') } else { [loc] } xfiles := if os.is_dir(loc){ os.walk_ext(loc,'.v') } else { [loc] }
filtered_files := xfiles.filter(!it.ends_with('_js.v')) filtered_files := xfiles.filter(!it.ends_with('_js.v'))
files << filtered_files files << filtered_files

View File

@ -146,7 +146,7 @@ fn vpm_install(module_names []string) {
println('Skipping module "$name", since it uses an unsupported VCS {$vcs} .') println('Skipping module "$name", since it uses an unsupported VCS {$vcs} .')
continue continue
} }
final_module_path := os.realpath(os.join_path(settings.vmodules_path,mod.name.replace('.', os.path_separator))) final_module_path := os.real_path(os.join_path(settings.vmodules_path,mod.name.replace('.', os.path_separator)))
if os.exists(final_module_path) { if os.exists(final_module_path) {
vpm_update([name]) vpm_update([name])
continue continue
@ -237,7 +237,7 @@ fn vpm_remove(module_names []string) {
os.rmdir_all(final_module_path) os.rmdir_all(final_module_path)
// delete author directory if it is empty // delete author directory if it is empty
author := name.split('.')[0] author := name.split('.')[0]
author_dir := os.realpath(os.join_path(settings.vmodules_path,author)) author_dir := os.real_path(os.join_path(settings.vmodules_path,author))
if os.is_dir_empty(author_dir) { if os.is_dir_empty(author_dir) {
verbose_println('removing author folder $author_dir') verbose_println('removing author folder $author_dir')
os.rmdir(author_dir) os.rmdir(author_dir)
@ -247,7 +247,7 @@ fn vpm_remove(module_names []string) {
fn valid_final_path_of_existing_module(name string) ?string { fn valid_final_path_of_existing_module(name string) ?string {
name_of_vmodules_folder := os.join_path(settings.vmodules_path,name.replace('.', os.path_separator)) name_of_vmodules_folder := os.join_path(settings.vmodules_path,name.replace('.', os.path_separator))
final_module_path := os.realpath(name_of_vmodules_folder) final_module_path := os.real_path(name_of_vmodules_folder)
if !os.exists(final_module_path) { if !os.exists(final_module_path) {
println('No module with name "$name" exists at $name_of_vmodules_folder') println('No module with name "$name" exists at $name_of_vmodules_folder')
return none return none
@ -279,7 +279,7 @@ fn vpm_help() {
fn vcs_used_in_dir(dir string) ?[]string { fn vcs_used_in_dir(dir string) ?[]string {
mut vcs := []string mut vcs := []string
for repo_subfolder in supported_vcs_folders { for repo_subfolder in supported_vcs_folders {
checked_folder := os.realpath(os.join_path(dir,repo_subfolder)) checked_folder := os.real_path(os.join_path(dir,repo_subfolder))
if os.is_dir(checked_folder) { if os.is_dir(checked_folder) {
vcs << repo_subfolder.replace('.', '') vcs << repo_subfolder.replace('.', '')
} }

View File

@ -216,7 +216,7 @@ fn main() {
// so that the repl can be launched in parallel by several different // so that the repl can be launched in parallel by several different
// threads by the REPL test runner. // threads by the REPL test runner.
args := cmdline.options_after(os.args, ['repl']) args := cmdline.options_after(os.args, ['repl'])
replfolder := os.realpath( cmdline.option(args, '-replfolder', '.') ) replfolder := os.real_path( cmdline.option(args, '-replfolder', '.') )
replprefix := cmdline.option(args, '-replprefix', 'noprefix.') replprefix := cmdline.option(args, '-replprefix', 'noprefix.')
os.chdir( replfolder ) os.chdir( replfolder )
if !os.exists(os.getenv('VEXE')) { if !os.exists(os.getenv('VEXE')) {

View File

@ -15,8 +15,8 @@ fn launch_tool(verbosity pref.VerboseLevel, tool_name string) {
compiler.set_vroot_folder(vroot) compiler.set_vroot_folder(vroot)
tool_args := os.args[1..].join(' ') tool_args := os.args[1..].join(' ')
tool_exe := path_of_executable(os.realpath('$vroot/cmd/tools/$tool_name')) tool_exe := path_of_executable(os.real_path('$vroot/cmd/tools/$tool_name'))
tool_source := os.realpath('$vroot/cmd/tools/${tool_name}.v') tool_source := os.real_path('$vroot/cmd/tools/${tool_name}.v')
tool_command := '"$tool_exe" $tool_args' tool_command := '"$tool_exe" $tool_args'
if verbosity.is_higher_or_equal(.level_two) { if verbosity.is_higher_or_equal(.level_two) {
eprintln('launch_tool vexe : $vroot') eprintln('launch_tool vexe : $vroot')

View File

@ -19,7 +19,7 @@ import sdl.ttf as ttf
const ( const (
Title = 'tVintris' Title = 'tVintris'
BASE = os.dir( os.realpath( os.executable() ) ) BASE = os.dir( os.real_path( os.executable() ) )
FontName = BASE + '/../../assets/fonts/RobotoMono-Regular.ttf' FontName = BASE + '/../../assets/fonts/RobotoMono-Regular.ttf'
MusicName = BASE + '/sounds/TwintrisThosenine.mod' MusicName = BASE + '/sounds/TwintrisThosenine.mod'
SndBlockName = BASE + '/sounds/block.wav' SndBlockName = BASE + '/sounds/block.wav'

View File

@ -176,7 +176,7 @@ fn (v mut V) new_parser_from_file(path string) Parser {
} }
} }
mut p := v.new_parser(new_scanner_file(path)) mut p := v.new_parser(new_scanner_file(path))
path_dir := os.realpath(os.dir(path)) path_dir := os.real_path(os.dir(path))
p = { p = {
p | p |
file_path:path, file_path:path,
@ -418,7 +418,7 @@ fn (p mut Parser) statements_from_text(text string, rcbr bool, fpath string) {
fn (p mut Parser) parse(pass Pass) { fn (p mut Parser) parse(pass Pass) {
p.cgen.line = 0 p.cgen.line = 0
p.cgen.file = cescaped_path(os.realpath(p.file_path)) p.cgen.file = cescaped_path(os.real_path(p.file_path))
// /////////////////////////////////// // ///////////////////////////////////
p.pass = pass p.pass = pass
p.token_idx = 0 p.token_idx = 0

View File

@ -23,7 +23,7 @@ fn (v &V) get_os_cflags() []CFlag {
if v.pref.compile_defines.len > 0 { if v.pref.compile_defines.len > 0 {
ctimedefines << v.pref.compile_defines ctimedefines << v.pref.compile_defines
} }
for flag in v.table.cflags { for flag in v.table.cflags {
if flag.os == '' || (flag.os == 'linux' && v.pref.os == .linux) || (flag.os == 'darwin' && v.pref.os == .mac) || (flag.os == 'freebsd' && v.pref.os == .freebsd) || (flag.os == 'windows' && v.pref.os == .windows) || (flag.os == 'mingw' && v.pref.os == .windows && v.pref.ccompiler != 'msvc') { if flag.os == '' || (flag.os == 'linux' && v.pref.os == .linux) || (flag.os == 'darwin' && v.pref.os == .mac) || (flag.os == 'freebsd' && v.pref.os == .freebsd) || (flag.os == 'windows' && v.pref.os == .windows) || (flag.os == 'mingw' && v.pref.os == .windows && v.pref.ccompiler != 'msvc') {
flags << flag flags << flag
@ -57,7 +57,7 @@ fn (cf &CFlag) format() string {
} }
// convert to absolute path // convert to absolute path
if cf.name == '-I' || cf.name == '-L' || value.ends_with('.o') { if cf.name == '-I' || cf.name == '-L' || value.ends_with('.o') {
value = '"' + os.realpath(value) + '"' value = '"' + os.real_path(value) + '"'
} }
return '$cf.name $value'.trim_space() return '$cf.name $value'.trim_space()
} }

View File

@ -272,7 +272,7 @@ fn (g mut CGen) add_to_main(s string) {
} }
fn (v &V) build_thirdparty_obj_file(path string, moduleflags []CFlag) { fn (v &V) build_thirdparty_obj_file(path string, moduleflags []CFlag) {
obj_path := os.realpath(path) obj_path := os.real_path(path)
if os.exists(obj_path) { if os.exists(obj_path) {
return return
} }
@ -284,7 +284,7 @@ fn (v &V) build_thirdparty_obj_file(path string, moduleflags []CFlag) {
mut cfiles := '' mut cfiles := ''
for file in files { for file in files {
if file.ends_with('.c') { if file.ends_with('.c') {
cfiles += '"' + os.realpath(parent + os.path_separator + file) + '" ' cfiles += '"' + os.real_path(parent + os.path_separator + file) + '" '
} }
} }
btarget := moduleflags.c_options_before_target() btarget := moduleflags.c_options_before_target()

View File

@ -162,7 +162,7 @@ fn (s &Scanner) get_error_filepath() string {
} }
return s.file_path return s.file_path
} }
return os.realpath(s.file_path) return os.real_path(s.file_path)
} }
fn (s &Scanner) is_color_output_on() bool { fn (s &Scanner) is_color_output_on() bool {

View File

@ -78,7 +78,7 @@ fn (v &V) generate_hot_reload_code() {
mut cgen := v.cgen mut cgen := v.cgen
// Hot code reloading // Hot code reloading
if v.pref.is_live { if v.pref.is_live {
mut file := os.realpath(v.pref.path) mut file := os.real_path(v.pref.path)
file_base := os.file_name(file).replace('.v', '') file_base := os.file_name(file).replace('.v', '')
so_name := file_base + '.so' so_name := file_base + '.so'
// Need to build .so file before building the live application // Need to build .so file before building the live application

View File

@ -38,7 +38,7 @@ pub mut:
mod_file_cacher &ModFileCacher // used during lookup for v.mod to support @VROOT mod_file_cacher &ModFileCacher // used during lookup for v.mod to support @VROOT
out_name_c string // name of the temporary C file out_name_c string // name of the temporary C file
files []string // all V files that need to be parsed and compiled files []string // all V files that need to be parsed and compiled
compiled_dir string // contains os.realpath() of the dir of the final file beeing compiled, or the dir itself when doing `v .` compiled_dir string // contains os.real_path() of the dir of the final file beeing compiled, or the dir itself when doing `v .`
table &Table // table with types, vars, functions etc table &Table // table with types, vars, functions etc
cgen &CGen // C code generator cgen &CGen // C code generator
//x64 &x64.Gen //x64 &x64.Gen
@ -56,7 +56,7 @@ pub mut:
} }
pub fn new_v(pref &pref.Preferences) &V { pub fn new_v(pref &pref.Preferences) &V {
rdir := os.realpath(pref.path) rdir := os.real_path(pref.path)
mut out_name_c := get_vtmp_filename(pref.out_name, '.tmp.c') mut out_name_c := get_vtmp_filename(pref.out_name, '.tmp.c')
if pref.is_so { if pref.is_so {
@ -105,13 +105,13 @@ pub fn (v &V) finalize_compilation() {
pub fn (v mut V) add_parser(parser Parser) int { pub fn (v mut V) add_parser(parser Parser) int {
pidx := v.parsers.len pidx := v.parsers.len
v.parsers << parser v.parsers << parser
file_path := if os.is_abs_path(parser.file_path) { parser.file_path } else { os.realpath(parser.file_path) } file_path := if os.is_abs_path(parser.file_path) { parser.file_path } else { os.real_path(parser.file_path) }
v.file_parser_idx[file_path] = pidx v.file_parser_idx[file_path] = pidx
return pidx return pidx
} }
pub fn (v &V) get_file_parser_index(file string) ?int { pub fn (v &V) get_file_parser_index(file string) ?int {
file_path := if os.is_abs_path(file) { file } else { os.realpath(file) } file_path := if os.is_abs_path(file) { file } else { os.real_path(file) }
if file_path in v.file_parser_idx { if file_path in v.file_parser_idx {
return v.file_parser_idx[file_path] return v.file_parser_idx[file_path]
} }
@ -441,7 +441,7 @@ pub fn (v mut V) generate_main() {
lines_so_far := cgen.lines.join('\n').count('\n') + 5 lines_so_far := cgen.lines.join('\n').count('\n') + 5
cgen.genln('') cgen.genln('')
cgen.genln('// Reset the file/line numbers') cgen.genln('// Reset the file/line numbers')
cgen.lines << '#line $lines_so_far "${cescaped_path(os.realpath(cgen.out_path))}"' cgen.lines << '#line $lines_so_far "${cescaped_path(os.real_path(cgen.out_path))}"'
cgen.genln('') cgen.genln('')
} }
// Make sure the main function exists // Make sure the main function exists
@ -743,7 +743,7 @@ pub fn (v &V) get_user_files() []string {
} }
if is_internal_module_test { if is_internal_module_test {
// v volt/slack_test.v: compile all .v files to get the environment // v volt/slack_test.v: compile all .v files to get the environment
single_test_v_file := os.realpath(dir) single_test_v_file := os.real_path(dir)
if v.pref.verbosity.is_higher_or_equal(.level_two) { if v.pref.verbosity.is_higher_or_equal(.level_two) {
v.log('> Compiling an internal module _test.v file $single_test_v_file .') v.log('> Compiling an internal module _test.v file $single_test_v_file .')
v.log('> That brings in all other ordinary .v files in the same module too .') v.log('> That brings in all other ordinary .v files in the same module too .')
@ -903,7 +903,7 @@ pub fn set_vroot_folder(vroot_path string) {
// VEXE env variable is needed so that compiler.vexe_path() // VEXE env variable is needed so that compiler.vexe_path()
// can return it later to whoever needs it: // can return it later to whoever needs it:
vname := if os.user_os() == 'windows' { 'v.exe' } else { 'v' } vname := if os.user_os() == 'windows' { 'v.exe' } else { 'v' }
os.setenv('VEXE', os.realpath([vroot_path, vname].join(os.path_separator)), true) os.setenv('VEXE', os.real_path([vroot_path, vname].join(os.path_separator)), true)
} }
pub fn (v mut V) generate_str_definitions() { pub fn (v mut V) generate_str_definitions() {

View File

@ -162,7 +162,7 @@ fn find_msvc() ?MsvcResult {
return error('Unable to find visual studio') return error('Unable to find visual studio')
} }
return MsvcResult{ return MsvcResult{
full_cl_exe_path: os.realpath(vs.exe_path + os.path_separator + 'cl.exe') full_cl_exe_path: os.real_path(vs.exe_path + os.path_separator + 'cl.exe')
exe_path: vs.exe_path exe_path: vs.exe_path
um_lib_path: wk.um_lib_path um_lib_path: wk.um_lib_path
ucrt_lib_path: wk.ucrt_lib_path ucrt_lib_path: wk.ucrt_lib_path
@ -187,7 +187,7 @@ pub fn (v mut V) cc_msvc() {
verror('Cannot find MSVC on this OS') verror('Cannot find MSVC on this OS')
return return
} }
out_name_obj := os.realpath(v.out_name_c + '.obj') out_name_obj := os.real_path(v.out_name_c + '.obj')
// Default arguments // Default arguments
// volatile:ms enables atomic volatile (gcc _Atomic) // volatile:ms enables atomic volatile (gcc _Atomic)
// -w: no warnings // -w: no warnings
@ -214,7 +214,7 @@ pub fn (v mut V) cc_msvc() {
else if !v.pref.out_name.ends_with('.exe') { else if !v.pref.out_name.ends_with('.exe') {
v.pref.out_name += '.exe' v.pref.out_name += '.exe'
} }
v.pref.out_name = os.realpath(v.pref.out_name) v.pref.out_name = os.real_path(v.pref.out_name)
// alibs := []string // builtin.o os.o http.o etc // alibs := []string // builtin.o os.o http.o etc
if v.pref.build_mode == .build_module { if v.pref.build_mode == .build_module {
// Compile only // Compile only
@ -222,7 +222,7 @@ pub fn (v mut V) cc_msvc() {
} }
else if v.pref.build_mode == .default_mode { else if v.pref.build_mode == .default_mode {
/* /*
b := os.realpath( '$v_modules_path/vlib/builtin.obj' ) b := os.real_path( '$v_modules_path/vlib/builtin.obj' )
alibs << '"$b"' alibs << '"$b"'
if !os.exists(b) { if !os.exists(b) {
println('`builtin.obj` not found') println('`builtin.obj` not found')
@ -232,7 +232,7 @@ pub fn (v mut V) cc_msvc() {
if imp == 'webview' { if imp == 'webview' {
continue continue
} }
alibs << '"' + os.realpath( '$v_modules_path/vlib/${imp}.obj' ) + '"' alibs << '"' + os.real_path( '$v_modules_path/vlib/${imp}.obj' ) + '"'
} }
*/ */
} }
@ -241,7 +241,7 @@ pub fn (v mut V) cc_msvc() {
} }
// The C file we are compiling // The C file we are compiling
// a << '"$TmpPath/$v.out_name_c"' // a << '"$TmpPath/$v.out_name_c"'
a << '"' + os.realpath(v.out_name_c) + '"' a << '"' + os.real_path(v.out_name_c) + '"'
// Emily: // Emily:
// Not all of these are needed (but the compiler should discard them if they are not used) // Not all of these are needed (but the compiler should discard them if they are not used)
// these are the defaults used by msbuild and visual studio // these are the defaults used by msbuild and visual studio
@ -307,7 +307,7 @@ fn build_thirdparty_obj_file_with_msvc(path string, moduleflags []CFlag) {
} }
// msvc expects .obj not .o // msvc expects .obj not .o
mut obj_path := '${path}bj' mut obj_path := '${path}bj'
obj_path = os.realpath(obj_path) obj_path = os.real_path(obj_path)
if os.exists(obj_path) { if os.exists(obj_path) {
println('$obj_path already built.') println('$obj_path already built.')
return return
@ -320,7 +320,7 @@ fn build_thirdparty_obj_file_with_msvc(path string, moduleflags []CFlag) {
mut cfiles := '' mut cfiles := ''
for file in files { for file in files {
if file.ends_with('.c') { if file.ends_with('.c') {
cfiles += '"' + os.realpath(parent + os.path_separator + file) + '" ' cfiles += '"' + os.real_path(parent + os.path_separator + file) + '" '
} }
} }
include_string := '-I "$msvc.ucrt_include_path" -I "$msvc.vs_include_path" -I "$msvc.um_include_path" -I "$msvc.shared_include_path"' include_string := '-I "$msvc.ucrt_include_path" -I "$msvc.vs_include_path" -I "$msvc.um_include_path" -I "$msvc.shared_include_path"'
@ -392,7 +392,7 @@ fn (cflags []CFlag) msvc_string_flags() MsvcStringFlags {
} }
mut lpaths := []string mut lpaths := []string
for l in lib_paths { for l in lib_paths {
lpaths << '/LIBPATH:"' + os.realpath(l) + '"' lpaths << '/LIBPATH:"' + os.real_path(l) + '"'
} }
return MsvcStringFlags{ return MsvcStringFlags{
real_libs:real_libs real_libs:real_libs

View File

@ -561,7 +561,7 @@ fn (s mut Scanner) scan() ScanRes {
return scan_res(.string, s.fn_name) return scan_res(.string, s.fn_name)
} }
if name == 'FILE' { if name == 'FILE' {
return scan_res(.string, cescaped_path(os.realpath(s.file_path))) return scan_res(.string, cescaped_path(os.real_path(s.file_path)))
} }
if name == 'LINE' { if name == 'LINE' {
return scan_res(.string, (s.line_nr + 1).str()) return scan_res(.string, (s.line_nr + 1).str())

View File

@ -22,8 +22,8 @@ pub fn full_path_to_v(dirs_in int) string {
vexec := os.join_path(path, vname) vexec := os.join_path(path, vname)
/* /*
args := os.args args := os.args
vreal := os.realpath('v') vreal := os.real_path('v')
myself := os.realpath( os.executable() ) myself := os.real_path( os.executable() )
wd := os.getwd() wd := os.getwd()
println('args are: $args') println('args are: $args')
println('vreal : $vreal') println('vreal : $vreal')
@ -56,9 +56,9 @@ pub fn run_repl_file(wd string, vexec string, file string) ?string {
fname := os.file_name( file ) fname := os.file_name( file )
input_temporary_filename := os.realpath(os.join_path( wd, 'input_temporary_filename.txt')) input_temporary_filename := os.real_path(os.join_path( wd, 'input_temporary_filename.txt'))
os.write_file(input_temporary_filename, input) os.write_file(input_temporary_filename, input)
os.write_file( os.realpath(os.join_path( wd, 'original.txt' ) ), fcontent ) os.write_file( os.real_path(os.join_path( wd, 'original.txt' ) ), fcontent )
rcmd := '"$vexec" repl -replfolder "$wd" -replprefix "${fname}." < $input_temporary_filename' rcmd := '"$vexec" repl -replfolder "$wd" -replprefix "${fname}." < $input_temporary_filename'
r := os.exec(rcmd) or { r := os.exec(rcmd) or {
os.rm(input_temporary_filename) os.rm(input_temporary_filename)

View File

@ -17,5 +17,5 @@ fn get_vtmp_folder() string {
fn get_vtmp_filename(base_file_name string, postfix string) string { fn get_vtmp_filename(base_file_name string, postfix string) string {
vtmp := get_vtmp_folder() vtmp := get_vtmp_folder()
return os.realpath(os.join_path(vtmp, os.file_name(os.realpath(base_file_name)) + postfix)) return os.real_path(os.join_path(vtmp, os.file_name(os.real_path(base_file_name)) + postfix))
} }

View File

@ -67,7 +67,7 @@ pub fn (l mut Log) set_output_level(level LogLevel) {
} }
pub fn (l mut Log) set_full_logpath(full_log_path string) { pub fn (l mut Log) set_full_logpath(full_log_path string) {
rlog_file := os.realpath( full_log_path ) rlog_file := os.real_path( full_log_path )
l.set_output_label( os.file_name( rlog_file ) ) l.set_output_label( os.file_name( rlog_file ) )
l.set_output_path( os.base_dir( rlog_file ) ) l.set_output_path( os.base_dir( rlog_file ) )
} }
@ -79,7 +79,7 @@ pub fn (l mut Log) set_output_label(label string){
pub fn (l mut Log) set_output_path(output_file_path string) { pub fn (l mut Log) set_output_path(output_file_path string) {
if l.ofile.is_opened() { l.ofile.close() } if l.ofile.is_opened() { l.ofile.close() }
l.output_to_file = true l.output_to_file = true
l.output_file_name = os.join_path( os.realpath( output_file_path ) , l.output_label ) l.output_file_name = os.join_path( os.real_path( output_file_path ) , l.output_label )
ofile := os.open_append( l.output_file_name ) or { ofile := os.open_append( l.output_file_name ) or {
panic('error while opening log file ${l.output_file_name} for appending') panic('error while opening log file ${l.output_file_name} for appending')
} }

View File

@ -171,8 +171,8 @@ pub fn cp_r(osource_path, odest_path string, overwrite bool) ?bool {
} }
pub fn cp_all(osource_path, odest_path string, overwrite bool) ?bool { pub fn cp_all(osource_path, odest_path string, overwrite bool) ?bool {
source_path := os.realpath(osource_path) source_path := os.real_path(osource_path)
dest_path := os.realpath(odest_path) dest_path := os.real_path(odest_path)
if !os.exists(source_path) { if !os.exists(source_path) {
return error("Source path doesn\'t exist") return error("Source path doesn\'t exist")
} }
@ -530,7 +530,7 @@ pub fn is_executable(path string) bool {
// 02 Write-only // 02 Write-only
// 04 Read-only // 04 Read-only
// 06 Read and write // 06 Read and write
p := os.realpath( path ) p := os.real_path( path )
return ( os.exists( p ) && p.ends_with('.exe') ) return ( os.exists( p ) && p.ends_with('.exe') )
} $else { } $else {
return C.access(path.str, X_OK) != -1 return C.access(path.str, X_OK) != -1
@ -874,7 +874,7 @@ fn executable_fallback() string {
} }
} }
} }
exepath = os.realpath(exepath) exepath = os.real_path(exepath)
return exepath return exepath
} }
@ -972,7 +972,7 @@ pub fn getwd() string {
// Also https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html // Also https://insanecoding.blogspot.com/2007/11/pathmax-simply-isnt.html
// and https://insanecoding.blogspot.com/2007/11/implementing-realpath-in-c.html // and https://insanecoding.blogspot.com/2007/11/implementing-realpath-in-c.html
// NB: this particular rabbit hole is *deep* ... // NB: this particular rabbit hole is *deep* ...
pub fn realpath(fpath string) string { pub fn real_path(fpath string) string {
mut fullpath := vcalloc(MAX_PATH) mut fullpath := vcalloc(MAX_PATH)
mut ret := charptr(0) mut ret := charptr(0)
$if windows { $if windows {
@ -1184,10 +1184,10 @@ pub const (
// It gives a convenient way to access program resources like images, fonts, sounds and so on, // It gives a convenient way to access program resources like images, fonts, sounds and so on,
// *no matter* how the program was started, and what is the current working directory. // *no matter* how the program was started, and what is the current working directory.
pub fn resource_abs_path(path string) string { pub fn resource_abs_path(path string) string {
mut base_path := os.realpath(os.dir(os.executable())) mut base_path := os.real_path(os.dir(os.executable()))
vresource := os.getenv('V_RESOURCE_PATH') vresource := os.getenv('V_RESOURCE_PATH')
if vresource.len != 0 { if vresource.len != 0 {
base_path = vresource base_path = vresource
} }
return os.realpath(os.join_path(base_path, path)) return os.real_path(os.join_path(base_path, path))
} }

View File

@ -171,7 +171,7 @@ pub fn mkdir(path string) ?bool {
if path == '.' { if path == '.' {
return true return true
} }
apath := os.realpath(path) apath := os.real_path(path)
/* /*
$if linux { $if linux {
$if !android { $if !android {

View File

@ -62,7 +62,7 @@ fn test_write_and_read_bytes() {
file_name := './byte_reader_writer.tst' file_name := './byte_reader_writer.tst'
payload := [`I`, `D`, `D`, `Q`, `D`] payload := [`I`, `D`, `D`, `Q`, `D`]
mut file_write := os.create(os.realpath(file_name)) or { mut file_write := os.create(os.real_path(file_name)) or {
eprintln('failed to create file $file_name') eprintln('failed to create file $file_name')
return return
} }
@ -75,7 +75,7 @@ fn test_write_and_read_bytes() {
assert payload.len == os.file_size(file_name) assert payload.len == os.file_size(file_name)
mut file_read := os.open(os.realpath(file_name)) or { mut file_read := os.open(os.real_path(file_name)) or {
eprintln('failed to open file $file_name') eprintln('failed to open file $file_name')
return return
} }

View File

@ -173,7 +173,7 @@ pub fn (f mut File) writeln(s string) {
// mkdir creates a new directory with the specified path. // mkdir creates a new directory with the specified path.
pub fn mkdir(path string) ?bool { pub fn mkdir(path string) ?bool {
if path == '.' { return true } if path == '.' { return true }
apath := os.realpath( path ) apath := os.real_path( path )
if !C.CreateDirectory(apath.to_wide(), 0) { if !C.CreateDirectory(apath.to_wide(), 0) {
return error('mkdir failed for "$apath", because CreateDirectory returned ' + get_error_msg(int(C.GetLastError()))) return error('mkdir failed for "$apath", because CreateDirectory returned ' + get_error_msg(int(C.GetLastError())))
} }

View File

@ -18,7 +18,7 @@ pub:
table &table.Table table &table.Table
checker checker.Checker checker checker.Checker
os pref.OS // the OS to build for os pref.OS // the OS to build for
compiled_dir string // contains os.realpath() of the dir of the final file beeing compiled, or the dir itself when doing `v .` compiled_dir string // contains os.real_path() of the dir of the final file beeing compiled, or the dir itself when doing `v .`
module_path string module_path string
mut: mut:
module_search_paths []string module_search_paths []string

View File

@ -21,7 +21,7 @@ pub fn (p mut Preferences) fill_with_defaults() {
for i, path in p.lookup_path { for i, path in p.lookup_path {
p.lookup_path[i] = path.replace('@vlib', vlib_path).replace('@vmodules', default_module_path) p.lookup_path[i] = path.replace('@vlib', vlib_path).replace('@vmodules', default_module_path)
} }
rpath := os.realpath(p.path) rpath := os.real_path(p.path)
if p.out_name == ''{ if p.out_name == ''{
filename := os.file_name(rpath).trim_space() filename := os.file_name(rpath).trim_space()
mut base := filename.all_before_last('.') mut base := filename.all_before_last('.')
@ -79,7 +79,7 @@ pub fn vexe_path() string {
if vexe != '' { if vexe != '' {
return vexe return vexe
} }
real_vexe_path := os.realpath(os.executable()) real_vexe_path := os.real_path(os.executable())
os.setenv('VEXE', real_vexe_path, true) os.setenv('VEXE', real_vexe_path, true)
return real_vexe_path return real_vexe_path
} }

View File

@ -571,7 +571,7 @@ pub fn (s mut Scanner) scan() token.Token {
return s.scan_res(.string, s.fn_name) return s.scan_res(.string, s.fn_name)
} }
if name == 'FILE' { if name == 'FILE' {
return s.scan_res(.string, cescaped_path(os.realpath(s.file_path))) return s.scan_res(.string, cescaped_path(os.real_path(s.file_path)))
} }
if name == 'LINE' { if name == 'LINE' {
return s.scan_res(.string, (s.line_nr + 1).str()) return s.scan_res(.string, (s.line_nr + 1).str())