diff --git a/editors/lite/Makefile b/editors/lite/Makefile index a8dd5403cbc2..4d989df3a935 100644 --- a/editors/lite/Makefile +++ b/editors/lite/Makefile @@ -1,53 +1,55 @@ # Created by: Alexey Dokuchaev PORTNAME= lite PORTVERSION= 1.11 CATEGORIES= editors PKGNAMESUFFIX= -editor # PORTNAME alone is too vague MAINTAINER= danfe@FreeBSD.org COMMENT= Lightweight text editor written mostly in Lua PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/ PATCHFILES= a38b89ca26dde1353cf1.patch:-p1 LICENSE= MIT USES= gmake lua pkgconfig sdl USE_SDL= sdl2 USE_GITHUB= yes GH_ACCOUNT= rxi GH_PROJECT= ${PORTNAME}-colors:colors ${PORTNAME}-plugins:plugins GH_TAGNAME= 38bd9b3 5b77292:colors 4a9e1f3:plugins BUILD_WRKSRC= ${WRKSRC}/src MAKEFILE= ${FILESDIR}/makefile PORTDOCS= usage.md OPTIONS_DEFINE= DOCS post-extract: # Prevent accidental build/use of bundled code/headers @${RM} -r ${BUILD_WRKSRC}/lib/lua52 ${WRKSRC}/winlib post-patch: @${REINPLACE_CMD} -e '/^#include/s,lib/lua52/,,' \ ${BUILD_WRKSRC}/api/api.h @${REINPLACE_CMD} -e 's,%%DATADIR%%,${DATADIR},' \ ${BUILD_WRKSRC}/main.c do-install: ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/${PORTNAME} \ ${STAGEDIR}${PREFIX}/bin ${CP} -a ${WRKSRC}/data ${STAGEDIR}${DATADIR} ${CP} -a ${WRKSRC_colors}/colors ${STAGEDIR}${DATADIR}/user ${MV} ${WRKSRC_plugins}/plugins/language_*.lua \ ${STAGEDIR}${DATADIR}/plugins + ${CP} -a ${WRKSRC_plugins}/plugins \ + ${STAGEDIR}${DATADIR}/plugins/extra do-install-DOCS-on: @${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/doc/* ${STAGEDIR}${DOCSDIR} .include diff --git a/editors/lite/files/patch-data_core_init.lua b/editors/lite/files/patch-data_core_init.lua index 7d13910080af..e0ec26783801 100644 --- a/editors/lite/files/patch-data_core_init.lua +++ b/editors/lite/files/patch-data_core_init.lua @@ -1,49 +1,63 @@ --- data/core/init.lua.orig 2021-01-09 16:02:57 UTC +++ data/core/init.lua @@ -82,7 +82,7 @@ function core.init() CommandView = require "core.commandview" Doc = require "core.doc" - local project_dir = EXEDIR -+ local project_dir = os.getenv("HOME") or EXEDIR ++ local project_dir = HOMEDIR local files = {} for i = 2, #ARGS do local info = system.get_file_info(ARGS[i]) or {} @@ -131,16 +131,16 @@ local function delete_temp_files() local temp_file_counter = 0 local function delete_temp_files() - for _, filename in ipairs(system.list_dir(EXEDIR)) do + for _, filename in ipairs(system.list_dir("/tmp")) do if filename:find(temp_file_prefix, 1, true) == 1 then - os.remove(EXEDIR .. PATHSEP .. filename) + os.remove("/tmp" .. PATHSEP .. filename) end end end function core.temp_filename(ext) temp_file_counter = temp_file_counter + 1 - return EXEDIR .. PATHSEP .. temp_file_prefix + return "/tmp" .. PATHSEP .. temp_file_prefix .. string.format("%06x", temp_file_counter) .. (ext or "") end -@@ -174,7 +174,7 @@ function core.load_plugins() +@@ -174,16 +174,18 @@ function core.load_plugins() function core.load_plugins() local no_errors = true - local files = system.list_dir(EXEDIR .. "/data/plugins") +- for _, filename in ipairs(files) do +- local modname = "plugins." .. filename:gsub(".lua$", "") + local files = system.list_dir(DATADIR .. "/plugins") - for _, filename in ipairs(files) do - local modname = "plugins." .. filename:gsub(".lua$", "") ++ for _, filename in ipairs(files) do repeat ++ local luafile = filename:match("(.*)%.lua$") ++ if not luafile then break end ++ local modname = "plugins." .. luafile local ok = core.try(require, modname) -@@ -464,7 +464,7 @@ function core.on_error(err) + if ok then + core.log_quiet("Loaded plugin %q", modname) + else + no_errors = false + end +- end ++ until true end + return no_errors + end + +@@ -464,7 +466,7 @@ function core.on_error(err) function core.on_error(err) -- write error to file - local fp = io.open(EXEDIR .. "/error.txt", "wb") -+ local fp = io.open("/tmp/lite-error.txt", "wb") ++ local fp = io.open(HOMEDIR .. "/lite-error.txt", "wb") fp:write("Error: " .. tostring(err) .. "\n") fp:write(debug.traceback(nil, 4)) fp:close() diff --git a/editors/lite/files/patch-src_main.c b/editors/lite/files/patch-src_main.c index 1041196a88a6..bfb59f4a3b10 100644 --- a/editors/lite/files/patch-src_main.c +++ b/editors/lite/files/patch-src_main.c @@ -1,34 +1,35 @@ --- src/main.c.orig 2021-01-09 16:02:57 UTC +++ src/main.c @@ -9,6 +9,8 @@ #include #elif __APPLE__ #include +#elif __FreeBSD__ + #include #endif @@ -38,6 +40,10 @@ static void get_exe_filename(char *buf, int sz) { #elif __APPLE__ unsigned size = sz; _NSGetExecutablePath(buf, &size); +#elif __FreeBSD__ + size_t len = sz; + const int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; + sysctl(mib, 4, buf, &len, NULL, 0); #else strcpy(buf, "./lite"); #endif -@@ -123,8 +129,9 @@ int main(int argc, char **argv) { +@@ -123,8 +129,10 @@ int main(int argc, char **argv) { " SCALE = tonumber(os.getenv(\"LITE_SCALE\")) or SCALE\n" " PATHSEP = package.config:sub(1, 1)\n" " EXEDIR = EXEFILE:match(\"^(.+)[/\\\\].*$\")\n" - " package.path = EXEDIR .. '/data/?.lua;' .. package.path\n" - " package.path = EXEDIR .. '/data/?/init.lua;' .. package.path\n" + " DATADIR = '%%DATADIR%%'\n" ++ " HOMEDIR = os.getenv('HOME') or '/'\n" + " package.path = DATADIR .. '/?.lua;' .. package.path\n" + " package.path = DATADIR .. '/?/init.lua;' .. package.path\n" " core = require('core')\n" " core.init()\n" " core.run()\n" diff --git a/editors/lite/pkg-plist b/editors/lite/pkg-plist index e4b7eac16d10..fbfd3e40f992 100644 --- a/editors/lite/pkg-plist +++ b/editors/lite/pkg-plist @@ -1,102 +1,144 @@ bin/lite %%DATADIR%%/core/command.lua %%DATADIR%%/core/commands/command.lua %%DATADIR%%/core/commands/core.lua %%DATADIR%%/core/commands/doc.lua %%DATADIR%%/core/commands/findreplace.lua %%DATADIR%%/core/commands/root.lua %%DATADIR%%/core/commandview.lua %%DATADIR%%/core/common.lua %%DATADIR%%/core/config.lua %%DATADIR%%/core/doc/highlighter.lua %%DATADIR%%/core/doc/init.lua %%DATADIR%%/core/doc/search.lua %%DATADIR%%/core/doc/translate.lua %%DATADIR%%/core/docview.lua %%DATADIR%%/core/init.lua %%DATADIR%%/core/keymap.lua %%DATADIR%%/core/logview.lua %%DATADIR%%/core/object.lua %%DATADIR%%/core/rootview.lua %%DATADIR%%/core/statusview.lua %%DATADIR%%/core/strict.lua %%DATADIR%%/core/style.lua %%DATADIR%%/core/syntax.lua %%DATADIR%%/core/tokenizer.lua %%DATADIR%%/core/view.lua %%DATADIR%%/fonts/font.ttf %%DATADIR%%/fonts/icons.ttf %%DATADIR%%/fonts/monospace.ttf %%DATADIR%%/plugins/autocomplete.lua %%DATADIR%%/plugins/autoreload.lua +%%DATADIR%%/plugins/extra/autoinsert.lua +%%DATADIR%%/plugins/extra/autowrap.lua +%%DATADIR%%/plugins/extra/bigclock.lua +%%DATADIR%%/plugins/extra/bracketmatch.lua +%%DATADIR%%/plugins/extra/centerdoc.lua +%%DATADIR%%/plugins/extra/closeconfirmx.lua +%%DATADIR%%/plugins/extra/colorpreview.lua +%%DATADIR%%/plugins/extra/copyfilelocation.lua +%%DATADIR%%/plugins/extra/datetimestamps.lua +%%DATADIR%%/plugins/extra/detectindent.lua +%%DATADIR%%/plugins/extra/dragdropselected.lua +%%DATADIR%%/plugins/extra/drawwhitespace.lua +%%DATADIR%%/plugins/extra/eval.lua +%%DATADIR%%/plugins/extra/exec.lua +%%DATADIR%%/plugins/extra/ghmarkdown.lua +%%DATADIR%%/plugins/extra/gitstatus.lua +%%DATADIR%%/plugins/extra/gofmt.lua +%%DATADIR%%/plugins/extra/hidelinenumbers.lua +%%DATADIR%%/plugins/extra/hidestatus.lua +%%DATADIR%%/plugins/extra/inanimate.lua +%%DATADIR%%/plugins/extra/indentguide.lua +%%DATADIR%%/plugins/extra/lastproject.lua +%%DATADIR%%/plugins/extra/lfautoinsert.lua +%%DATADIR%%/plugins/extra/linecopypaste.lua +%%DATADIR%%/plugins/extra/lineguide.lua +%%DATADIR%%/plugins/extra/macmodkeys.lua +%%DATADIR%%/plugins/extra/markers.lua +%%DATADIR%%/plugins/extra/motiontrail.lua +%%DATADIR%%/plugins/extra/openfilelocation.lua +%%DATADIR%%/plugins/extra/openselected.lua +%%DATADIR%%/plugins/extra/projectmanager.lua +%%DATADIR%%/plugins/extra/rainbowparen.lua +%%DATADIR%%/plugins/extra/scale.lua +%%DATADIR%%/plugins/extra/scalestatus.lua +%%DATADIR%%/plugins/extra/selectionhighlight.lua +%%DATADIR%%/plugins/extra/sort.lua +%%DATADIR%%/plugins/extra/spellcheck.lua +%%DATADIR%%/plugins/extra/tabnumbers.lua +%%DATADIR%%/plugins/extra/titleize.lua +%%DATADIR%%/plugins/extra/togglesnakecamel.lua +%%DATADIR%%/plugins/extra/unboundedscroll.lua +%%DATADIR%%/plugins/extra/workspace.lua %%DATADIR%%/plugins/language_angelscript.lua %%DATADIR%%/plugins/language_batch.lua %%DATADIR%%/plugins/language_c.lua %%DATADIR%%/plugins/language_cmake.lua %%DATADIR%%/plugins/language_cpp.lua %%DATADIR%%/plugins/language_csharp.lua %%DATADIR%%/plugins/language_css.lua %%DATADIR%%/plugins/language_d.lua %%DATADIR%%/plugins/language_dart.lua %%DATADIR%%/plugins/language_elixir.lua %%DATADIR%%/plugins/language_elm.lua %%DATADIR%%/plugins/language_fe.lua %%DATADIR%%/plugins/language_fennel.lua %%DATADIR%%/plugins/language_gdscript.lua %%DATADIR%%/plugins/language_glsl.lua %%DATADIR%%/plugins/language_go.lua %%DATADIR%%/plugins/language_hlsl.lua %%DATADIR%%/plugins/language_hs.lua %%DATADIR%%/plugins/language_java.lua %%DATADIR%%/plugins/language_jiyu.lua %%DATADIR%%/plugins/language_js.lua %%DATADIR%%/plugins/language_lua.lua %%DATADIR%%/plugins/language_make.lua %%DATADIR%%/plugins/language_md.lua %%DATADIR%%/plugins/language_meson.lua %%DATADIR%%/plugins/language_moon.lua %%DATADIR%%/plugins/language_nginx.lua %%DATADIR%%/plugins/language_nim.lua %%DATADIR%%/plugins/language_objc.lua %%DATADIR%%/plugins/language_odin.lua %%DATADIR%%/plugins/language_php.lua %%DATADIR%%/plugins/language_pico8.lua %%DATADIR%%/plugins/language_powershell.lua %%DATADIR%%/plugins/language_psql.lua %%DATADIR%%/plugins/language_python.lua %%DATADIR%%/plugins/language_rust.lua %%DATADIR%%/plugins/language_sh.lua %%DATADIR%%/plugins/language_teal.lua %%DATADIR%%/plugins/language_tex.lua %%DATADIR%%/plugins/language_ts.lua %%DATADIR%%/plugins/language_wren.lua %%DATADIR%%/plugins/language_xml.lua %%DATADIR%%/plugins/macro.lua %%DATADIR%%/plugins/projectsearch.lua %%DATADIR%%/plugins/quote.lua %%DATADIR%%/plugins/reflow.lua %%DATADIR%%/plugins/tabularize.lua %%DATADIR%%/plugins/treeview.lua %%DATADIR%%/plugins/trimwhitespace.lua %%DATADIR%%/user/colors/abyss.lua %%DATADIR%%/user/colors/cold_lime.lua %%DATADIR%%/user/colors/dracula.lua %%DATADIR%%/user/colors/duorand.lua %%DATADIR%%/user/colors/duotone.lua %%DATADIR%%/user/colors/fall.lua %%DATADIR%%/user/colors/github.lua %%DATADIR%%/user/colors/gruvbox_dark.lua %%DATADIR%%/user/colors/liqube.lua %%DATADIR%%/user/colors/moe.lua %%DATADIR%%/user/colors/monodark.lua %%DATADIR%%/user/colors/monokai.lua %%DATADIR%%/user/colors/nord.lua %%DATADIR%%/user/colors/onedark.lua %%DATADIR%%/user/colors/only_dark.lua %%DATADIR%%/user/colors/solarized_light.lua %%DATADIR%%/user/colors/solarobj.lua %%DATADIR%%/user/colors/summer.lua %%DATADIR%%/user/colors/vscode-dark.lua %%DATADIR%%/user/colors/winter.lua %%DATADIR%%/user/colors/zenburn.lua %%DATADIR%%/user/init.lua