Fix opening paths on Windows
This commit is contained in:
parent
37fefafe35
commit
4a7e3b9229
3 changed files with 22 additions and 7 deletions
|
|
@ -201,9 +201,24 @@ def MakeSymlink( in_folder, link, pointing_to ):
|
||||||
RemoveIfExists( os.path.join( in_folder, link ) )
|
RemoveIfExists( os.path.join( in_folder, link ) )
|
||||||
|
|
||||||
in_folder = os.path.abspath( in_folder )
|
in_folder = os.path.abspath( in_folder )
|
||||||
pointing_to = os.path.relpath( os.path.abspath( pointing_to ),
|
pointing_to_relative = os.path.relpath( os.path.abspath( pointing_to ),
|
||||||
in_folder )
|
in_folder )
|
||||||
os.symlink( pointing_to, os.path.join( in_folder, link ) )
|
link_path = os.path.join( in_folder, link )
|
||||||
|
|
||||||
|
if install.GetOS() == 'windows':
|
||||||
|
# While symlinks do exist on Windows, they require elevated privileges, so
|
||||||
|
# let's use a directory junction which is all we need.
|
||||||
|
link_path = os.path.abspath( link_path )
|
||||||
|
if os.path.isdir( link_path ):
|
||||||
|
os.rmdir( link_path )
|
||||||
|
subprocess.check_call( [ 'cmd.exe',
|
||||||
|
'/c',
|
||||||
|
'mklink',
|
||||||
|
'/J',
|
||||||
|
link_path,
|
||||||
|
pointing_to ] )
|
||||||
|
else:
|
||||||
|
os.symlink( pointing_to_relative, link_path )
|
||||||
|
|
||||||
|
|
||||||
def CloneRepoTo( url, ref, destination ):
|
def CloneRepoTo( url, ref, destination ):
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ SetUpLogging( _logger )
|
||||||
|
|
||||||
|
|
||||||
def BufferNumberForFile( file_name ):
|
def BufferNumberForFile( file_name ):
|
||||||
return int( vim.eval( 'bufnr( "{0}", 1 )'.format( file_name ) ) )
|
return int( vim.eval( "bufnr( '{0}', 1 )".format( Escape( file_name ) ) ) )
|
||||||
|
|
||||||
|
|
||||||
def BufferForFile( file_name ):
|
def BufferForFile( file_name ):
|
||||||
|
|
@ -52,7 +52,7 @@ def BufferForFile( file_name ):
|
||||||
def OpenFileInCurrentWindow( file_name ):
|
def OpenFileInCurrentWindow( file_name ):
|
||||||
buffer_number = BufferNumberForFile( file_name )
|
buffer_number = BufferNumberForFile( file_name )
|
||||||
try:
|
try:
|
||||||
vim.command( 'bu {0}'.format( buffer_number ) )
|
vim.current.buffer = vim.buffers[ buffer_number ]
|
||||||
except vim.error as e:
|
except vim.error as e:
|
||||||
if 'E325' not in str( e ):
|
if 'E325' not in str( e ):
|
||||||
raise
|
raise
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue