diff options
author | 2014-01-03 20:55:04 -0500 | |
---|---|---|
committer | 2014-01-03 20:55:04 -0500 | |
commit | 61fa3e6da76fda9cb858eddf6d10b5127daec95d (patch) | |
tree | 7c34e1d0568883fdecc630f7ca8d7413dbe54380 | |
parent | f63802929891d226cbbbfa40d01c1306d58a6b29 (diff) | |
download | textadept-61fa3e6da76fda9cb858eddf6d10b5127daec95d.tar.gz textadept-61fa3e6da76fda9cb858eddf6d10b5127daec95d.zip |
Handle './' and '../' sequences in filepaths; core/file_io.lua
-rw-r--r-- | core/file_io.lua | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/core/file_io.lua b/core/file_io.lua index 857692c3..7c65fd1e 100644 --- a/core/file_io.lua +++ b/core/file_io.lua @@ -116,6 +116,10 @@ function io.open_file(filenames) for i = 1, #filenames do local filename = filenames[i]:gsub('^file://', '') if WIN32 then filename = filename:gsub('/', '\\') end + filename = filename:gsub('%f[^/\\]%.[/\\]', '') -- clean up './' + while filename:find('[^/\\]+[/\\]%.%.[/\\]') do + filename = filename:gsub('[^/\\]+[/\\]%.%.[/\\]', '') -- clean up '../' + end for i, buffer in ipairs(_BUFFERS) do if filename == buffer.filename then view:goto_buffer(i) goto continue end end |