aboutsummaryrefslogtreecommitdiff
path: root/core/ui.lua
diff options
context:
space:
mode:
authormitchell <70453897+667e-11@users.noreply.github.com>2013-09-15 14:41:34 -0400
committermitchell <70453897+667e-11@users.noreply.github.com>2013-09-15 14:41:34 -0400
commit9ccea9e562699b45ba830b8b1355571061580386 (patch)
tree0d908fa3c956254a2e3629a7398fa1c54c7863b3 /core/ui.lua
parentc683ff20ef76c60cdf79df3c61f267dc3b7073ed (diff)
downloadtextadept-9ccea9e562699b45ba830b8b1355571061580386.tar.gz
textadept-9ccea9e562699b45ba830b8b1355571061580386.zip
Do not convert filenames to UTF-8; keep them in `_CHARSET`.
Diffstat (limited to 'core/ui.lua')
-rw-r--r--core/ui.lua15
1 files changed, 9 insertions, 6 deletions
diff --git a/core/ui.lua b/core/ui.lua
index 6e3d88ec..7f554b76 100644
--- a/core/ui.lua
+++ b/core/ui.lua
@@ -115,6 +115,7 @@ function ui.switch_buffer()
local columns, items = {_L['Name'], _L['File']}, {}
for _, buffer in ipairs(_BUFFERS) do
local filename = buffer.filename or buffer._type or _L['Untitled']
+ filename = filename:iconv('UTF-8', _CHARSET)
local basename = buffer.filename and filename:match('[^/\\]+$') or filename
items[#items + 1] = (buffer.dirty and '*' or '')..basename
items[#items + 1] = filename
@@ -251,6 +252,7 @@ end)
-- Sets the title of the Textadept window to the buffer's filename.
local function set_title()
local filename = buffer.filename or buffer._type or _L['Untitled']
+ filename = filename:iconv('UTF-8', _CHARSET)
local basename = buffer.filename and filename:match('[^/\\]+$') or filename
ui.title = string.format('%s %s Textadept (%s)', basename,
buffer.dirty and '*' or '-', filename)
@@ -272,13 +274,13 @@ end)
events_connect(events.URI_DROPPED, function(utf8_uris)
for utf8_uri in utf8_uris:gmatch('[^\r\n]+') do
if utf8_uri:find('^file://') then
- utf8_uri = utf8_uri:match('^file://([^\r\n]+)')
- utf8_uri = utf8_uri:gsub('%%(%x%x)', function(hex)
+ local uri = utf8_uri:iconv(_CHARSET, 'UTF-8')
+ uri = uri:match('^file://([^\r\n]+)'):gsub('%%(%x%x)', function(hex)
return string.char(tonumber(hex, 16))
end)
- if WIN32 then utf8_uri = utf8_uri:sub(2, -1) end -- ignore leading '/'
- local mode = lfs.attributes(utf8_uri:iconv(_CHARSET, 'UTF-8'), 'mode')
- if mode and mode ~= 'directory' then io.open_file(utf8_uri) end
+ if WIN32 then uri = uri:sub(2, -1) end -- ignore leading '/'
+ local mode = lfs.attributes(uri, 'mode')
+ if mode and mode ~= 'directory' then io.open_file(uri) end
end
end
end)
@@ -352,7 +354,8 @@ events_connect(events.QUIT, function()
local list = {}
for _, buffer in ipairs(_BUFFERS) do
if buffer.dirty then
- list[#list + 1] = buffer.filename or buffer._type or _L['Untitled']
+ local filename = buffer.filename or buffer._type or _L['Untitled']
+ list[#list + 1] = filename:iconv('UTF-8', _CHARSET)
end
end
return #list < 1 or ui.dialog('msgbox',