Added AmiUpdate support. Made a lot of changes in paths manipulation
This commit is contained in:
parent
df8eaa64d1
commit
9c2eec9066
|
@ -89,6 +89,7 @@ release: clean LiteXL
|
||||||
@mkdir -p release/LiteXL2
|
@mkdir -p release/LiteXL2
|
||||||
@cp -r resources/amiga/* release/LiteXL2/
|
@cp -r resources/amiga/* release/LiteXL2/
|
||||||
@mv release/LiteXL2/LiteXL2.info release/
|
@mv release/LiteXL2/LiteXL2.info release/
|
||||||
|
@mv release/LiteXL2/AutoInstall release/
|
||||||
@cp -r data release/LiteXL2/
|
@cp -r data release/LiteXL2/
|
||||||
@cp changelog.md release/LiteXL2/
|
@cp changelog.md release/LiteXL2/
|
||||||
@cp $(outfile) release/LiteXL2/
|
@cp $(outfile) release/LiteXL2/
|
||||||
|
|
|
@ -223,10 +223,13 @@ https://git.walkero.gr/walkero/lite-xl/issues
|
||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## [2.1.2r1] - future
|
## [2.1.3r1] - future
|
||||||
|
### Added
|
||||||
|
- Added AmiUpdate support
|
||||||
|
|
||||||
### Updated
|
### Updated
|
||||||
- Updated the code to the upstream 2.1.3 release
|
- Updated the code to the upstream 2.1.3 release
|
||||||
- Compiled with SDL 2.30.x that supports writing in ISO encodings, other
|
- Compiled with SDL 2.30.0 that supports editing with ISO encodings, other
|
||||||
than English. Now the editor should be able to support any language
|
than English. Now the editor should be able to support any language
|
||||||
and in conjuction with the codesets plugin be able to make text
|
and in conjuction with the codesets plugin be able to make text
|
||||||
encodings conversions (AmigsOS 4 version only)
|
encodings conversions (AmigsOS 4 version only)
|
||||||
|
@ -238,7 +241,10 @@ https://git.walkero.gr/walkero/lite-xl/issues
|
||||||
were left over
|
were left over
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Fixed opening partition and assign paths
|
- I did a lot of changes on path manipulation and usage, fixing opening
|
||||||
|
the root of a partition or an assign path
|
||||||
|
- Fixed an error with the codesets plugin, where an empty file could
|
||||||
|
not be opened
|
||||||
|
|
||||||
## [2.1.2r1] - 2023-12-19
|
## [2.1.2r1] - 2023-12-19
|
||||||
### Added
|
### Added
|
||||||
|
|
|
@ -465,6 +465,20 @@ function common.basename(path)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
---Returns the base path with the pathsep, if needed.
|
||||||
|
---@param path string
|
||||||
|
---@return string
|
||||||
|
function common.basepath(path)
|
||||||
|
-- Check for AmigaOS 4 and MorphOS if the last character is semicolon
|
||||||
|
-- In these systems the volume name doesn't have a / or \ after the name
|
||||||
|
-- but it is like VOLUME:
|
||||||
|
if (PLATFORM == "AmigaOS 4" or PLATFORM == "MorphOS") and (string.sub(path, -1) == ":") then
|
||||||
|
return path
|
||||||
|
end
|
||||||
|
return path .. PATHSEP
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
---Returns the directory name of a path.
|
---Returns the directory name of a path.
|
||||||
---If the path doesn't have a directory, this function may return nil.
|
---If the path doesn't have a directory, this function may return nil.
|
||||||
---@param path string
|
---@param path string
|
||||||
|
@ -657,7 +671,7 @@ function common.mkdirp(path)
|
||||||
path = updir
|
path = updir
|
||||||
end
|
end
|
||||||
for _, dirname in ipairs(subdirs) do
|
for _, dirname in ipairs(subdirs) do
|
||||||
path = path and path .. PATHSEP .. dirname or dirname
|
path = path and common.basepath(path) .. dirname or dirname
|
||||||
if not system.mkdir(path) then
|
if not system.mkdir(path) then
|
||||||
return false, "cannot create directory", path
|
return false, "cannot create directory", path
|
||||||
end
|
end
|
||||||
|
@ -721,4 +735,3 @@ end
|
||||||
|
|
||||||
|
|
||||||
return common
|
return common
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ function dirwatch:check(change_callback, scan_time, wait_time)
|
||||||
if self.monitor:mode() == "single" then
|
if self.monitor:mode() == "single" then
|
||||||
local path = common.dirname(id)
|
local path = common.dirname(id)
|
||||||
if not string.match(id, "^/") and not string.match(id, "^%a:[/\\]") then
|
if not string.match(id, "^/") and not string.match(id, "^%a:[/\\]") then
|
||||||
path = common.dirname(self.single_watch_top .. PATHSEP .. id)
|
path = common.dirname(common.basepath(self.single_watch_top) .. id)
|
||||||
end
|
end
|
||||||
change_callback(path)
|
change_callback(path)
|
||||||
elseif self.reverse_watched[id] then
|
elseif self.reverse_watched[id] then
|
||||||
|
@ -177,12 +177,7 @@ end
|
||||||
-- compute a file's info entry completed with "filename" to be used
|
-- compute a file's info entry completed with "filename" to be used
|
||||||
-- in project scan or falsy if it shouldn't appear in the list.
|
-- in project scan or falsy if it shouldn't appear in the list.
|
||||||
local function get_project_file_info(root, file, ignore_compiled)
|
local function get_project_file_info(root, file, ignore_compiled)
|
||||||
local info
|
local info = system.get_file_info(common.basepath(root) .. file)
|
||||||
if (PLATFORM == "AmigaOS 4" or PLATFORM == "MorphOS") and (string.sub(root, -1) == ":") then
|
|
||||||
info = system.get_file_info(root .. file)
|
|
||||||
else
|
|
||||||
info = system.get_file_info(root .. PATHSEP .. file)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- info can be not nil but info.type may be nil if is neither a file neither
|
-- info can be not nil but info.type may be nil if is neither a file neither
|
||||||
-- a directory, for example for /dev/* entries on linux.
|
-- a directory, for example for /dev/* entries on linux.
|
||||||
|
@ -206,12 +201,7 @@ function dirwatch.get_directory_files(dir, root, path, entries_count, recurse_pr
|
||||||
local t0 = system.get_time()
|
local t0 = system.get_time()
|
||||||
local ignore_compiled = compile_ignore_files()
|
local ignore_compiled = compile_ignore_files()
|
||||||
|
|
||||||
local all
|
local all = system.list_dir(common.basepath(root) .. path)
|
||||||
if (PLATFORM == "AmigaOS 4" or PLATFORM == "MorphOS") and (string.sub(root, -1) == ":") then
|
|
||||||
all = system.list_dir(root .. path)
|
|
||||||
else
|
|
||||||
all = system.list_dir(root .. PATHSEP .. path)
|
|
||||||
end
|
|
||||||
|
|
||||||
if not all then return nil end
|
if not all then return nil end
|
||||||
local entries = { }
|
local entries = { }
|
||||||
|
|
|
@ -46,7 +46,7 @@ function Doc:reset_syntax()
|
||||||
local header = self:get_text(1, 1, self:position_offset(1, 1, 128))
|
local header = self:get_text(1, 1, self:position_offset(1, 1, 128))
|
||||||
local path = self.abs_filename
|
local path = self.abs_filename
|
||||||
if not path and self.filename then
|
if not path and self.filename then
|
||||||
path = core.project_dir .. PATHSEP .. self.filename
|
path = common.basepath(core.project_dir) .. self.filename
|
||||||
end
|
end
|
||||||
if path then path = common.normalize_path(path) end
|
if path then path = common.normalize_path(path) end
|
||||||
local syn = syntax.get(path, header)
|
local syn = syntax.get(path, header)
|
||||||
|
|
|
@ -18,13 +18,13 @@ local Doc
|
||||||
local core = {}
|
local core = {}
|
||||||
|
|
||||||
local function load_session()
|
local function load_session()
|
||||||
local ok, t = pcall(dofile, USERDIR .. PATHSEP .. "session.lua")
|
local ok, t = pcall(dofile, common.basepath(USERDIR) .. "session.lua")
|
||||||
return ok and t or {}
|
return ok and t or {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function save_session()
|
local function save_session()
|
||||||
local fp = io.open(USERDIR .. PATHSEP .. "session.lua", "w")
|
local fp = io.open(common.basepath(USERDIR) .. "session.lua", "w")
|
||||||
if fp then
|
if fp then
|
||||||
fp:write("return {recents=", common.serialize(core.recent_projects),
|
fp:write("return {recents=", common.serialize(core.recent_projects),
|
||||||
", window=", common.serialize(table.pack(system.get_window_size())),
|
", window=", common.serialize(table.pack(system.get_window_size())),
|
||||||
|
@ -188,7 +188,7 @@ local function refresh_directory(topdir, target)
|
||||||
-- If this file doesn't exist, we should be calling this on our parent directory, assume we'll do that.
|
-- If this file doesn't exist, we should be calling this on our parent directory, assume we'll do that.
|
||||||
-- Unwatch just in case.
|
-- Unwatch just in case.
|
||||||
if files == nil then
|
if files == nil then
|
||||||
topdir.watch:unwatch(topdir.name .. PATHSEP .. (target or ""))
|
topdir.watch:unwatch(common.basepath(topdir.name) .. (target or ""))
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -212,7 +212,7 @@ local function refresh_directory(topdir, target)
|
||||||
-- If it's not there, remove the entry from the list as being out of order.
|
-- If it's not there, remove the entry from the list as being out of order.
|
||||||
table.remove(topdir.files, old_idx)
|
table.remove(topdir.files, old_idx)
|
||||||
if old_info.type == "dir" then
|
if old_info.type == "dir" then
|
||||||
topdir.watch:unwatch(topdir.name .. PATHSEP .. old_info.filename)
|
topdir.watch:unwatch(common.basepath(topdir.name) .. old_info.filename)
|
||||||
end
|
end
|
||||||
directory_end_idx = directory_end_idx - 1
|
directory_end_idx = directory_end_idx - 1
|
||||||
end
|
end
|
||||||
|
@ -223,7 +223,7 @@ local function refresh_directory(topdir, target)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
for i, v in ipairs(new_directories) do
|
for i, v in ipairs(new_directories) do
|
||||||
topdir.watch:watch(topdir.name .. PATHSEP .. v.filename)
|
topdir.watch:watch(common.basepath(topdir.name) .. v.filename)
|
||||||
if not topdir.files_limit or core.project_subdir_is_shown(topdir, v.filename) then
|
if not topdir.files_limit or core.project_subdir_is_shown(topdir, v.filename) then
|
||||||
refresh_directory(topdir, v.filename)
|
refresh_directory(topdir, v.filename)
|
||||||
end
|
end
|
||||||
|
@ -273,7 +273,7 @@ function core.add_project_directory(path)
|
||||||
refresh_directory(topdir)
|
refresh_directory(topdir)
|
||||||
else
|
else
|
||||||
for i,v in ipairs(t) do
|
for i,v in ipairs(t) do
|
||||||
if v.type == "dir" then topdir.watch:watch(path .. PATHSEP .. v.filename) end
|
if v.type == "dir" then topdir.watch:watch(common.basepath(path) .. v.filename) end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
topdir.watch:watch(topdir.name)
|
topdir.watch:watch(topdir.name)
|
||||||
|
@ -287,7 +287,7 @@ function core.add_project_directory(path)
|
||||||
local changed = topdir.watch:check(function(target)
|
local changed = topdir.watch:check(function(target)
|
||||||
if target == topdir.name then return refresh_directory(topdir) end
|
if target == topdir.name then return refresh_directory(topdir) end
|
||||||
local dirpath = target:sub(#topdir.name + 2)
|
local dirpath = target:sub(#topdir.name + 2)
|
||||||
local abs_dirpath = topdir.name .. PATHSEP .. dirpath
|
local abs_dirpath = common.basepath(topdir.name) .. dirpath
|
||||||
if dirpath then
|
if dirpath then
|
||||||
-- check if the directory is in the project files list, if not exit.
|
-- check if the directory is in the project files list, if not exit.
|
||||||
local dir_index, dir_match = file_search(topdir.files, {filename = dirpath, type = "dir"})
|
local dir_index, dir_match = file_search(topdir.files, {filename = dirpath, type = "dir"})
|
||||||
|
@ -374,9 +374,9 @@ function core.update_project_subdir(dir, filename, expanded)
|
||||||
assert(dir.files_limit, "function should be called only when directory is in files limit mode")
|
assert(dir.files_limit, "function should be called only when directory is in files limit mode")
|
||||||
dir.shown_subdir[filename] = expanded
|
dir.shown_subdir[filename] = expanded
|
||||||
if expanded then
|
if expanded then
|
||||||
dir.watch:watch(dir.name .. PATHSEP .. filename)
|
dir.watch:watch(common.basepath(dir.name) .. filename)
|
||||||
else
|
else
|
||||||
dir.watch:unwatch(dir.name .. PATHSEP .. filename)
|
dir.watch:unwatch(common.basepath(dir.name) .. filename)
|
||||||
end
|
end
|
||||||
return refresh_directory(dir, filename)
|
return refresh_directory(dir, filename)
|
||||||
end
|
end
|
||||||
|
@ -388,7 +388,7 @@ end
|
||||||
local function find_files_rec(root, path)
|
local function find_files_rec(root, path)
|
||||||
local all = system.list_dir(root .. path) or {}
|
local all = system.list_dir(root .. path) or {}
|
||||||
for _, file in ipairs(all) do
|
for _, file in ipairs(all) do
|
||||||
local file = path .. PATHSEP .. file
|
local file = common.basepath(path) .. file
|
||||||
local info = system.get_file_info(root .. file)
|
local info = system.get_file_info(root .. file)
|
||||||
if info then
|
if info then
|
||||||
info.filename = strip_leading_path(file)
|
info.filename = strip_leading_path(file)
|
||||||
|
@ -463,7 +463,7 @@ local function create_user_directory()
|
||||||
error("cannot create directory \"" .. USERDIR .. "\": " .. err)
|
error("cannot create directory \"" .. USERDIR .. "\": " .. err)
|
||||||
end
|
end
|
||||||
for _, modname in ipairs {'plugins', 'colors', 'fonts'} do
|
for _, modname in ipairs {'plugins', 'colors', 'fonts'} do
|
||||||
local subdirname = USERDIR .. PATHSEP .. modname
|
local subdirname = common.basepath(USERDIR) .. modname
|
||||||
if not system.mkdir(subdirname) then
|
if not system.mkdir(subdirname) then
|
||||||
error("cannot create directory: \"" .. subdirname .. "\"")
|
error("cannot create directory: \"" .. subdirname .. "\"")
|
||||||
end
|
end
|
||||||
|
@ -603,7 +603,7 @@ function core.load_user_directory()
|
||||||
if not stat_dir then
|
if not stat_dir then
|
||||||
create_user_directory()
|
create_user_directory()
|
||||||
end
|
end
|
||||||
local init_filename = USERDIR .. PATHSEP .. "init.lua"
|
local init_filename = common.basepath(USERDIR) .. "init.lua"
|
||||||
local stat_file = system.get_file_info(init_filename)
|
local stat_file = system.get_file_info(init_filename)
|
||||||
if not stat_file then
|
if not stat_file then
|
||||||
write_user_init_file(init_filename)
|
write_user_init_file(init_filename)
|
||||||
|
@ -636,7 +636,7 @@ end
|
||||||
local function add_config_files_hooks()
|
local function add_config_files_hooks()
|
||||||
-- auto-realod style when user's module is saved by overriding Doc:Save()
|
-- auto-realod style when user's module is saved by overriding Doc:Save()
|
||||||
local doc_save = Doc.save
|
local doc_save = Doc.save
|
||||||
local user_filename = system.absolute_path(USERDIR .. PATHSEP .. "init.lua")
|
local user_filename = system.absolute_path(common.basepath(USERDIR) .. "init.lua")
|
||||||
function Doc:save(filename, abs_filename)
|
function Doc:save(filename, abs_filename)
|
||||||
local module_filename = system.absolute_path(".lite_project.lua")
|
local module_filename = system.absolute_path(".lite_project.lua")
|
||||||
doc_save(self, filename, abs_filename)
|
doc_save(self, filename, abs_filename)
|
||||||
|
@ -661,9 +661,9 @@ function core.project_absolute_path(filename)
|
||||||
return common.normalize_path(filename)
|
return common.normalize_path(filename)
|
||||||
elseif not core.project_dir then
|
elseif not core.project_dir then
|
||||||
local cwd = system.absolute_path(".")
|
local cwd = system.absolute_path(".")
|
||||||
return cwd .. PATHSEP .. common.normalize_path(filename)
|
return common.basepath(cwd) .. common.normalize_path(filename)
|
||||||
else
|
else
|
||||||
return core.project_dir .. PATHSEP .. filename
|
return common.basepath(core.project_dir) .. filename
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -879,7 +879,7 @@ function core.delete_temp_files(dir)
|
||||||
dir = type(dir) == "string" and common.normalize_path(dir) or USERDIR
|
dir = type(dir) == "string" and common.normalize_path(dir) or USERDIR
|
||||||
for _, filename in ipairs(system.list_dir(dir) or {}) do
|
for _, filename in ipairs(system.list_dir(dir) or {}) do
|
||||||
if filename:find(temp_file_prefix, 1, true) == 1 then
|
if filename:find(temp_file_prefix, 1, true) == 1 then
|
||||||
os.remove(dir .. PATHSEP .. filename)
|
os.remove(common.basepath(dir) .. filename)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -887,7 +887,7 @@ end
|
||||||
function core.temp_filename(ext, dir)
|
function core.temp_filename(ext, dir)
|
||||||
dir = type(dir) == "string" and common.normalize_path(dir) or USERDIR
|
dir = type(dir) == "string" and common.normalize_path(dir) or USERDIR
|
||||||
temp_file_counter = temp_file_counter + 1
|
temp_file_counter = temp_file_counter + 1
|
||||||
return dir .. PATHSEP .. temp_file_prefix
|
return common.basepath(dir) .. temp_file_prefix
|
||||||
.. string.format("%06x", temp_file_counter) .. (ext or "")
|
.. string.format("%06x", temp_file_counter) .. (ext or "")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -963,7 +963,7 @@ function core.load_plugins()
|
||||||
}
|
}
|
||||||
local files, ordered = {}, {}
|
local files, ordered = {}, {}
|
||||||
for _, root_dir in ipairs {DATADIR, USERDIR} do
|
for _, root_dir in ipairs {DATADIR, USERDIR} do
|
||||||
local plugin_dir = root_dir .. PATHSEP .. "plugins"
|
local plugin_dir = common.basepath(root_dir) .. "plugins"
|
||||||
for _, filename in ipairs(system.list_dir(plugin_dir) or {}) do
|
for _, filename in ipairs(system.list_dir(plugin_dir) or {}) do
|
||||||
if not files[filename] then
|
if not files[filename] then
|
||||||
table.insert(
|
table.insert(
|
||||||
|
@ -978,7 +978,7 @@ function core.load_plugins()
|
||||||
for _, plugin in ipairs(ordered) do
|
for _, plugin in ipairs(ordered) do
|
||||||
local dir = files[plugin.file]
|
local dir = files[plugin.file]
|
||||||
local name = plugin.file:match("(.-)%.lua$") or plugin.file
|
local name = plugin.file:match("(.-)%.lua$") or plugin.file
|
||||||
local is_lua_file, details = get_plugin_details(dir .. PATHSEP .. plugin.file)
|
local is_lua_file, details = get_plugin_details(common.basepath(dir) .. plugin.file)
|
||||||
|
|
||||||
plugin.valid = is_lua_file
|
plugin.valid = is_lua_file
|
||||||
plugin.name = name
|
plugin.name = name
|
||||||
|
@ -1452,7 +1452,7 @@ end
|
||||||
|
|
||||||
function core.on_error(err)
|
function core.on_error(err)
|
||||||
-- write error to file
|
-- write error to file
|
||||||
local fp = io.open(USERDIR .. PATHSEP .. "error.txt", "wb")
|
local fp = io.open(common.basepath(USERDIR) .. "error.txt", "wb")
|
||||||
fp:write("Error: " .. tostring(err) .. "\n")
|
fp:write("Error: " .. tostring(err) .. "\n")
|
||||||
fp:write(debug.traceback("", 4) .. "\n")
|
fp:write(debug.traceback("", 4) .. "\n")
|
||||||
fp:close()
|
fp:close()
|
||||||
|
|
|
@ -83,7 +83,7 @@ function TreeView:get_cached(dir, item, dirname)
|
||||||
else
|
else
|
||||||
t.filename = item.filename
|
t.filename = item.filename
|
||||||
t.depth = get_depth(item.filename)
|
t.depth = get_depth(item.filename)
|
||||||
t.abs_filename = dirname .. PATHSEP .. item.filename
|
t.abs_filename = common.basepath(dirname) .. item.filename
|
||||||
end
|
end
|
||||||
t.name = basename
|
t.name = basename
|
||||||
t.type = item.type
|
t.type = item.type
|
||||||
|
@ -679,7 +679,7 @@ command.add(
|
||||||
local relfilename = item.filename
|
local relfilename = item.filename
|
||||||
if item.dir_name ~= core.project_dir then
|
if item.dir_name ~= core.project_dir then
|
||||||
-- add secondary project dirs names to the file path to show
|
-- add secondary project dirs names to the file path to show
|
||||||
relfilename = common.basename(item.dir_name) .. PATHSEP .. relfilename
|
relfilename = common.basepath(common.basename(item.dir_name)) .. PATHSEP .. relfilename
|
||||||
end
|
end
|
||||||
local file_info = system.get_file_info(filename)
|
local file_info = system.get_file_info(filename)
|
||||||
local file_type = file_info.type == "dir" and "Directory" or "File"
|
local file_type = file_info.type == "dir" and "Directory" or "File"
|
||||||
|
@ -724,7 +724,7 @@ command.add(
|
||||||
submit = function(filename)
|
submit = function(filename)
|
||||||
local abs_filename = filename
|
local abs_filename = filename
|
||||||
if not common.is_absolute_path(filename) then
|
if not common.is_absolute_path(filename) then
|
||||||
abs_filename = item.dir_name .. PATHSEP .. filename
|
abs_filename = common.basepath(item.dir_name) .. filename
|
||||||
end
|
end
|
||||||
local res, err = os.rename(old_abs_filename, abs_filename)
|
local res, err = os.rename(old_abs_filename, abs_filename)
|
||||||
if res then -- successfully renamed
|
if res then -- successfully renamed
|
||||||
|
@ -754,7 +754,7 @@ command.add(
|
||||||
core.command_view:enter("Filename", {
|
core.command_view:enter("Filename", {
|
||||||
text = text,
|
text = text,
|
||||||
submit = function(filename)
|
submit = function(filename)
|
||||||
local doc_filename = item.dir_name .. PATHSEP .. filename
|
local doc_filename = common.basepath(item.dir_name) .. filename
|
||||||
core.log(doc_filename)
|
core.log(doc_filename)
|
||||||
local file = io.open(doc_filename, "a+")
|
local file = io.open(doc_filename, "a+")
|
||||||
file:write("")
|
file:write("")
|
||||||
|
@ -776,7 +776,7 @@ command.add(
|
||||||
core.command_view:enter("Folder Name", {
|
core.command_view:enter("Folder Name", {
|
||||||
text = text,
|
text = text,
|
||||||
submit = function(filename)
|
submit = function(filename)
|
||||||
local dir_path = item.dir_name .. PATHSEP .. filename
|
local dir_path = common.basepath(item.dir_name) .. filename
|
||||||
common.mkdirp(dir_path)
|
common.mkdirp(dir_path)
|
||||||
core.log("Created %s", dir_path)
|
core.log("Created %s", dir_path)
|
||||||
end,
|
end,
|
||||||
|
|
|
@ -7,7 +7,7 @@ local LogView = require "core.logview"
|
||||||
|
|
||||||
local function workspace_files_for(project_dir)
|
local function workspace_files_for(project_dir)
|
||||||
local basename = common.basename(project_dir)
|
local basename = common.basename(project_dir)
|
||||||
local workspace_dir = USERDIR .. PATHSEP .. "ws"
|
local workspace_dir = common.basepath(USERDIR) .. "ws"
|
||||||
local info_wsdir = system.get_file_info(workspace_dir)
|
local info_wsdir = system.get_file_info(workspace_dir)
|
||||||
if not info_wsdir then
|
if not info_wsdir then
|
||||||
local ok, err = system.mkdir(workspace_dir)
|
local ok, err = system.mkdir(workspace_dir)
|
||||||
|
@ -22,7 +22,7 @@ local function workspace_files_for(project_dir)
|
||||||
if file:sub(1, n) == basename then
|
if file:sub(1, n) == basename then
|
||||||
local id = tonumber(file:sub(n + 1):match("^-(%d+)$"))
|
local id = tonumber(file:sub(n + 1):match("^-(%d+)$"))
|
||||||
if id then
|
if id then
|
||||||
coroutine.yield(workspace_dir .. PATHSEP .. file, id)
|
coroutine.yield(common.basepath(workspace_dir) .. file, id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -52,7 +52,7 @@ local function get_workspace_filename(project_dir)
|
||||||
id = id + 1
|
id = id + 1
|
||||||
end
|
end
|
||||||
local basename = common.basename(project_dir)
|
local basename = common.basename(project_dir)
|
||||||
return USERDIR .. PATHSEP .. "ws" .. PATHSEP .. basename .. "-" .. tostring(id)
|
return common.basepath(USERDIR) .. "ws" .. PATHSEP .. basename .. "-" .. tostring(id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@ local function load_node(node, t)
|
||||||
active_view = view
|
active_view = view
|
||||||
end
|
end
|
||||||
if not view:is(DocView) then
|
if not view:is(DocView) then
|
||||||
view.scroll = v.scroll
|
view.scroll = v.scroll
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
; Lite-XL AutoInstall
|
||||||
|
; $VER: Lite-XL AutoInstall 1.0 (15.02.2024)
|
||||||
|
|
||||||
|
; Get the path to the executable from the ENV variable
|
||||||
|
Set litexlPath `GetEnv AppDir/lite-xl`
|
||||||
|
|
||||||
|
copy LiteXL2/#? "$litexlPath" CLONE ALL
|
||||||
|
|
||||||
|
; Free the variable
|
||||||
|
UnSet litexlPath
|
|
@ -8,7 +8,7 @@
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
|
|
||||||
#if defined(__amigaos4__) || defined(__morphos__)
|
#if defined(__amigaos4__) || defined(__morphos__)
|
||||||
#define VSTRING "Lite XL 2.1.2r1 (28.12.2023)"
|
#define VSTRING "Lite XL 2.1.3r1 (17.02.2024)"
|
||||||
#define VERSTAG "\0$VER: " VSTRING
|
#define VERSTAG "\0$VER: " VSTRING
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -156,6 +156,12 @@ int Lcodesets_convert(lua_State *L) {
|
||||||
const unsigned char* bom;
|
const unsigned char* bom;
|
||||||
size_t bom_len = 0;
|
size_t bom_len = 0;
|
||||||
|
|
||||||
|
if (text_len == 0)
|
||||||
|
{
|
||||||
|
lua_pushlstring(L, text, text_len);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (lua_gettop(L) > 3 && lua_istable(L, 4)) {
|
if (lua_gettop(L) > 3 && lua_istable(L, 4)) {
|
||||||
lua_getfield(L, 4, "handle_to_bom");
|
lua_getfield(L, 4, "handle_to_bom");
|
||||||
if (lua_isboolean(L, -1)) {
|
if (lua_isboolean(L, -1)) {
|
||||||
|
|
Loading…
Reference in New Issue